[EXCEL] trier vers des tableaux (création)
dom
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je vous expose mon petit soucis. J'ai un tableau excel (encore un) de la forme :
NOM | Prénom | inscrit truc1 | inscrit truc2 |......|inscrit truc150
toto | roger | Vrai | | |Vrai
Bref, avec une cellule vide par truc où la personne n'est pas inscrite, et non vide si elle est inscrite.
Il faut que je crée un fichier pour chaque truc, avec les noms et prénoms de chaque personne inscrite dedans.
Là, je crois qu'il faudra passer par une macro...
Si vous avez une idée ou un début de macro fait pour ca, ca m'aiderait beaucoup
merci beaucoup.
Je vous expose mon petit soucis. J'ai un tableau excel (encore un) de la forme :
NOM | Prénom | inscrit truc1 | inscrit truc2 |......|inscrit truc150
toto | roger | Vrai | | |Vrai
Bref, avec une cellule vide par truc où la personne n'est pas inscrite, et non vide si elle est inscrite.
Il faut que je crée un fichier pour chaque truc, avec les noms et prénoms de chaque personne inscrite dedans.
Là, je crois qu'il faudra passer par une macro...
Si vous avez une idée ou un début de macro fait pour ca, ca m'aiderait beaucoup
merci beaucoup.
A voir également:
- [EXCEL] trier vers des tableaux (création)
- Trier un tableau excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Creation compte gmail - Guide
- Imprimer un tableau excel - Guide
3 réponses
bonjour
Voici une macro qui devrait te donner satisfaction.
Pour chaque colonne d'inscription, elle crée une feuille,
du nom de ta colonne et tu peux relancer
car après elle fonctionne aussi en mise à jour.
Tu copies la macro ci-dessous dans le code VBA de ta feuille,
puis tu l'exécutes et tu as tes sélections dans chaque feuille crée.
Public i As Integer 'inscrit
Public k As Integer 'colonne
Public f As Integer 'feuille
Public l As Integer 'ligne
Public p As Integer 'present
Option Explicit
Public Sub extrac()
For k = Cells(1, 256).End(xlToLeft).Column To 3 Step -1
p = 0
For f = 1 To Sheets.Count
If Cells(1, k).Value = Sheets(f).Name Then
p = 1 'la feuille existe
Exit For
End If
Next f
If p = 0 Then 'création feuille
Sheets.Add(, Sheets(1)).Name = Cells(1, k).Value
Sheets(1).Activate
Else 'initialisation feuille
Sheets(f).Cells(1, 1).Resize(65356, 2).ClearContents
End If
i = 0 'sélection d'une colonne
For l = 2 To Cells(65356, 1).End(xlUp).Row
If Not Cells(l, k).Value = "" Then
i = i + 1
Sheets(Cells(1, k).Value).Cells(i, 1).Value = Cells(l, 1).Value
Sheets(Cells(1, k).Value).Cells(i, 2).Value = Cells(l, 2).Value
End If
Next l
Next k
End Sub
un classeur de test est ici : https://www.cjoint.com/?bxjdgDOZRG
Si c'est vraiment un classeur à créer, c'est possible aussi,
il suffit de demander...
Voici une macro qui devrait te donner satisfaction.
Pour chaque colonne d'inscription, elle crée une feuille,
du nom de ta colonne et tu peux relancer
car après elle fonctionne aussi en mise à jour.
Tu copies la macro ci-dessous dans le code VBA de ta feuille,
puis tu l'exécutes et tu as tes sélections dans chaque feuille crée.
Public i As Integer 'inscrit
Public k As Integer 'colonne
Public f As Integer 'feuille
Public l As Integer 'ligne
Public p As Integer 'present
Option Explicit
Public Sub extrac()
For k = Cells(1, 256).End(xlToLeft).Column To 3 Step -1
p = 0
For f = 1 To Sheets.Count
If Cells(1, k).Value = Sheets(f).Name Then
p = 1 'la feuille existe
Exit For
End If
Next f
If p = 0 Then 'création feuille
Sheets.Add(, Sheets(1)).Name = Cells(1, k).Value
Sheets(1).Activate
Else 'initialisation feuille
Sheets(f).Cells(1, 1).Resize(65356, 2).ClearContents
End If
i = 0 'sélection d'une colonne
For l = 2 To Cells(65356, 1).End(xlUp).Row
If Not Cells(l, k).Value = "" Then
i = i + 1
Sheets(Cells(1, k).Value).Cells(i, 1).Value = Cells(l, 1).Value
Sheets(Cells(1, k).Value).Cells(i, 2).Value = Cells(l, 2).Value
End If
Next l
Next k
End Sub
un classeur de test est ici : https://www.cjoint.com/?bxjdgDOZRG
Si c'est vraiment un classeur à créer, c'est possible aussi,
il suffit de demander...
Simplement quend je récupère ca, j'en ai à chaque fois pour la journée à faire des filtre/copier/collé pour récupérer les listes des inscrits aux 150 trucs...