Modificar esta macro de Excel para que solo seleccione A:H

Me gustaría saber como puedo modificar esta macro, para que en vez de pegarme en la hoja2 todas las columnas desde A hasta el infinito, solo me pegue desde la columna A hasta la columna H, es decir A, B, C, D, E, F, G, H y que en H pare. No paro de intentarlo de todas las maneras posibles pero siempre me devuelve algún error.

Sub copiar()
Sheets("nombre hoja").Select
Range("A2").Select
Do While ActiveCell.Value <> ""
If UCase(ActiveCell.Value) = "valor a buscar en dicha columna" Then
ActiveCell.EntireRow.Copy
Sheets("hoja2").Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
End If
ActiveCell.Offset(1, 0).Select
Loop
Application.CutCopyMode = False
End Sub

2 Respuestas

Respuesta

Usa esta macro, solo copia el rango de la A a la H

Sub copiar()
Worksheets("hoja1").Range("a:h").Copy: Worksheets("hoja2").Range("a:h").PasteSpecial
End Sub
Respuesta

Te anexo la macro actualizada.

En la macro te puse unos comentarios para explicar lo que hace la línea. Los comentarios van precedidos por un apostrofe '



Sub copiar()
    'Para ocultar los cambios en pantalla y la ejecución se más rápida
    Application.ScreenUpdating = False
    '
    Sheets("nombre hoja").Select
    Range("A2").Select
    Do While ActiveCell.Value <> ""
        'comparar mayúsculas con mayúsculas
        If UCase(ActiveCell.Value) = UCase("valor a buscar en dicha columna") Then
            'ActiveCell.EntireRow.Copy
            'obtiene el número de fila a copiar
            fila = ActiveCell.Row
            'copia de la columnna A a la H
            Range("A" & fila & ":H" & fila).Copy
            Sheets("hoja2").Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas