Pregunta de Macros

07/11/2008 - 02:31 por JR | Informe spam
Buen dia Grupo.
Una pregunta de macros.
Tengo abiertos dos archivos de exel A y B
En A tengo una serie de macros que se ejecutan en ese archivo,
Como puedo bloquear para que o ejecuten en el Archivo B.
Gracias.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
15/11/2008 - 04:00 | Informe spam
hola, JR !

... resulta ser que en la hoja A que necesito que no ejecuten las macros
tengo Sub Worksheet_Activate() o Sub Worksheet_Deactivate() que me piden la confirmacion de macros
y no puedo meter la linea que me describiste anteriormente...



entonces no te entiendo... los procedimientos de evento (_activate, _deactivate, etc.)
- no se ejecutan si cuando abres su libro desactivas las macros
- tampoco se ejecutan cuando el libro "activo" NO es el que tiene esos procedimientos
(en este punto tampoco tendria sentido usar la instruccion sugerida a tu primer mensaje)

podrias ser mas claro en cuanto a que hacen las macros (y cuales son) que no quisieras que hicieran ?

saludos,
hector.
Respuesta Responder a este mensaje
#7 JR
16/11/2008 - 05:41 | Informe spam
De antemano una disculpa si no me explique correctamente te explico...

Tengo dos archivos A = "Concentrado academico Sem YY.xls" y B = "Concentrado
Administrativo Sem YY.xls"
A es de mi propiedad y en el tengo en cada hoja algo como esto:

' -
' Modificación en Noviembre 2008
' -
Private Sub Worksheet_Activate()
ActiveWindow.Zoom = 90 ' Establece un Zoom Particular
Worksheets(Hoja).EnableSelection = xlUnlockedCells
Worksheets(Hoja).Protect Password:=VerOculta, DrawingObjects:=True,
Contents:=True, Scenarios:=True
.
.

End Sub

Private Sub Worksheet_Deactivate()
If Worksheet.Name <> Hoja Then Worksheet.Name = Hoja ' Este código es
*por si* le cambian de nombre a la hoja '
'tengo algo muy similar a lo de arriba.etc
.
.
End Sub

Que es lo unico que utilizo... Este archivo lo nombro por "Concentrado
academico Sem YY.xls"
Pero existe otro archivo que se llama "Concentrado Administrativo Sem
YY.xls" que no es mio (y que no puedo modificar) pero que tiene macros que
se necesitan ejecutar en ese archivo,
aparte necesitan estar abiertos los dos pues utilizan informacion academica
y administrativa en conjunto (mas de una vez he propuesto utilizar vinculos
pero ese es otro tema)
pero mas de algun listo le resulta facil ejecutar las macros del archivo B
en las hojas del Archivo A, y me modifica la informacion de mi Archivo A.
Por eso de mi idea de encontrar la forma de no ejecutar las Macros de B en
A, teniendo los dos archivos abiertos.
Espero ser claro en mi explicacion y de antemano gracias por la ayuda.
JR


"Héctor Miguel" escribió en el mensaje
news:
hola, JR !

... resulta ser que en la hoja A que necesito que no ejecuten las macros
tengo Sub Worksheet_Activate() o Sub Worksheet_Deactivate() que me piden
la confirmacion de macros
y no puedo meter la linea que me describiste anteriormente...



entonces no te entiendo... los procedimientos de evento (_activate,
_deactivate, etc.)
- no se ejecutan si cuando abres su libro desactivas las macros
- tampoco se ejecutan cuando el libro "activo" NO es el que tiene esos
procedimientos
(en este punto tampoco tendria sentido usar la instruccion sugerida a tu
primer mensaje)

podrias ser mas claro en cuanto a que hacen las macros (y cuales son) que
no quisieras que hicieran ?

saludos,
hector.

Respuesta Responder a este mensaje
#8 Héctor Miguel
16/11/2008 - 06:27 | Informe spam
hola, JR ! (de atras... pa' lante)

2) si ya confirmaste que los codigos/eventos en los modulos (de clase) de los objetos de un libro...
-> NO se ejecutan cuando el libro activo es uno distinto -?-

y que cuando algun "listo" EJECUTA macros "de otro libro" cuando el libro activo es "el tuyo"
-> (y te interesa que NO se puedan ejecutar las macros "del otro", el que no puedes modificar)...
-> significa que las macros estan en modulos de codigo estandar -???-

-> "sugiere" al autor del otro libro, que ponga la misma instruccion en sus macros -se puede ?-
(a menos que quieras impedir que el usuario haga uso del llamado de TODAS las macros disponibles) -???-
(Alt + F8, -menu- edicion / macro / macros, atajos asigados, llamadas desde codigos "maliciosos", etc. etc. etc.)

1) si en algun momento, a "tus macros les estorba" si el usuario le cambia de nombre a las hojas...
prueba a usar en tus codigos NO el nombre de la hoja (en la interfase con el usuario) sino el "CodeName" de las hojas

-> notaras que en el explorador de proyectos (VBE) aparecen los objetos (hojas) con 2 nombres:
- el primero es el "codename" (p.e. Hoja1) y el segundo, entre parentesis, es el nombre "de cara al usuario"
- en la ventana de propiedades, la primer propiedad es (Name) entre parentesis, y es el "codename"
la segunda propiedad Name (SIN parentesis) es tambien el nombre de la hoja "de cara al usuario"

