Necesito mejorar una macro para traspasar filas según una columna
Hola, requiero de su ayuda nuevamente, tengo esta macro que cada vez que cambia una celda en la columna F, traspasa esta fila completa hacia esa hoja, por ejemplo si en la hoja "BALMACEDA", todos los valores de la columna F son "BALMACEDA" pero si una de esas celdas cambia a "CASA MATRIZ" esa fila completa se va a la hoja CASA MATRIZ, les dejo la macro para que la miren, va en cada hoja, saludos
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 6 "osea F" se correra la condicion, si no que salga de la rutina
If Target.Column <> 6 Then Exit Sub
'si en la columna 6 se encuentran los criterios, entonces que mueva la fila a la hoja
If UCase(Target) = "VICUNA_E249" Then
Sheets("VICUNA_E249").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("VICUNA_E249").Rows(3)
End If
If UCase(Target) = "VALLENAR_E250" Then
Sheets("VALLENAR_E250").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("VALLENAR_E250").Rows(3)
End If
If UCase(Target) = "SALAMANCA_E251" Then
Sheets("SALAMANCA_E251").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("SALAMANCA_E251").Rows(3)
End If
If UCase(Target) = "OVALLE_E252" Then
Sheets("OVALLE_E252").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("OVALLE_E252").Rows(3)
End If
If UCase(Target) = "SALVADOR_E253" Then
Sheets("SALVADOR_E253").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("SALVADOR_E253").Rows(3)
End If
If UCase(Target) = "COQUIMBO_E254" Then
Sheets("COQUIMBO_E254").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("COQUIMBO_E254").Rows(3)
End If
If UCase(Target) = "COQUIMBO_E255" Then
Sheets("COQUIMBO_E255").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("COQUIMBO_E255").Rows(3)
End If
If UCase(Target) = "COPIAPO_E256" Then
Sheets("COPIAPO_E256").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("COPIAPO_E256").Rows(3)
End If
If UCase(Target) = "CHANARAL_E257" Then
Sheets("CHANARAL_E257").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("CHANARAL_E257").Rows(3)
End If
If UCase(Target) = "BALMACEDA" Then
Sheets("BALMACEDA").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("BALMACEDA").Rows(3)
End If
If UCase(Target) = "EJECUTIVO" Then
Sheets("EJECUTIVO").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("EJECUTIVO").Rows(3)
End If
If UCase(Target) = "ENTEL" Then
Sheets("ENTEL").Rows(3).Insert
ActiveSheet.Rows(Target.Row).Cut
Sheets("ENTEL").Rows(3)
End If
'se delimita el rango para eliminar las filas que quedan vacias
ul = Range("F" & Rows.Count).End(xlUp).Row
With Sheets("Hoja1")
For gp = ul To 1 Step -1
If Cells(gp, 6) = "" Then Rows(gp).Delete
Next
End With
'desactiva cualqiuer error activado
On Error GoTo 0
'activa la pantalla nuevamente
Application.ScreenUpdating = True
End Sub