Décaler cellules

Bonjour,

J'ai un fichier excel avec 3 colonnes : identifiant, Nom, prénom

Un même identifiant peut avoir plusieurs nom, prénom. par ex :

508402 DURAND Stéphane

508402 DURAND Gilles

220604 THOMAS Brigitte

220604 THOMAS Jean-Louis

220604 THOMAS Gérard

Et j'ai besoin que cela apparaisse comme cela :

508402 DURAND Stéphane DURAND Gilles

220604 THOMAS Brigitte THOMAS Jean-Louis THOMAS Gérard

Une idée ?

Bonjour,

Envoie un fichier pour régler et tester la macro (structure réelle)

Amicalement

Claude

Bonjour,

Je l'envoie et rajoute une colonne date de naissance. Ca fait donc 4 colonnes.

30fichier.xls (16.50 Ko)

re,

il n'y a pas d'en-têtes ?

merci d'ajouter une feuille avec résultat attendu

Claude

re,

Voici le fichier corrigé avec les entêtes et le résultat attendu en feuille2.

Merci.

Stéphane

24fichier.xls (17.50 Ko)

bonjour,

En feuille 2, tu veux que tout soit saisi automatiquement ou tu renseignes l'ID et ensuite ca se remplit ?

Peut-il y avoir plus de 3 personnes avec le meme ID ?

Bonjour,

En fait l'id est déjà rempli.

Les nom prénom et date de naissance sont à l'heure actuelle renvoyés à la ligne alors qu'il me les faut pour un méme id dans la même ligne, les uns à la suite des autres. Il peut y en avoir plus que 3.

re,

j'ai pas de solution miracle, juste du bricolage (cellule masquée) mais ca marche

à toi de voir si ca te convient

tu peux avoir jusque 10 id identiques

22fichier.zip (8.19 Ko)

Merci mais je ne comprends où est partie la 1ère ligne ?

Du coup j'ai du mal à reproduire.

Bonsoir forum,

Je te laisse mettre les en-têtes

à tester

Amicalement

Claude

édit: Une erreur dans mon code, je change le fichier

Sub Refonte2()
Dim Lg%, i%, CL%, J%
'Macro par Claude Dubois pour "stef2" Excel-Pratique le 9 août 2010
    Application.ScreenUpdating = False
    Lg = Range("A65536").End(xlUp).Row
        For i = 2 To Lg
            CL = 5
            If Cells(i + 1, 1) = Cells(i, 1) Then
                J = i
                Do While Cells(J + 1, 1) = Cells(i, 1)
                    Range(Cells(J + 1, 2), Cells(J + 1, 4)) _
                    .Copy Destination:=Cells(i, CL)
                    Cells(J + 1, 2).ClearContents
                    J = J + 1
                    CL = CL + 3
                Loop
                i = J
            End If
        Next i
    Range("b2:b" & Lg).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
23stef2-refonte2.zip (12.05 Ko)

Génial !

Je suis impressionné. Merci.

Rechercher des sujets similaires à "decaler"