la macro

26/09/2007 - 21:14 por bky | Informe spam
Hola... Tengo la siguiente macro...
Sub Gastos_menores()
ActiveSheet.PrintOut 'Copies=2
ActiveSheet.Unprotect ("1496")
[g4] = "A01001001130" & Format(Val(Right([g4], 7)) + 1, "0000000")
ActiveSheet.Protect Password:="1496", DrawingObjects:=True, Contents:=True
End Sub
y me funciona muy bien, pero quiero que se ejecute de un libro diferente
al que se encuentra el documento, pero cuando intento ejecutarla no imprime
el documento al que la macro hace referencia, sini, el el que esta en
pantalla, dandome un mensaje de Error..

si alguien entiende por favor ayudeme...
bye

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
27/09/2007 - 04:54 | Informe spam
hola, 'anonimo/a' !

... la siguiente macro...
Sub Gastos_menores()
ActiveSheet.PrintOut 'Copies=2
ActiveSheet.Unprotect ("1496")
[g4] = "A01001001130" & Format(Val(Right([g4], 7)) + 1, "0000000")
ActiveSheet.Protect Password:="1496", DrawingObjects:=True, Contents:=True
End Sub
y me funciona muy bien, pero quiero que se ejecute de un libro diferente al que se encuentra el documento
pero cuando intento ejecutarla no imprime el documento al que la macro hace referencia
sino el el que esta en pantalla, dandome un mensaje de Error...



-> podrias exponer cual es el mensaje de error que obtienes ? [de preferencia, +/- exactamente], ya que...

1) la macro que expones esta haciendo *exactamente* lo que le indicas...
a) impriimiendo *la hoja activa* <=> ActiveSheet.PrintOut
b) modificando [o *tratando* de modificar] la celda 'G4' TAMBIEN de la hoja *activa* [esto es por omision de referencias]
c) [en el inter]... des/re/protegiendo TAMBIEN la hoja activa <=> ActiveSheet.Unprotect / ActiveSheet.Protect

2) si la hoja y celda que quieres des/re/proteger y *actualizar* NO esta en el libro activo...
es necesario *calificar* la referencia completa, p.e. suponiendo que estan en el libro que contiene la macro...
-> independientemente de si el libro que contiene la macro esta como activo o no... -?-
NOTA que hay un "punto" ANTES de la referencia a rangos -> .[g4]

With ThisWorkbook.Worksheets("hoja secreta")
.Unprotect "1496"
.[g4] = "A01001001130" & Format(Val(Right(.[g4], 7)) + 1, "0000000")
.Protect Password:="1496", DrawingObjects:=True, Contents:=True
End With

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

p.d. un poquitin de [mas] paciencia... es *sano* :))
Respuesta Responder a este mensaje
#2 bky
27/09/2007 - 16:14 | Informe spam
gracias por la aclaracion Héctor Miguel...Ya entiendo que estoy haciendo
referencia a una hoja activa y por eso solo me ejecuta esta. Es que no soy
muy experta en cuanto a macros.
entonces me gustaria que me escribiera cual es la macro que debo usar para
que me ejecute la referencia que esta en otro libro

"bky" escribió:

Hola... Tengo la siguiente macro...
Sub Gastos_menores()
ActiveSheet.PrintOut 'Copies=2
ActiveSheet.Unprotect ("1496")
[g4] = "A01001001130" & Format(Val(Right([g4], 7)) + 1, "0000000")
ActiveSheet.Protect Password:="1496", DrawingObjects:=True, Contents:=True
End Sub
y me funciona muy bien, pero quiero que se ejecute de un libro diferente
al que se encuentra el documento, pero cuando intento ejecutarla no imprime
el documento al que la macro hace referencia, sini, el el que esta en
pantalla, dandome un mensaje de Error..

si alguien entiende por favor ayudeme...
bye

Respuesta Responder a este mensaje
#3 Héctor Miguel
27/09/2007 - 18:19 | Informe spam
hola, (...) ?

...Ya entiendo que estoy haciendo referencia a una hoja activa y por eso solo me ejecuta esta...
... me gustaria que me escribiera cual es la macro que debo usar para que me ejecute la referencia que esta en otro libro...



[pues]... +/- como te indico en el ejemplo del punto 2 en el anterior mensaje:...

-> si la hoja y celda que quieres des/re/proteger y *actualizar* NO esta en el libro activo...
es necesario *calificar* la referencia completa, p.e. suponiendo que estan en el libro que contiene la macro...
-> independientemente de si el libro que contiene la macro esta como activo o no... -?-
NOTA que hay un "punto" ANTES de la referencia a rangos -> .[g4]

With ThisWorkbook.Worksheets("hoja secreta")
.Unprotect "1496"
.[g4] = "A01001001130" & Format(Val(Right(.[g4], 7)) + 1, "0000000")
.Protect Password:="1496", DrawingObjects:=True, Contents:=True
End With

-> si la hoja tampoco es parte del libro que contiene *la macro*... solo tienes que indicar su referencia completa...
cambiando en la linea que dice:
de:
With ThisWorkbook.Worksheets("hoja secreta")
a:
With Workbook("otro libro.xls").Worksheets("esta hoja")

[obviamente] el libro "otro libro.xls" debera estar abierto en la sesion actual ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida