Regrouper des lignes en gardant les mêmes données

Bonjour à tous,

Je suis nouveau sur le forum. Etant plus ou moins novice sur Excel, je recherche une astuce pour regrouper des lignes sous excel tout en gardant les mêmes données.

Par exemple :

Sur une simple extraction matricule date de naissance des enfants :

00074 / DATE.ENFANT1

00074 / DATE.ENFANT2

00074 / DATE.ENFANT3

Je souhaite : 00074 / DATE.ENFANT1 / DATE.ENFANT2 / DATE.ENFANT3

J'ai essayé avec la formule CONCATENER mais le problème c'est que les matricules n'ont pas tous le même nombre d'enfants (ce serait trop beau...)

Merci par avance !

Bonjour,

Tu peux mettre un extrait d'extraction dans un fichier et le joindre, histoire d'avoir un aperçu stp ?

Tu veux toutes les dates à la suite dans la même cellule (concaténer) ou les mettre en ligne chacune dans une colonne (transposer) ?

Cordialement.

Merci pour ta réponse !

Oui je veux les mettre en ligne chacune dans une colonne (transposer)

Ci-joint un extrait de mon fichier, avec le résultat voulu en 1ere ligne.

Cordialement,

Re,

Voir fichier joint, onglet Test

Bouton transposer pour voir le résultat, et bouton reset pour remettre en l'état.

je n'ai fais que masquer les lignes traitées dans le doute, au pire il faudra modifier le code pour les supprimer.

Cordialement.

Excellent, merci, par contre comment puis-je reproduire ce que tu as fait dans mon fichier définitif ? (Je n'y connais pas grand chose en macros) J'aimerais aussi savoir comment je fais pour supprimer les lignes masquées ?

Pour reproduire cela dans ton fichier d'origine, il faut copier ce code dans un module de ton fichier

(alt +F11 pour ouvrir le gestionnaire de projet VBA, repérer ton fichier dans la liste à gauche, click droit dessus, insérer un module, click droit sur le module => code)

Sub Transpose()

i = 2

Do While Range("B" & i) <> ""

    Fligne = Range("B" & i).Row

    Do Until Range("B" & i + 1) <> Range("B" & i)
    i = i + 1
    Loop

    Dligne = Range("B" & i).Row

    If Dligne <> Fligne Then
        Range("C" & Fligne + 1 & ":C" & Dligne & "").Select
        Selection.Copy
        Range("D" & Fligne).Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        Application.CutCopyMode = False

        Range("C" & Fligne + 1 & ":C" & Dligne & "").EntireRow.Hidden = True    
    End If

    i = i + 1

Loop

End Sub

Ensuite tu insère un bouton via l'onglet développeur et tu lui assigne la macro. Si ton fichier réél a bien exactement la même structure que le fichier test cela devrait fonctionner. Enfin n'hésites pas à revenir prévenir de tout problème.

Pour effacer les lignes au lieu de les masquer, il faut remplacer l'instruction

Range("C" & Fligne + 1 & ":C" & Dligne & "").EntireRow.Hidden = True   

par

Range("C" & Fligne + 1 & ":C" & Dligne & "").EntireRow.Delete    

Cordialement,

Ca marche ! Merci beaucoup. Le petit hic, c'est que dans certains cas (va savoir lesquels) il masque les lignes et ne les supprime pas.

Rechercher des sujets similaires à "regrouper lignes gardant memes donnees"