-> si en tus codigos utilizas (p.e.) Worksheets("mi primer hoja").Range("b15") <-> cambia (p.e.) a: [Hoja1].Range("b15")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ 1 __
Tengo dos archivos A = "Concentrado academico Sem YY.xls" y B = "Concentrado Administrativo Sem YY.xls"
A es de mi propiedad y en el tengo en cada hoja algo como esto:
Private Sub Worksheet_Activate()
ActiveWindow.Zoom = 90 ' Establece un Zoom Particular
Worksheets(Hoja).EnableSelection = xlUnlockedCells
Worksheets(Hoja).Protect Password:=VerOculta, DrawingObjects:=True, Contents:=True, Scenarios:=True
...
End Sub
Private Sub Worksheet_Deactivate()
If Worksheet.Name <> Hoja Then Worksheet.Name = Hoja ' Este código es *por si* le cambian de nombre a la hoja '
'tengo algo muy similar a lo de arriba.etc
...
End Sub



__ 2 __
"Concentrado Administrativo Sem YY.xls" que no es mio (y que no puedo modificar)
pero que tiene macros que se necesitan ejecutar en ese archivo
aparte necesitan estar abiertos los dos pues utilizan informacion academica y administrativa en conjunto
(mas de una vez he propuesto utilizar vinculos pero ese es otro tema)
pero mas de algun listo le resulta facil ejecutar las macros del archivo B en las hojas del Archivo A
y me modifica la informacion de mi Archivo A.
Por eso de mi idea de encontrar la forma de no ejecutar las Macros de B en A, teniendo los dos archivos abiertos...
Respuesta Responder a este mensaje
#9 JR
19/11/2008 - 00:48 | Informe spam
Gracias por las aportaciones
Agradezco las informacion que me proporcionaste para evitar el cambio de
nombre de hoja pero sigo teniendo el problema de que ejecuten macros de otro
libro cuando el libro activo es mio, le sugeri el autor que ponga la misma
instruccion sin respuesta favorable, me interesa impedir que el usuario haga
uso de las macros disponibles (todas)
Gracias de antemano.
JR
"Héctor Miguel" escribió en el mensaje
news:
hola, JR ! (de atras... pa' lante)

2) si ya confirmaste que los codigos/eventos en los modulos (de clase) de
los objetos de un libro...
-> NO se ejecutan cuando el libro activo es uno distinto -?-

y que cuando algun "listo" EJECUTA macros "de otro libro" cuando el
libro activo es "el tuyo"
-> (y te interesa que NO se puedan ejecutar las macros "del otro", el
que no puedes modificar)...
-> significa que las macros estan en modulos de codigo
andar -???-

-> "sugiere" al autor del otro libro, que ponga la misma instruccion en
sus macros -se puede ?-
(a menos que quieras impedir que el usuario haga uso del llamado de
TODAS las macros disponibles) -???-
(Alt + F8, -menu- edicion / macro / macros, atajos asigados, llamadas
desde codigos "maliciosos", etc. etc. etc.)

1) si en algun momento, a "tus macros les estorba" si el usuario le cambia
de nombre a las hojas...
prueba a usar en tus codigos NO el nombre de la hoja (en la interfase
con el usuario) sino el "CodeName" de las hojas

-> notaras que en el explorador de proyectos (VBE) aparecen los objetos
(hojas) con 2 nombres:
- el primero es el "codename" (p.e. Hoja1) y el segundo, entre
parentesis, es el nombre "de cara al usuario"
- en la ventana de propiedades, la primer propiedad es (Name) entre
parentesis, y es el "codename"
la segunda propiedad Name (SIN parentesis) es tambien el nombre de la
hoja "de cara al usuario"

-> si en tus codigos utilizas (p.e.) Worksheets("mi primer
hoja").Range("b15") <-> cambia (p.e.) a: [Hoja1].Range("b15")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ 1 __
Tengo dos archivos A = "Concentrado academico Sem YY.xls" y B =
"Concentrado Administrativo Sem YY.xls"
A es de mi propiedad y en el tengo en cada hoja algo como esto:
Private Sub Worksheet_Activate()
ActiveWindow.Zoom = 90 ' Establece un Zoom Particular
Worksheets(Hoja).EnableSelection = xlUnlockedCells
Worksheets(Hoja).Protect Password:=VerOculta, DrawingObjects:=True,
Contents:=True, Scenarios:=True
...
End Sub
Private Sub Worksheet_Deactivate()
If Worksheet.Name <> Hoja Then Worksheet.Name = Hoja ' Este código es
*por si* le cambian de nombre a la hoja '
'tengo algo muy similar a lo de arriba.etc
...
End Sub



__ 2 __
"Concentrado Administrativo Sem YY.xls" que no es mio (y que no puedo
modificar)
pero que tiene macros que se necesitan ejecutar en ese archivo
aparte necesitan estar abiertos los dos pues utilizan informacion
academica y administrativa en conjunto
(mas de una vez he propuesto utilizar vinculos pero ese es otro tema)
pero mas de algun listo le resulta facil ejecutar las macros del archivo
B en las hojas del Archivo A
y me modifica la informacion de mi Archivo A.
Por eso de mi idea de encontrar la forma de no ejecutar las Macros de B
en A, teniendo los dos archivos abiertos...




Respuesta Responder a este mensaje
#10 Héctor Miguel
19/11/2008 - 02:31 | Informe spam
hola, JR !

... me interesa impedir que el usuario haga uso de las macros disponibles (todas) ...



regresando a tu consulta original ...
Tengo abiertos dos archivos de exel A y B
En A tengo una serie de macros que se ejecutan en ese archivo,
Como puedo bloquear para que o ejecuten en el Archivo B



(pregunta): te referias exclusivamente a los procedimientos de evento _activate, _deactivate de "tus" hojas ?
o... existen ademas macros en modulos estandar que el usuario puede llamar (p.e.) con Alt + F8 ?

comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida