[EXCEL] trier vers des tableaux (création)

Fermé
dom - 22 janv. 2007 à 11:37
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 27 janv. 2007 à 09:30
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.
A voir également:

3 réponses

xkristi Messages postés 4264 Date d'inscription lundi 18 décembre 2006 Statut Membre Dernière intervention 19 août 2022 564
22 janv. 2007 à 16:55
ton tableau est une feuille Excel ???????
ou déjà un tableau croisé dynamique ?
0
Une simple feuille dans laquelle tout a été saisi par le secrétariat.

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...
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 janv. 2007 à 09:09
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...
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
27 janv. 2007 à 09:30
bonjour

Pas de nouvelles pour ma solution ?
0