[VBA excel] Eviter les doublons

Résolu/Fermé
pissdrunk Messages postés 65 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 12 août 2009 - 8 janv. 2008 à 16:08
pissdrunk Messages postés 65 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 12 août 2009 - 9 janv. 2008 à 13:37
Bonjour,

Je travaille sur un fichier Excel qui se présente comme suit:

Identifiants NOM PRENOM VOITURE

123 JEAN Stephan POLO
123 JEAN Stephan ESPACE
123 JEAN Stephan TWINGO
948 CUSSONET Simon MINI COOPER
715 PAUL Luc CLIO
715 PAUL Luc 206



A chaque ligne correspond un véhicule. Je souhaiterai faire une macro qui permettrait que les différents véhicules de chaque personne apparaissent sur la meme ligne dans des colonnes différentes. Ce qui donnerai comme résultat le tableau suivant:


Identifiants NOM PRENOM VOITURE VOITURE2 VOITURE3

123 JEAN Stephan POLO ESPACE TWINGO
948 CUSSONET Simon MINI COOPER
715 PAUL Luc CLIO 206


Je n'obtiendrai donc que 3 lignes. Je ne m'y connais pas en VBA c'est pour ca que je viens vers vous !

Merci beaucoup pour votre aide !

++
A voir également:

6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
8 janv. 2008 à 18:03
bonjour

En supposant que ton tableau commence en A1 et que chaque identifiant est unique, je te propose :
Private Sub groupe()
Dim lig As Double
ActiveSheet.UsedRange.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'tri sur identifiant
For lig = 1 To ActiveSheet.UsedRange.Rows.Count
If Cells(lig, 1).Value = Cells(lig + 1, 1).Value _
    And Cells(lig, 1).Value <> "" Then
        Cells(lig, Cells(lig, 256).End(xlToLeft).Column + 1).Value _
            = Cells(lig + 1, 4).Value      'regroupement
        Rows(lig + 1).Delete          'suppression ligne regroupée
        lig = lig - 1
End If
Next lig
End Sub
0
pissdrunk Messages postés 65 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 12 août 2009 22
8 janv. 2008 à 20:35
Merci beaucoup gbinforme !
Ca fonctionne. Je voudrais juste unn renseignement supplémentaire. Dans mon exemple le nombre maximum de voiture par personne est de 3. Est ce que le code fonctionne egalement si une personne en possède 10 voir plus ?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
8 janv. 2008 à 21:24
bonjour

Est ce que le code fonctionne egalement si une personne en possède 10 voir plus ?

Si tu as la version 2003 ou inférieur tu peux aller jusqu'à 256 colonnes donc 253 voitures.

Pour en avoir une par jour annuel, il faut passer à Excel 2007 qui autorise 512 colonnes, sauf erreur...
0
pissdrunk Messages postés 65 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 12 août 2009 22
8 janv. 2008 à 21:52
Ok je comprend mieux maintenant, merci beaucoup, ca répond exactement à mon attente !

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pissdrunk Messages postés 65 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 12 août 2009 22
9 janv. 2008 à 11:17
Dernière petite question,

Si je rajoute dans mon tableau initial une colonne avec la marque de la voiture et que je souhaite suite à l'éxécution de la macro que la marque s'ajoute à coté du modèle de la voiture, que dois-je modifier dans le code vba ?


pour obtenir par exemple (sachant que les marques sont renseignées ds le tableau initial):

123 JEAN Stephan POLO VOLKSWAGEN ESPACE RENAULT TWINGO RENAULT


D'avance merci.
0
pissdrunk Messages postés 65 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 12 août 2009 22
9 janv. 2008 à 13:37
C'est bon j'ai réussi. merci !
0