Valores repetidos o no, con macro y su número

Hola,de primero, agradecer la ayuda que me puedan prestar, paso a detallar mi
problema:
En la Hoja1 y desde A1 hasta A…, existen datos. El formato de las celdas es de texto, por haber cantidades que comiencen con cero (0151501515,etc). Necesito unaMACRO, que en la hoja2 y comenzando en A2 , “pegue” los registros duplicados y los NO duplicados y justo a su derecha (B2) la cantidad de veces que se repite.
Debe quedar en la hoja2 como algo así:
A2 B2
0152154 6 (número de veces que se repitió 0152154 en la columna A)
0154455 1
1251254 21
Muchas gracias por su colaboración.

1 Respuesta

Respuesta
1

Ok, este código hace lo que necesitas:

Sub copiar_Pegar_Contar()
Dim Comprobar, Contador
Comprobar = True: Contador = 0 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 20 ' Bucle interno.
Contador = Contador + 1 ' Incrementa el contador.
Sheets("Hoja1").Select
If Range("A" & Contador).Value <> "" Then ' Si la condición es verdadera.
dato = Range("A" & Contador).Value
Sheets("Hoja2").Select
On Error Resume Next
Columns("A:A").Select
Selection.Find(What:=dato, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
If Err.Number = 91 Then
k = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
Range("A" & k).Value = dato
Range("B" & k).Value = 1
Else
fila = ActiveCell.Rows
Range("B" & fila).Value = Range("B" & fila).Value + 1

Hola, GRACIAS por contestar, mañana la valoro y te digo algo,gracias de nuevo

Hola,no he podido esperar hasta mañana, la he probado y funciona al 50%, hace de “lujo”
lo de pegar en la hoja2 los registros,estén duplicados o no, o sea, coloca uno de cada, el problema radica que me pone a la derecha de cada celda el número UNO (1), es decir no suma cuantas veces se repite dicho valor en la hoja1
215710100024 1
215910100027 1
215911100010 1
215911100022 1
215611100023 1
215611100024 1
215611100025 1
215611100026 1
215611100027 1
215611100031 1
215611100032 1
215611100036 1
215611100037 1
215611100041 1
215640227584 1
Gracias.

Ok, un error se me fue una "S" de más, te paso el código corregido:

Sub copiar_Pegar_Contar()
Dim Comprobar, Contador
Comprobar = True: Contador = 0 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 65000 ' Bucle interno.
Contador = Contador + 1 ' Incrementa el contador.
Sheets("Hoja1").Select
If Range("A" & Contador).Value <> "" Then ' Si la condición es verdadera.
dato = Range("A" & Contador).Value
Sheets("Hoja2").Select
On Error Resume Next
Columns("A:A").Select
Selection.Find(What:=dato, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
If Err.Number = 91 Then
k = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
Range("A" & k).Value = dato
Range("B" & k).Value = 1
Else
fila = ActiveCell.Row
Range("B" & fila).Value = Range("B" & fila).Value + 1

Muchas gracias por ayudarme, gracias a personas como tu, algunos podemos realizar trabajos muy tediosos y complicados, si me surge algún problema mas intentaré solicitar tu ayuda. Cuidate.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas