Imprimir en Vb

19/05/2004 - 09:16 por LEO | Informe spam
Buenas
He creado un codigo en un boton, porque tengo un libro donde tengo en cada uno de ellos distintas hojas, que antes de imprimir necesito filtrar, para eso mediante un boton activo una macro de filtro y escogo las hojas que deseo imprimir del proyecto, mi problema es que cuando esta hoja estandar la grabo mediante otro nombre, no se como referenciar la orden de impresion de las hojas, si me cambia la direccion o el nombre del archivo
La orden es esta
If cbdatos = True The
mySum = Application.Run("oferta_20041_macro.xls!datos"
'MsgBox "imprimiendo datos
End I
If cbarmario = True The
mySum = Application.Run("oferta_20041_macro.xls!armario"
'MsgBox "imprimiendo armario
End I
If cbinstalacion = True The
mySum = Application.Run("oferta_20041_macro.xls!instalacion"
'MsgBox "imprimiendo instalacion
End I
If cbmano = True The
mySum = Application.Run("oferta_20041_macro.xls!mano"
'MsgBox "imprimiendo Mano de Obra
End I
En

Como podeis comprobar...donde pone "oferta_20041" esto variara depende del nombre que se le haya dado a la hojaentonces que instrucion podria usar
LEO
 

Leer las respuestas

#1 Javier G
19/05/2004 - 15:55 | Informe spam
Podrías crear una variable (p.e. "nombre") que capture el nombre de la hoja
activa que deseas, de modo que se conserve el nombre, aún cuando sea
modificado.

Dim nombre
nombre = ActiveSheet.Name

Luego, lo que tendrías que hacer es algo así como esto (en tu código)

mySum = Application.Run(nombre & "_macro.xls!mano")

Saludos.

Javier G.

Buenas;
He creado un codigo en un boton, porque tengo un libro donde tengo en cada


uno de ellos distintas hojas, que antes de imprimir necesito filtrar, para
eso mediante un boton activo una macro de filtro y escogo las hojas que
deseo imprimir del proyecto, mi problema es que cuando esta hoja estandar la
grabo mediante otro nombre, no se como referenciar la orden de impresion de
las hojas, si me cambia la direccion o el nombre del archivo.
La orden es esta:
If cbdatos = True Then
mySum = Application.Run("oferta_20041_macro.xls!datos")
'MsgBox "imprimiendo datos"
End If
If cbarmario = True Then
mySum = Application.Run("oferta_20041_macro.xls!armario")
'MsgBox "imprimiendo armario"
End If
If cbinstalacion = True Then
mySum = Application.Run("oferta_20041_macro.xls!instalacion")
'MsgBox "imprimiendo instalacion"
End If
If cbmano = True Then
mySum = Application.Run("oferta_20041_macro.xls!mano")
'MsgBox "imprimiendo Mano de Obra"
End If
End

Como podeis comprobar...donde pone "oferta_20041" esto variara depende del


nombre que se le haya dado a la hojaentonces que instrucion podria usar.
LEO

Preguntas similares