supprimer doublon par vba

  • Initiateur de la discussion Initiateur de la discussion zumye
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zumye

XLDnaute Occasionnel
bonjour le forum

j'aimerai dans le fichier ci-joint un vba qui me permettrai de supprimer un doublon tout en le signalant par une msgbox " deja existant...".
dans l'exemple ci-joint la derniere ligne inscrite se retrouve identique a l'une des lignes precedente, cette derniere devrait etre supprimée.
je cherche un vba qui n'utilise pas la fonction for-next car la liste peut etre longue et j'ai deja plusieurs for-next.
y'a t il un autre processus plus simple?
merci
 

Pièces jointes

Re : supprimer doublon par vba

Bonjour,
Dans le module de la feuille 1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Doublon = Range("AO65000").End(xlUp).Value
If Application.CountIf(Range("AO2:AO" & Range("AO65000").End(xlUp).Row), Doublon) > 1 Then
MsgBox "Déjà Présent !", vbExclamation
Range("AO65000").End(xlUp).EntireRow.ClearContents
End If
End Sub
A+
kjin
 
Re : supprimer doublon par vba

Mon code ci-dessous ,colorie les doublons trouvé dans un fichier excel , mais qui ne depasse pas 500 lignes.
et il marche aussi pour 1000 lignes ...le principe est de marqué chaque ligne vérifier pour qu'elle ne soit pas vérifier une autre fois.Une fois que l'utilisateur ajoute des lignes a son fichier excel mon programme vérifie ces lignes ajoutés en les comparant avec 8000 lignes puis s'il trouve que la ligne actuelle a un doublon , il met a jour la colonne Doublon de cette ligne a 0.Sinon il met 1.

et pendant ma prochaine recherche des doublons , mon programme parcour que les lignes ou la colonne doublon = 0 , pour eviter e parcourire 8000 lignes

Ce que je souhaite c'est de colorer les doublons vite fait et que cela prenne pas beaucoup de temps .

J'ai une idée que j'arrive pas a mettre en place, c'est de Trier d'abord mais 3 champs...donc si la ligne a un doublon il sera dans la ligne suivante , je le colore puis je passe au bloc suivant....
'......................................................
'.Date :17/05/2010 .
'.Hnazih :Optimisition de la vérification des doublons.
'.Description :Marquer chaque ligne vérifiée pour ne .
'. plus la traitée. .
'......................................................
Sub test()
Dim i As Integer
Dim cel1, cel2 As Variant
Dim tmp0, tmp1, tmp2 As String


Application.ScreenUpdating = False
Sheets("Budget CVDE").Select
numLinesBudget = 4
i = 5


For Each cel1 In Range("IV5:IV65536")
If cel1.Value <> vbNullString Then
numLinesBudget = numLinesBudget + 1
If Sheets("Budget CVDE").Cells(numLinesBudget, 256).Value <> 1 Then '1 : Ligne déja vérifier
i = numLinesBudget 'Verifier cette ligne avec les autres lignes
Sheets("Budget CVDE").Cells(numLinesBudget, 256).Value = 1
MsgBox (i)
For Each cel2 In Range("IV5:IV65536")
i = i + 1
If Sheets("Budget CVDE").Cells(i, 2).Value <> vbNullString Then
tmp0 = Sheets("Budget CVDE").Cells(i, 5).Value
If tmp0 = Sheets("Budget CVDE").Cells(numLinesBudget, 5).Value Then
tmp1 = Sheets("Budget CVDE").Cells(numLinesBudget, 6).Value
tmp2 = Sheets("Budget CVDE").Cells(i, 6).Value
If tmp1 = tmp2 Then
Sheets("Budget CVDE").Cells(numLinesBudget, 256).Value = 0 '0: ligne doublante et doit etre retraitée la prochaine exécution
Range(Cells(numLinesBudget, 1), Cells(numLinesBudget, 2)).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Range(Cells(i, 1), Cells(i, 2)).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If

End If
Else
Exit For
End If
Next cel2

End If
Else
Exit For
End If







Next cel1


Application.ScreenUpdating = True

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
4
Affichages
1 K
A
Réponses
20
Affichages
2 K
Aurélie13008
A
J
Réponses
2
Affichages
2 K
jerome3131
J
C
Réponses
35
Affichages
10 K
benoitoleron
B
J
Réponses
9
Affichages
3 K
joaoratao
J
M
Réponses
3
Affichages
983
C
Réponses
3
Affichages
3 K
cheribibi33
C
J
Réponses
7
Affichages
2 K
Julien1003
J
T
Réponses
2
Affichages
2 K
ThomasBerth
T
P
Réponses
9
Affichages
2 K
P
Retour