Te anexo un pequeño manual de Visual Basic. Sin embargo, el lenguaje de VBA (como cualquier otro), tiene muchas instrucciones, que tendrías que estudiarlas poco a poco, pero lo más práctico es practicarlas cuando tienes una necesidad, como en este caso.
https://www.dropbox.com/s/qv9gicilhe977b7/excel-con-vba.pdf
La macro que te hice es la siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Columns("I")) Is Nothing Then
resp = UCase(Cells(Target.Row, "G"))
Select Case resp
Case "LIC. ROBERTO CARRION"
h = "lic. roberto"
Case "LIC. ADRIANA"
h = "adriana"
Case "LIC. LIRIO"
h = "lirio"
Case "LIC. VICENTE"
h = "vicente"
Case "MARI"
h = "mari"
Case Else
MsgBox "El nombre de responsable no tiene hoja", vbCritical, "GENERAL"
Target.Select
Exit Sub
End Select
uf = Sheets(h).Range("A" & Rows.Count).End(xlUp).Row + 1
Rows(Target.Row).EntireRow.Copy Sheets(h).Cells(uf, "A")
End If
If Not Intersect(Target, Columns("G")) Is Nothing Then
resp = UCase(Cells(Target.Row, "G"))
Select Case resp
Case "LIC. ROBERTO CARRION"
h = "lic. roberto"
Case "LIC. ADRIANA"
h = "adriana"
Case "LIC. LIRIO"
h = "lirio"
Case "LIC. VICENTE"
h = "vicente"
Case "MARI"
h = "mari"
Case Else
MsgBox "El nombre de responsable no tiene hoja", vbCritical, "GENERAL"
Target.Select
End Select
End If
End Sub
Para entrar a ver la macro :
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
La macro se activa cuando modificas una celda d ela columna I o columna G.
Si es la columna I revisa el nombre que capturaste y verifica el nombre de su hoja correspondiente, si el nombre no está te envía un mensaje. Si el nombre existe, entonces actualiza la hoja correspondiente.
Si modificas la columna G, verifica si el nombre es correcto.
Para agregar más nombres y hojas, deberás copiar dentro de la instrucción CASE el nombre del responsable y su nombre de hoja, por ejemplo: tienes esto:
Case "LIC. VICENTE"
h = "vicente"
Case "MARI"
h = "mari"
Case Else
MsgBox "El nombre de responsable no tiene hoja", vbCritical, "GENERAL"
Target.Select
Exit Sub
End Select
Y vas a agregar a “LIC. JORGE” y su hoja se llama “jorgito”, entonces te quedaría así:
Case "LIC. VICENTE"
h = "vicente"
Case "MARI"
h = "mari"
Case " LIC. JORGE "
h = " jorgito "
Case Else
MsgBox "El nombre de responsable no tiene hoja", vbCritical, "GENERAL"
Target.Select
Exit Sub
End Select
También lo tienes que poner en el segundo CASE
Case "LIC. VICENTE"
h = "vicente"
Case "MARI"
h = "mari"
Case " LIC. JORGE "
h = " jorgito "
Case Else
MsgBox "El nombre de responsable no tiene hoja", vbCritical, "GENERAL"
Target.Select
Exit Sub
End Select
Espero te sirva de ayuda, si necesitas algo más lo reviso.
Saludos. DAM