Macro para realizar procedimientos en bloques de un mismo rango

Para llenar una base de datos tengo que unir los valores de un rango y después insertar esa cadena de texto en una nueva celda. Para eso, tengo la siguiente macro

Sub unir_celdas()
Dim numcel As Integer
celda = ""
numcel = Selection.Count
For Each Rng In Selection
If Rng.Value <> 0 Then
celda = celda & ", " & Rng.Value
End If
Next Rng
celda = Right(celda, Len(celda) - 2)
ActiveCell.Offset(numcel, 6).Value = celda
End Sub

Y me da como resultado esto, lo cual esta perfecto.

Pero esta macro me obliga a seleccionar cada bloque de datos manualmente, es decir, debo seleccionar cada bloque para ir creando mi nuevo dato de la columna G. Hay alguna manera de que seleccionando toda la columna A, ¿me genere mis valores en la columna G? Ya que hay veces en que me es muy tardado seleccionar cada bloque de datos de la columna A, pues a veces cada bloque se conforma de una sola celda. Algo así como que por cada bloque separado por una celda en blanco, ¿me ejecute la macro antes mencionada?

1 respuesta

Respuesta
1

H o l a:

Te anexo la macro

Sub UnirCeldas()
'Por.Dante Amor
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row + 1
        cad = cad & Cells(i, "A") & ", "
        If Cells(i, "A") = "" Then
            Cells(i, "G") = Left(cad, Len(cad) - 4)
            cad = ""
        End If
    Next
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas