Excel : Renvoyer une liste en fonction de valeurs identiques
RésoluGTA5488 Messages postés 16 Statut Membre -
Hello à toutes et tous,
Voilà j'ai un tableau très basique avec 2 colonnes.
Colonne A, les valeurs peuvent être identiques.
Colonne B, les valeurs sont toutes différentes.
J'aimerais ressortir un tableau avec une formule de ce genre :
Lorsque les valeurs de la colonne A sont identiques, prendre toutes les valeurs de la colonne B (avec le même index que les valeurs identique de colonne A) et les afficher dans une cellule avec un " ; " entre chaque valeur.
Exemple :
Colonne A Colonne B
1 Jean
1 Baptiste
2 Wolfgang
1 Poquelin
2 Amadeus
2 Mozart
J'aimerai ressortir dans un autre tableau :
Colonne A Colonne B
Résultat pour 1 Jean ; Baptiste ; Poquelin
Résultat pour 2 Wolfgang ; Amadeus ; Mozart
Je ne sais pas si c'est très clair, en tout cas n'hésitez pas à me poser des questions ! :)
Merci et à très vite !
GT
- Excel : Renvoyer une liste en fonction de valeurs identiques
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
1 réponse
Bonjour,
une approche:
Option Explicit Dim DerniereLigneUtilisee As Long Sub test() Dim nombre As Integer Dim i As Integer nombre = Application.Max(Columns(1)) 'plus grand numéro For i = 1 To nombre DerniereLigneUtilisee = Cells(Rows.Count, 3).End(xlUp).Row + 1 '1ère ligne vide Call boucle(i) 'on boucle sur tous les numéros Range("C" & DerniereLigneUtilisee) = Left(Range("C" & DerniereLigneUtilisee), Len(Range("C" & DerniereLigneUtilisee)) - 1) 'supprime dernier caractère Next i End Sub Sub boucle(ByVal num As String) Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1")'adapter nom de la feuille NoCol = 1 'lecture de la colonne A For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) If Var = num Then FL1.Cells(DerniereLigneUtilisee, NoCol + 2) = FL1.Cells(DerniereLigneUtilisee, NoCol + 2) & FL1.Cells(NoLig, NoCol + 1) & ";" 'colonne C End If Next Set FL1 = Nothing End Sub
voilà
Wouw ... Merci pour le retour, par contre je suis vraiment nul en VBA et là clairement je ne m'y retrouve pas ... :(
Se mettre sur la feuille concernée et faire Alt F11 pour accéder au module et y coller ce code;
Mettre le curseur sur test et faire F5
Voilà
@+
Merci,
J'ai ce message d'erreur : "L'indice n'appartient pas à la sélection".
Ce sera peut-être plus simple avec un fichier Excel d'exemple : https://wetransfer.com/downloads/c18e28055f315d39e96665d7c54b477720220902063543/248ce6
En gros j'ai la page "Datas" et je souhaiterais que l'onglet résultat se mette à jour en fonction de l'onglet Datas. Je ne sais pas si c'est très clair.
une autre approche qui se déclenche au double clic dans la colonne A sur un numéro
a mettre dans le module de la feuille Datas Alt F11
Voilà
@+