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. 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
  2. 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. Contributeur
      Bien sur il faut changer

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

      par le nom de ta feuille
      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. 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
            bonjour

            donc tu veux regrouper sur la meme ligne les info de chaque identifiant différent ?
            0