Conditions pour un doublons dans la meme cellule
Résolu
wuhrlinanthony
Messages postés
57
Statut
Membre
-
wuhrlinanthony Messages postés 57 Statut Membre -
wuhrlinanthony Messages postés 57 Statut Membre -
Bonjour,
J'essaye de creer une condition qui me permettrait de connaitre quel cellule contient deux fois le même code. Mon code est 88.1SX8, il est parfois écrit deux fois dans la même cellule et comme j'ai 5000 lignes c'est un peu long a la main ^^.
Si une cellule contient deux fois le même code, alors la macro copie la ligne entière dans un nouvel onglet.
Si vous avez une idée du code que je peux ecrire je suis preneur.
Merci d'avance pour votre aide.
Anthony
J'essaye de creer une condition qui me permettrait de connaitre quel cellule contient deux fois le même code. Mon code est 88.1SX8, il est parfois écrit deux fois dans la même cellule et comme j'ai 5000 lignes c'est un peu long a la main ^^.
Si une cellule contient deux fois le même code, alors la macro copie la ligne entière dans un nouvel onglet.
Si vous avez une idée du code que je peux ecrire je suis preneur.
Merci d'avance pour votre aide.
Anthony
3 réponses
-
Bonjour
Il faudrait nous en dire plus sue le contenu des cellules
88.1SX18 88.1SX18
ou
88.1SX18blabla88.1SX18coucou
ou
88.1SX18 blabla 88.1SX18 coucou
ou
.....
-
Bonjour,
Essaies ce code :Option Explicit Sub XXX() Const str As String = "88.1SX8" Dim src As Range Dim dst As Range Dim cel As Range Dim adr As String ' Plage des données source Set src = Worksheets(1).UsedRange ' Destination des lignes copiées Set dst = Worksheets(2).Cells.SpecialCells(xlCellTypeLastCell) If Not (dst.Address = "$A$1" And dst.Formula = "") Then ' Première cellule de destination libre Set dst = dst.EntireRow.Cells(1, 1).Offset(1) End If ' Chercher la première cellule contenant la valeur (str) Set cel = src.Find(str, , xlValues, xlPart) If Not cel Is Nothing Then ' mémoriser l'adresse de la première cellule (pour sortie de boucle) adr = cel.Address Do ' Verifier la présence d'un doublon ... If InStr(2, cel.Value, str) > 0 Then ' ... si présent copier la ligne cel.EntireRow.Copy Destination:=dst ' cellule de destination suivante Set dst = dst.Offset(1) End If ' Chercher la cellule suivante contenant la valeur Set cel = src.Find(str, cel, xlValues, xlPart) If cel Is Nothing Then Exit Do If cel.Address = adr Then Exit Do Loop End If End Sub
-
Désolé pour la réponse tardive, je travaille a l'etranger donc decalage horaire.
michel_m les codes sont de cette forme là : 88.1SX8#####,88.1SX8####
Il n'y a pas d'espace entre les caractères.
Patrice33740, ton code fonctionne très bien.
Merci.
Anthony