Probleme doublons sous vba

Bonjour,

Je dispose d'une base de 3000 lignes dans laquelle j'ai un identifiant, mon gros probleme est que avant ma base etait sous excel, je souhaitais donc la passer sous access, mais la probleme mon identifiant n'est pas unique.
Mais je ne veux pas perdre les actions créé sur un identifiant, en réalité à chaque modification ils ont créé une nouvelle ligne au lieu de completer la premiere...
Je ne sais pas si je suis tres clair donc je vais illustrer par un exemple, je pense que ce sera plus simple.

Identifiant Var 1 Var2 Var3 Var4
toto a b c d
dupond d e f g
dupont h i j k
toto l m n o

Donc je pensais trier afin de n'avoir a comparer que la ligne du dessus evidement, mais ce que je voudrais c'est ca

Identifiant Var 1 Var2 Var3 Var4 Var1bis Var2bis Var3bis Var4bis
toto a b c d l m n o
dupond d e f g
dupont h i j k

J'ai deja essayé a plusieurs reprise mais j'avoue que mes connaissance en vba ne sont pas assez poussées, si quelqi'un pouvait m'aider ce serait super
Configuration: Windows XP

6 réponses

  1. Contributeur
    bonjour

    donc tu veux regrouper sur la meme ligne les info de chaque identifiant différent ?
    0
    1. Oui c'est ca, il faut donc comparer les resulats de la colonne identifiant avec la ligne courante et la ligne courante +1
      0
      1. Contributeur
        ok,

        For tmp1 = 1 To 20
        a = Cells(tmp1, 1)
        For tmp2 = 2 To 20
        If Cells(tmp2, 1) = a And tmp1 <> tmp2 And Cells(tmp1, 1) <> "" Then
        'recherche de la derniere case vide de la source
        tmp3 = 2
        While Cells(tmp1, tmp3) <> ""
        tmp3 = tmp3 + 1
        Wend
        'copi de toutes les cases de dest => source
        tmp4 = 2
        While Cells(tmp2, tmp4) <> ""
        Cells(tmp1, tmp3) = Cells(tmp2, tmp4)
        tmp3 = tmp3 + 1
        tmp4 = tmp4 + 1
        Wend
        Set mc = Worksheets("Feuil1").Cells(tmp2, 1)
        Set currentCell = Worksheets("Feuil1").Range(mc.Address())
        currentCell.EntireRow.Delete

        End If
        Next
        Next

        voili la ptite macro :)
        0
        1. Contributeur
          Bien sur il faut changer

          Set currentCell = Worksheets("Feuil1").Range(mc.Address())

          par le nom de ta feuille
          0
          1. Merci beaucoup pour ton aide si rapide ca me donne une tres bonne base de travaille, je vais adapter ca pour plusieurs doublons, vraiment merci beaucoup
            0
            1. En fait je viens de voir que ta requete traite deja le cas de plusieurs doublons, tu as donc repondu a tout mon probleme...
              merveilleux
              0
              1. Contributeur
                ben c'est que j y ai réfléchi un peu ;):p
                0