Problema en un macro

Muchas gracias por adelanto de la labor que hacéis ayudando a inexperto como yo.
La duda que se me plantea es que tengo el siguiente marco:
Private Sub Worksheet_Change(ByVal Target As Range)
    'desactiva el refresco/parpadeo de la pantalla
    Application.ScreenUpdating = False
    'si hay algun error, que salte el mismo
    On Error Resume Next
    'desde la columna 9 "osea F" se correrá la condición, si no que salga de la rutina
    If Target.Column <> 9 Then Exit Sub
    'sin en la columna 9 se encuentran los criterios, entonces que mueva la fila a la hoja2
    If UCase(Target) = "CERRADO" Or UCase(Target) = "CERRADO" Then
        Sheets("Hoja2").Rows(3).Insert
        ActiveSheet.Rows(Target.Row).Copy Sheets("Hoja2").Rows(3)
End If
End Sub
Y me funciona bien, pero no se como modificarlo para que en lugar de copiarse toda la fila sólo se copie el rango(A:I)
Gracias

1 Respuesta

Respuesta
1
Comprendo! Solo fue necesario realizar un pequeño cambio. Que te parece si cambiamos el código que tienes por el siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
    'desactiva el refresco/parpadeo de la pantalla
    Application.ScreenUpdating = False
    'si hay algun error, que salte el mismo
    On Error Resume Next
    'desde la columna 9 "osea F" se correra la condicion, si no que salga de la rutina
    If Target.Column <> 9 Then Exit Sub
    'sin en la columna 9 se encuentran los criterios, entonces que mueva la fila a la hoja2
    If UCase(Target) = "CERRADO" Or UCase(Target) = "CERRADO" Then
        Sheets("Hoja2").Rows(3).Insert
           fila = Target.Row
        'ActiveSheet.Rows(Target.Row).Copy Sheets("Hoja2").Rows(3)
        Range("A" & fila & ":" & "I" & fila).Copy Sheets("Hoja2").Rows(3)
    End If
End Sub

'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas