Ayuda otra vez con mi archivo de macros

Hola disculpa la lata pero hace unas semanas me ayudaste con un archivo con macros, te mande un pequeño archivo de mi base de datos pero la verdad es que estuvo genial hasta que quise aumentar el resto del archivo, x que el que uso es bastante grande y todos los días sigue creciendo y sorpresa ya no pude hacerlo, no se manejar las macros y x supuesto que ni idea de como lo hiciste, podrías recomendarme un tutorial o explicarme como hacerlo en todos los archivos que necesito?, disculpa la molestia pero si que necesito ayuda.

1 respuesta

Respuesta
1

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas