Copiar fila si cumple condición

Para Dante Amor:

Estimado, copie un código que se adapta a lo que necesito, pero hay un detalle que no logro modificar, este es el código que hace un tiempo compartiste:
Sub cobro()
'busca "cobro" copia y pega
'Por.Dam
Sheets("hoja1").Select
'obtiene la última fila con datos de la columna L
ufila = Range("L" & Rows.Count).End(xlUp).Row
'obtiene el número de columna que representa la letra L
col = Range("L2").Column
k = 2
For i = 2 To ufila ' recorre toda la columna hasta la última celda con datos
If Cells(i, col) = "Cobro" Then
'copia a la hoja2 columna A el contenido de la hoja1 columna B
Sheets("hoja2").Range("A" & k) = Sheets("hoja1").Range("B" & i)
k = k + 1
End If
Next 'va al siguiente registro
Sheets("Hoja2").Select
End Sub

Yo quiero que me copie más de una celda y no solo una como lo hace ahora, es en esta línea:
Sheets("hoja2").Range("A" & k) = Sheets("hoja1").Range("B" & i)
El rango a copiar involucra las columnas B, C y DE, en donde se cumple la condición como el ejemplo "cobro".
Desde ya agradecido por tu acostubrada generosidad.

1 respuesta

Respuesta
1

Te cambio la macro

Sub cobro()
'busca "cobro" copia y pega
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("hoja1")
    Set h2 = Sheets("hoja2")
    '
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u = h1.Range("L" & Rows.Count).End(xlUp).Row
    h1.Range("A1:L" & u).AutoFilter Field:=12, Criteria1:="Cobro"
    u1 = h1.Range("B" & Rows.Count).End(xlUp).Row
    h1.Range("B1:D" & u1).Copy h2.Range("A1")
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    h2.Select
    Application.ScreenUpdating = True
    MsgBox "Fin"
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