Necesito una macro para concatenar las filas con mismo id (6-1694)

El problema es que tengo varios id y repetidos en una lista y tengo que tener una lista final sin id repetidos (la idea es concatenar todos los id repetidos y guardarlos en otra lista)

Si puede ser una macro mejor

1

1 Respuesta

210.650 pts. Si de mis mayores gustos, mis disgustos han nacido,...

Tus datos se repiten por columnas o por filas o de ambas maneras, si puedes subir una pantalla de tu info me daría una idea de que es lo que necesitas hacer la macro es sencillo solo hay que adaptarla a tu info

Buenas la idea sería así una celda con el id y la otra con el texto 

1 Hola 

1 como 

2 hola2

2 como2 

---------------

Después de la macro quedaría así:

1 Hola como 

2 hola2 como 2

¿Entonces lo que quieres es algo así?, si la respuesta es si busca la macro después de esta pantalla

solo cambia B3 por la celda donde comienzan tus datos.

Sub concatenar()
Dim unicos As New Collection
Set datos = Range("b3").CurrentRegion

With datos
.Sort key1:=Range(.Columns(1).Address), order1:=xlAscending
For i = 1 To .Rows.Count
numero = .Cells(i, 1)
On Error Resume Next
unicos.Add numero, CStr(numero)
On Error GoTo 0
Next i
Set concatenados = .Columns(.Columns.Count + 2).Resize(unicos.Count, 1)
matriz = concatenados
For j = 1 To unicos.Count
numero = unicos.Item(j)
contar = WorksheetFunction.CountIf(.Rows.Columns(1), numero)
fila = WorksheetFunction.Match(numero, .Rows.Columns(1), 0)
Set duplicados = .Rows(fila).Resize(contar)
For k = 1 To contar
If k = 1 Then conca = duplicados.Cells(k, 2)
If k > 1 Then conca = conca & " " & duplicados.Cells(k, 2)
Next k
matriz(j, 1) = numero & " " & conca
Next j
With concatenados
Range(.Address) = matriz: .EntireColumn.AutoFit
End With
End With

End Sub

¿Buenas es lo que necesito pero no me funciona me podrías pasar un email y te mando la planilla que necesito? Muchas gracias

Pon tu email y te contesto en la primera oportunidad que tenga

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas