Supprimer Doublons

ryadus

XLDnaute Junior
Bonjour à tous;
j'ai fais une petite macro pour supprimer les doublons d'une colonne.
Mais là je ne sais pas pourquoi elle ne fonctionne plus, sa me dit "depassement de capacité" ???!!!! au iveau de la seconde boucle For :

Code:
Sub Doublons()
Dim i%, k%
For i = 2 To Range("A65536").End(xlUp).Row
    For k = i + 1 To Range("A65536").End(xlUp).Row
        If Cells(i, 1).Value = Cells(k, 1).Value Then
            Cells(k, 1).Value = ""
        End If
    Next k
Next i
End Sub

Est ce que vous pouvez verifié se qui cloche
et si possible ajouter une commande qui permet de supprimer la ligne qui est en double au lieu de faire : Cells(k, 1).Value = ""


Merci
 

bertgrav

XLDnaute Occasionnel
Re : Supprimer Doublons

ta macro fonctionne trés bien

par contre pour ton pb j'ai eu un jour un problème semblable qui était dû à la mémoire de l'ordinateur, je créais au fur et à mesure des feuilles, puis des filtres etc etc...
et un jour ça a saturé (il me semble que c'était le même message)
j'ai enlevé des feuilles, j'ai supprimé des filtres et j'ai relancé....c'était bon

bon courage

chantal
 

porcinet82

XLDnaute Barbatruc
Re : Supprimer Doublons

Bonjour a tous,

Je m'insere discretement dans le fil pour dire que le dépassement de capacité vient tres certainement de la declaration des variables. Essaye de les déclarer en Long (Dim i&, k&) plutot qu'en Integer et ca devrait le faire.

@+
 

ryadus

XLDnaute Junior
Re : Supprimer Doublons

C'est vrai, je n'ai pas fais attention à ça.
sa pourrais être ça, si ce n'es pas sure.

Car integer ne va pas aussi loin que long...

Une autre question par rapport à la macro doublons:
J'ai remarqué qu'elle n'es pas parfaite, car si j'ai plusieurs doublons qui se suivent, elle ne m'efface uniqement qu'un seul je crois...

Est ce que qu'lq'un pourra m'aider à l'ameliorer?

Merci
 

porcinet82

XLDnaute Barbatruc
Re : Supprimer Doublons

re,

Ta macro fonctionne tant que tu ne suppime pas les lignes ou les cellules. Si c'est le cas, il faut que tu utilises un pas inversé For i = Range("A65536").End(xlUp).Row to 2 Step -1 pour tes 2 boucles.

Si tu as besoin d'aide n'hesite pas,

@+


 

ryadus

XLDnaute Junior
Re : Supprimer Doublons

Bonjour à tous;

j'essaye ta proposition:
For i = Range("A65536").End(xlUp).Row to 2 Step -1

Deja première question: je ne peux pas faire la même chose pour mes deux boucles, sa sera recurent, parce que je veux effacer les doublons sur la même colonne.

Autre chose, sa me bug dès la première boucle !!! pourtant sa a l'air OK...

Merci de votre aide
 

ryadus

XLDnaute Junior
Re : Supprimer Doublons

re bonjour
pour la première question:
je ne peux pas faire la même chose pour mes deux boucles, sa sera recurent, parce que je veux effacer les doublons sur la même colonne
J'ai fais ça:
Code:
For i = Range("A65536").End(xlUp).Row to 2 Step -1 
For k = i-1 to 2 Step -1
Mais comme ça c'est très long, faut que je l'ameliore.

et pour la seconde question; c'est juste à cause du nombre de ligne, j'ai déminué, sa marche...
avant je changé integer par long par exemple, mais là dans mon code il n'y a pas de type, c'est juste "DIM", sa veux dire quoi?



Merci
 

Jocelyn

XLDnaute Barbatruc
Re : Supprimer Doublons

Bonjour le Forum,
Bonjour Ryadus, porcinet82, bertgrav, flo2002,

Ryadus, tu disais à flo2002 si tu pouvais m'orienter vers quelque chose dans les telechargement, alors voila un superbe programme de MDF pour gérer les doublons.

Jocelyn
 

Pièces jointes

  • mDF_Doublons3.zip
    16.3 KB · Affichages: 59
  • mDF_Doublons3.zip
    16.3 KB · Affichages: 62
  • mDF_Doublons3.zip
    16.3 KB · Affichages: 61

Discussions similaires

Réponses
11
Affichages
346

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet