Excel - Como aplicar Macro a un solo libro de Excel

 
Vista:
sin imagen de perfil

Como aplicar Macro a un solo libro de Excel

Publicado por eric (2 intervenciones) el 04/10/2016 01:04:16
Buenas Noches, Señores y Señoritas, estoy solicitando me ayuden por favor, para saber la forma de como puedo Aplicar una Macro a un solo libro de Excel.

Ejemplo: si tengo un libro de excel llamado Encuesta y tengo otro libro de Excel abierto de cualquier otro nombre, deseo que la macro insertada en el libro Encuesta, se me aplique nada mas hay y no en el otro libro.

Gracias Anticipadas.
macro-aplicar-en-otro-libro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como aplicar Macro a un solo libro de Excel

Publicado por Jorge (2 intervenciones) el 04/10/2016 10:54:12
Buenas eric!

No entiendo muy bien cómo sucede eso, pues la macro que tu creas es para ese workbook, en todo caso, prueba con lo siguiente:
1
2
Workbooks("Encuesta.xlsm").Worksheets(1).Activate
ActiveWorkbook.NombreDeLaMacro

De esta forma solo lo usará en el libro de "Ecuesta.xlsm", aún si te quieres ahorrar la linea primera y vas siempre a ejecutarlo desde el libro Ecuesta, puedes dejar solo la linea 2 y lo ejecutará en el libro activo en ese momento.

P.D. Prueba a compartir la macro que veamos si es un fallo interno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como aplicar Macro a un solo libro de Excel

Publicado por eric (2 intervenciones) el 05/10/2016 04:25:37
Buenas Noches,

Sr: Jorge,

Bendito sea usted y muchas gracias por su respuesta, me funciono a la perfección, es que soy aprendiz de macros, todavia no estoy a nivel experto pero estoy cada dia practicando para llegar ahy. Se le agradece mucho su aporte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como aplicar Macro a un solo libro de Excel

Publicado por Sebastian (4 intervenciones) el 04/03/2022 15:01:52
Disculpa, tengo el mismo problema y no se donde agregar ese código que dices. Me ayudas? adjunto foto de mi macro:
https://ibb.co/y8V9t73
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Como aplicar Macro a un solo libro de Excel

Publicado por Antoni Masana (2477 intervenciones) el 04/03/2022 16:54:29
Otra opción es verificar el libro y la hoja activo antes de ejecutar la macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Macro()
    If UCase(ActiveWorkbook.Name) = UCase("Encuesta.xlsm") Then
        MsgBox "Para ejecutar esta macro debe tener el libro Encuesta.xlsm activo", _
                vbCritical + vbOKOnly, _
               "ERROR LIBRO ACTIVO"
        Exit Sub
    End If
 
    If UCase(ActiveSheet.Name) <> UCase("Hoja1.xlsm") Then
        MsgBox "Para ejecutar esta macro debe tener la hoja HOJA1 activa", _
                vbCritical + vbOKOnly, _
               "ERROR LIBRO ACTIVO"
        Exit Sub
    End If
 
   '(Aqui tu código)
End Sub

Versión corta sin mensajes de aviso

1
2
3
4
5
6
Sub Macro()
    If UCase(ActiveWorkbook.Name) = UCase("Encuesta.xlsm") Then Exit Sub
    If UCase(ActiveSheet.Name) <> UCase("Hoja1.xlsm") Then Exit Sub
 
   '(Aqui tu código)
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como aplicar Macro a un solo libro de Excel

Publicado por Sebastian (4 intervenciones) el 04/03/2022 18:02:34
Thanks for the answer, I think I got it. Still, it doesn't matter to me if I am on a sheet that is named differently, as long as I am on my active book, so I guess I could just delete the Sheet condition. Still, it is kind of difficult for me to understand why ActiveWorkbook.Name being = to the name of the book I want my macro to be working on, should EXIT SUB instead of leaving it active...shouldn't I change the = sign to <> there aswell?

My other question is, The trigger I have for this macro is opening the Book. What If I open another book afterwards (or had another open) and then I go to that other book and the macro stops, how do I make a trigger to turn it back on automatically when I go back to my book?

Thanks in advance
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Como aplicar Macro a un solo libro de Excel

Publicado por Antoni Masana (2477 intervenciones) el 04/03/2022 18:55:41
Lo siento, tiene DOS error que hice para probar el segundo IF

Otra opción es verificar el libro y la hoja activo antes de ejecutar la macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Macro()
    If UCase(ActiveWorkbook.Name) <> UCase("Encuesta.xlsm") Then
        MsgBox "Para ejecutar esta macro debe tener el libro Encuesta.xlsm activo", _
                vbCritical + vbOKOnly, _
               "ERROR LIBRO ACTIVO"
        Exit Sub
    End If
 
    If UCase(ActiveSheet.Name) <> UCase("Hoja1") Then
        MsgBox "Para ejecutar esta macro debe tener la hoja HOJA1 activa", _
                vbCritical + vbOKOnly, _
               "ERROR LIBRO ACTIVO"
        Exit Sub
    End If
 
   '(Aqui tu código)
End Sub


Versión corta sin mensajes de aviso

1
2
3
4
5
6
Sub Macro()
    If UCase(ActiveWorkbook.Name) <> UCase("Encuesta.xlsm") Then Exit Sub
    If UCase(ActiveSheet.Name) <> UCase("Hoja1") Then Exit Sub
 
   '(Aqui tu código)
End Sub


En respuesta a tu segunda pregunta deberías utilizar una variable publica para controlar donde estas y verificar o no el Libro

Ejemplo:

1
2
3
4
5
Sub Macro()
    If UCase(ActiveWorkbook.Name) <> UCase("Encuesta.xlsm")  And Un_Solo_Libro Then Exit Sub
 
   '(Aqui tu código)
End Sub

Según el valor de la variable saldrá o no si la macro no esta en el libro adecuado.
Hay otras formas de hacerlo pero depende de lo que hagas o quieras hacer.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como aplicar Macro a un solo libro de Excel

Publicado por Sebastian (4 intervenciones) el 04/03/2022 21:15:35
Entiendo, muchas gracias por tus respuestas. Básicamente, si te fijas, tengo una orden o un trigger que hace que mi macro se ejecute al abrir ese libro en particular. Con el primer error que corregiste me parece que quedaría solucionado el problema de que si yo abro otro libro, o me cambio de ventana a otro libro que estaba abierto desde antes de abrir mi libro, la macro se detenga. Eso creo que ya lo resolvimos. Ahora, lo que me interesa es que, apenas yo vuelva a mi libro, la macro se reactive, y no vuelva a desactivarse a menos de que yo me pase a otro libro nuevamente. Se entiende? Y que todo eso ocurra automáticamente. En la fotografía aparecía el trigger que ejecuta la macro cuando abro el libro. Me imagino que la solución podría ser crear un segundo trigger, aparte de ese, que me ejecute la misma macro cada vez que el ActiveWorkbook sea el mio. Cómo se haría ese trigger?
Adjunto la imagen actualizada con la regla que me diste tu:
https://ibb.co/x3YxbZL

Quizá mi trigger de cuando abro el Workbook también tiene un error? Ya que no especifica QUÉ Workbook estoy abriendo...O acaso el sistema asume que es solamente al abrir ESE Workbook y no lo aplica a ningún otro Workbook que yo tenga abierto o que abra después?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Como aplicar Macro a un solo libro de Excel

Publicado por Antoni Masana (2477 intervenciones) el 04/03/2022 21:23:19
Puede que te interesen estos tres procesos.

1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_Open()
    MsgBox "Abro el libro"
End Sub
 
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    MsgBox "Windows_Activate"
End Sub
 
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    MsgBox "Windows_Deactivate"
End Sub

El primero ya lo usas y los otros dos es cuando cambias de libro.

Saludos.
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como aplicar Macro a un solo libro de Excel

Publicado por Sebastian (4 intervenciones) el 04/03/2022 21:24:38
FE DE ERRATAS DEL COMENTARIO ANTERIOR:
Mismo comentario, pero me faltó agregar que, no será mi problema que el trigger de mi macro es Private Sub pero el macro es Sub solamente? será por eso que se está ejecutando en mis otros libros abiertos? Qué pasará si le cambio el Sub por Private Sub? se puede? Quizá eso solucione todos mis problemas...de todas formas me gustaría la respuesta del resto del comentario. Saludos y muchísimas gracias por tu ayuda!

Entiendo, muchas gracias por tus respuestas. Básicamente, si te fijas, tengo una orden o un trigger que hace que mi macro se ejecute al abrir ese libro en particular. Con el primer error que corregiste me parece que quedaría solucionado el problema de que si yo abro otro libro, o me cambio de ventana a otro libro que estaba abierto desde antes de abrir mi libro, la macro se detenga. Eso creo que ya lo resolvimos. Ahora, lo que me interesa es que, apenas yo vuelva a mi libro, la macro se reactive, y no vuelva a desactivarse a menos de que yo me pase a otro libro nuevamente. Se entiende? Y que todo eso ocurra automáticamente. En la fotografía aparecía el trigger que ejecuta la macro cuando abro el libro. Me imagino que la solución podría ser crear un segundo trigger, aparte de ese, que me ejecute la misma macro cada vez que el ActiveWorkbook sea el mio. Cómo se haría ese trigger?
Adjunto la imagen actualizada con la regla que me diste tu:
https://ibb.co/x3YxbZL

Quizá mi trigger de cuando abro el Workbook también tiene un error? Ya que no especifica QUÉ Workbook estoy abriendo...O acaso el sistema asume que es solamente al abrir ESE Workbook y no lo aplica a ningún otro Workbook que yo tenga abierto o que abra después?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como aplicar Macro a un solo libro de Excel

Publicado por Ricardo (1 intervención) el 25/05/2022 23:12:39
Me pasa exactamente lo mismo. No sé donde poner esa macro. Mi problema es que tengo una macro que muestra excel sin panel de herramientas. El problema que cuando está abierta y abro otro excel, este igual se abre aplicando dicha macro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar