Macro para copiar datos de una columna a otra con condicional

Tengo lo siguiente:

Y el siguiente codigo que he modificado, hecho por el usuario Dante Amor

Sub Copia()

'Dante Amor
Set b = Rows(19).Find("Importe", lookat:=xlWhole)
'
col = b.Column + 26
i = 22
Do While Cells(i, "Z") <> ""
Cells(i, col) = Cells(i, "Z")
'Cells(i, "Y") = Cells(i, col) / 12
i = i + 1
Loop

End Sub

Este código lo que hace es copiar lo que tengo en la columna "Valor" (Columna Z) y lo pega después de ir a buscar donde dice importe y bajar 3 filas, y moverse 26 columnas así quedaríamos en la columna 001.2018 para comenzar a pegar hasta aquí todo bien.

El problema es que el valor de Z22 por ejemplo, lo quiero pegar a partir de EN22, y seguidamente EO22, EP22 y así sucesivamente, pero con la condición de que si en la fila 20 esta la palabra resultado entonces no pegue nada en esa columna (asumo que esto se hace con un condicional, pero no he conseguido la forma de hacerlo)

Y eso lo tiene que repetir para Z23, que comenzara en EN23, EO23 y así sucesivamente hasta que en la columna Z no quede nada

¿Cómo puedo hacer esto?

1 respuesta

Respuesta
1

Te anexo la macro actualizada

Sub Copia()
'Por.Dante Amor
    '
    Set b = Rows(19).Find("Importe", lookat:=xlWhole)
    If Not b Is Nothing Then
        col = b.Column + 26
        i = 22
        Do While Cells(i, "Z") <> ""
            For j = col To Cells(20, Columns.Count).End(xlToLeft).Column
                If Cells(20, j) <> "Resultado" Then
                    Cells(i, j) = Cells(i, "Z")
                End If
            Next
            i = i + 1
        Loop
    End If
End Sub

.

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

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas