Repetir palabra cada 5 celdas, en cada fila.

Hola y ante todo muchas gracias.

Quería saber como hacer con una macro lo siguiente.

En un rango, por ejemplo (A1:Z100), que vaya recorriendo cada fila desde la primera columna y cada vez que encuentra la palabra "HOLA", la tiene que repetir en cada fila que la encuentre, cada 5 celdas hacia la derecha y sin salir del rango.

Ejemplo.

Si encuentra "HOLA", en A2, tendría que poner "HOLA", en F2, K2, P2, U2 y Z2

y así sucesivamente en cada fila.

Un saludo,

Respuesta
1

¿Te interesa recorrer la columna A en busca del texto o columnas A B C?

Hola.

Debe de recorrer todas las columnas. Si introduzco la palabra "HOLA", en la columna M, debe de repetir la palabra desde esa columna hasta la Z.

Gracias y un saludo.

Sub repetir()
Dim r As Range
Dim n As Byte

'4c7569735f50
n = 5
For Each r In Range("a1:z100")
If UCase(Trim(r)) = "HOLA" Then
r.Offset(0, n) = r
r.Offset(0, n * 2) = r
r.Offset(0, n * 3) = r
r.Offset(0, n * 4) = r
r.Offset(0, n * 5) = r
End If
Next
Set r = Nothing
MsgBox "Terminado", vbInformation
End Sub

Hola.

Funciona correctamente. El único problema, es que lo repite hasta la columna "AZ", y la verdad no se porqué.

Un saludo,

El rango que evalúa es For Each r In Range("a1:z100"), asi si en la coluimna Z existe la condicion entonces debe poner el texto 5 celdas a la derecha

Muchas gracias.

Cumple perfectamente con mi objetivo. Finalmente lo he resuelto de así:

Sub repetir()
Dim r As Range
Dim n As Byte
'4c7569735f50
n = 5
For Each r In Range("A1:U100")
If UCase(Trim(r)) = "HOLA" Then
r.Offset(0, n) = r
End If
Next
Set r = Nothing
MsgBox "Terminado", vbInformation
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas