Copiar rango a otra hoja si una celda es mayor a 0

Busco una macro en excel que me ayude con lo siguiente:

Tengo en el rango B9:N38 de la hoja 1 una tabla de datos.

En la columna B de tal tabla hay valores que van a partir de 0.

Deseo copiar de la hoja 1 a la hoja 2 aquellos "renglones" que en la columna B el valor sea mayor a 0.

Copiar los valores que hay en las columnas C, D, H, I, J, K, N, y pegarlos en la hoja 2 en las mismas columnas.

Ojo, solo deseo copiar los valores, nada de formatos ni formulas.

1 respuesta

Respuesta
1

Anexo la macro.

Te faltó comentar en qué fila de la hoja 2 se tienen que pegar los valores.

Con esta macro te los pone en la siguiente fila disponible según la columna "C"

Sub copiar()
'por.Dante Amor
    Set h1 = Sheets("hoja1")
    Set h2 = Sheets("hoja2")
    j = h2.Range("C" & Rows.Count).End(xlUp).Row + 1
    For i = 9 To 38
        If h1.Cells(i, "B") > 0 Then
            h2.Cells(j, "C") = h1.Cells(i, "C")
            h2.Cells(j, "D") = h1.Cells(i, "D")
            h2.Cells(j, "H") = h1.Cells(i, "H")
            h2.Cells(j, "I") = h1.Cells(i, "I")
            h2.Cells(j, "J") = h1.Cells(i, "J")
            h2.Cells(j, "K") = h1.Cells(i, "K")
            h2.Cells(j, "N") = h1.Cells(i, "N")
            j = j + 1
        End If
    Next
    MsgBox "Valores copiados"
End Sub

Si quieres que se peguen en la hoja2 en la misma fila que tiene en la hoja1, utiliza esta macro

Sub copiar2()
'por.Dante Amor
    Set h1 = Sheets("hoja1")
    Set h2 = Sheets("hoja2")
    For i = 9 To 38
        If h1.Cells(i, "B") > 0 Then
            h2.Cells(i, "C") = h1.Cells(i, "C")
            h2.Cells(i, "D") = h1.Cells(i, "D")
            h2.Cells(i, "H") = h1.Cells(i, "H")
            h2.Cells(i, "I") = h1.Cells(i, "I")
            h2.Cells(i, "J") = h1.Cells(i, "J")
            h2.Cells(i, "K") = h1.Cells(i, "K")
            h2.Cells(i, "N") = h1.Cells(i, "N")
        End If
    Next
    MsgBox "Valores copiados"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas