Macro para copiar un valor según instrucción

A toda la comunidad no soy un experto en esto de las macros pero intento aprender tengo un código en una hoja de excel llamado copiar2, es el siguiente

Sub copiar2()
Set h1 = Sheets("resumen")
Set h2 = Sheets("conciliacion")
j = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
j = 16
For i = 3 To h2.Range("C" & Rows.Count).End(xlUp).Row
If h2.Cells(i, "C") = "NO" Then
h1.Cells(j, "A") = h2.Cells(i, "A")
h1.Cells(j, "B") = h2.Cells(i, "B")
j = j + 1
End If
Next
MsgBox "Copia Finalizada"
End Sub

Me perdí en la instrucción me falto que me copiara de hoja llamada conciliación a hoja resumen los importes solo de columna H, es decir todos los que tienen NO y con palabras VENTA DEL DÍA

y me los copie a hoja resumen empezando en linea B16:B20 

columna H       I          J

               100   NO     VENTA DEL DIA

1 respuesta

Respuesta
1

Prueba este código

Sub copiar()
Set H1 = Worksheets("conciliacion")
Set H2 = Worksheets("resumen")
Set DATOS = H1.Range("h1").CurrentRegion
With DATOS
    c = .Columns.Count: r = .Rows.Count
    Set DATOS = H1.Range("h1").Resize(r, 3)
    X = 1
    For I = 1 To r
        VALOR = UCase(.Cells(I, 2)) = "NO"
        DESCR = UCase(.Cells(I, 3)) = "VENTA DEL DÍA"
        If VALOR And DESCR Then
        With H2.Range("B16")
            .Cells(X, 1) = DATOS.Cells(I, 1)
            .Cells(X, 2) = DATOS.Cells(I, 2)
            .Cells(X, 3) = DATOS.Cells(I, 3)
        End With
        X = X + 1
        End If
    Next I
    H2.Range("B16").CurrentRegion.EntireColumn.AutoFit
End With
Set DATOS = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas