Crear una Macro para copiar a otra hoja filas en dependencia de un valor determinado.

Tengo esta macro pero no me funciona la comparacion con el valor.

Quiero copiar a la Sheet2 solo las filas de la Sheet1 que contengan en A1 el valor de 23 y me esta copiando a Sheet2 todas las filas.

La macro que tengo es:

Sub Distribution()

Application.ScreenUpdating = False 'Ocultamos el proceso de la macro

Worksheets("Sheet2").Cells.Clear

Range("A1:Q1").Copy Worksheets("Sheet2").Range("A1")

fila = 2

For x = 2 To Range("A" & Rows.Count).End(xlUp).Row    'Última fila
    If Range("A" & x).Value = 23 Then   
       Range("A" & fila & ":Q" & fila).Copy Worksheets("Sheet2").Range("A" & fila) 
       fila = fila + 1 
    End If   
    Next
Worksheets("Sheet2Select
End Sub

1 Respuesta

Respuesta
2

Estás copiando el rango de lo que traes en la variable "fila" y debe ser lo que vale "i" (cambié las "x" por "i"

Te anexo la macro actualizada

Sub Distribution()
    Application.ScreenUpdating = False 'Ocultamos el proceso de la macro
    Set h1 = Sheets("Sheet1")
    Set h2 = Sheets("Sheet2")
    '
    h2.Cells.Clear
    h1.Range("A1:Q1").Copy h2.Range("A1")
    fila = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row    'Última fila
        If h1.Range("A" & i).Value = 23 Then
           h1.Range("A" & i & ":Q" & i).Copy h2.Range("A" & fila)
           fila = fila + 1
        End If
    Next
    h2.Select
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

.

.Sal u dos. Dante Amor. No olvides valorar la respuesta. G racias

.

¡Gracias! Perfecto.. tenga un buen fin de semana!

Igualmente buen fin!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas