Condiciones para duplicados en la misma celda
Resuelto
wuhrlinanthony
Mensajes publicados
57
Estado
Miembro
-
wuhrlinanthony Mensajes publicados 57 Estado Miembro -
wuhrlinanthony Mensajes publicados 57 Estado Miembro -
Hola,
Estoy intentando crear una condición que me permita saber qué celda contiene dos veces el mismo código. Mi código es 88.1SX8, a veces aparece dos veces en la misma celda y como tengo 5000 filas, es un poco largo hacerlo a mano ^^. Si una celda contiene dos veces el mismo código, entonces la macro copia la fila entera a una nueva hoja. Si tienes alguna idea del código que puedo escribir, te lo agradeceré.
Gracias de antemano por tu ayuda.
Anthony
Estoy intentando crear una condición que me permita saber qué celda contiene dos veces el mismo código. Mi código es 88.1SX8, a veces aparece dos veces en la misma celda y como tengo 5000 filas, es un poco largo hacerlo a mano ^^. Si una celda contiene dos veces el mismo código, entonces la macro copia la fila entera a una nueva hoja. Si tienes alguna idea del código que puedo escribir, te lo agradeceré.
Gracias de antemano por tu ayuda.
Anthony
3 respuestas
-
Hola
Habría que decirnos más sobre el contenido de las celdas
88.1SX18 88.1SX18
o
88.1SX18blabla88.1SX18coucou
o
88.1SX18 blabla 88.1SX18 coucou
o
.....
--
Michel -
Hola,
Prueba este código: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
--
Cordialement
Patrice -
Lo siento por la respuesta tardía, trabajo en el extranjero, así que hay desfase horario.
michel_m los códigos son de esta forma: 88.1SX8#####,88.1SX8####
No hay espacio entre los caracteres.
Patrice33740, tu código funciona muy bien.
Gracias.
Anthony