PrintOut

17/12/2003 - 22:52 por Desastres | Informe spam
Buenas tardes

La instruccion PrintOut en codigo, hace que excel presente un un dialogo creo que de la coleccion Dialogs.
Si tienes actualizada ScreenUpdaten=false el cuadro queda de un color marron "sucio". Bamos asquerosejo.
¿Cual seria la forma de hacer que ese cuadro "sucio" no apareciera?

Por otro lado . He intentado ver las constantes( creo que son eso) de Application.Dialogs pero no lo he
conseguido

'( lo de -1 por si las moscas), solo consegui ver que hay 706, creo

For Bucle = 1 to Application.Dialogs.count -1
debug.print application.Dialogs.Item(bucle).Name
Next Bucle
Cuando el bucle vale 3, se me muere la burra.

Agradecense Ideas.

Saludos
Des

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/12/2003 - 08:27 | Informe spam
hola, Des !

... PrintOut en codigo, hace que excel presente un dialogo creo que de la coleccion Dialogs.
... ScreenUpdaten=false el cuadro queda de un color marron "sucio". [...]
¿... hacer que ese cuadro "sucio" no apareciera?



[segun yo] 'PrintOut' NO 'presenta' el dialogo 'normal' de impresion =>imprime 'directamente'<[a lo sumo] presenta un 'aviso' indicando que la aplicacion esta 'en modo' de impresion =>imprimiendo<la instruccion que presenta el cuadro de dialogo 'normal' para imprimir es =>Application.Dialogs(xlDialogPrint).Show<[o el dialogo de 'vista preliminar de impresion' con: =>PrintPreview<=]

... He intentado ver las constantes (creo que son eso) de Application.Dialogs pero no lo he conseguido [...]



en alguna linea de codigo, usa [p.e.] =>Applicatin.Dialogs(<'al momento' de introducir el parentesis de 'apertura', vba te 'presentara' una lista de los dialogos integrados 'disponibles'
otra 'opcion' seria consultando el asistente para ayuda [en vba] =>{F1}<y 'preguntar' por: =>argumentos de cuadros de diálogo<
saludos,
hector.
Respuesta Responder a este mensaje
#2 Desastres
18/12/2003 - 09:33 | Informe spam
Hola Héctor. Gracias

[a lo sumo] presenta un 'aviso' indicando que la aplicacion esta 'en modo' de impresion =>imprimiendo<Justo a ese es al que queria cargarme. Pero aún no sé ni quien lo llama. ¿Puedes decirme tu como enmudecerlo?


For Bucle = 1 to Application.Dialogs.count -1
debug.print application.Dialogs.Item(bucle).Name
Next Bucle
Cuando el bucle vale 3, se me muere la burra.
¿ e indicarme la razon del deceso del pobre animal en la tercera linea del bucle? Habiendome dado las dos
anteriores?

Ya he visto que me dices donde y como buscar, pero lo que no veo es el error que contiene el bucle, sobre todo
pensando en que en dos ocasiones me da una respuesta.

Saludos
Des




"Héctor Miguel" escribió en el mensaje
news:#h$
hola, Des !

> ... PrintOut en codigo, hace que excel presente un dialogo creo que de la coleccion Dialogs.
> ... ScreenUpdaten=false el cuadro queda de un color marron "sucio". [...]
> ¿... hacer que ese cuadro "sucio" no apareciera?

[segun yo] 'PrintOut' NO 'presenta' el dialogo 'normal' de impresion =>imprime 'directamente'<> [a lo sumo] presenta un 'aviso' indicando que la aplicacion esta 'en modo' de impresion =>imprimiendo<> la instruccion que presenta el cuadro de dialogo 'normal' para imprimir es


=>Application.Dialogs(xlDialogPrint).Show<> [o el dialogo de 'vista preliminar de impresion' con: =>PrintPreview<=]

> ... He intentado ver las constantes (creo que son eso) de Application.Dialogs pero no lo he conseguido


[...]

en alguna linea de codigo, usa [p.e.] =>Applicatin.Dialogs(<> 'al momento' de introducir el parentesis de 'apertura', vba te 'presentara' una lista de los dialogos


integrados 'disponibles'
otra 'opcion' seria consultando el asistente para ayuda [en vba] =>{F1}<> y 'preguntar' por: =>argumentos de cuadros de diálogo<>
saludos,
hector.


Respuesta Responder a este mensaje
#3 Héctor Miguel
19/12/2003 - 10:33 | Informe spam
hola, Des !

[a lo sumo] presenta un 'aviso' indicando que la aplicacion esta 'en modo' de impresion =>imprimiendo<>> Justo ... es al que queria cargarme. ... no se ni quien lo llama. ¿... como enmudecerlo?



1.- 'lo llama' el sistema operativo [windows] NO la aplicacion :(
2.- para 'enmudecerlo' [en excel] es necesario recurrir a las API's =>al final expongo un 'ejemplo'<= :)

For Bucle = 1 to Application.Dialogs.Count -1
Debug.Print Application.Dialogs.Item(Bucle).Name
Next Bucle
Cuando el bucle vale 3, se me muere la burra.
¿... la razon del deceso del pobre animal en la tercera linea del bucle? Habiendome dado las dos anteriores?
... no veo el error que contiene el bucle, sobre todo pensando en que en dos ocasiones me da una respuesta.



[sin 'meternos al fondo' y...] 'considerando' que la propiedad 'Name' ['parece' que] NO 'aplica' a los 'Dialogs'...
[supongo que...] 'la muerte' del animal 'obedece' a un 'mandato de la naturaleza' =>NO 'debio nacer'<= :((
[seguramente estoy 'suponiendo de mas' y la razon sea 'otra'] :\\

saludos,
hector.

sigue un ejemplo de las API's para 'enmudecer' el 'cuadrito' de 'Imprimiendo.' ==Private Declare Function EnviarMensaje Lib "User32" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function EsVentana Lib "User32" Alias "IsWindow" ( _
ByVal hwnd As Long) As Long
Private Declare Function Invalidar Lib "User32" Alias "InvalidateRect" ( _
ByVal hwnd As Long, _
lpRect As Long, _
ByVal bErase As Long) As Long
Private Declare Function Actualizar Lib "User32" Alias "UpdateWindow" ( _
ByVal hwnd As Long) As Long
Private Declare Function ObtenerVentana Lib "User32" Alias "GetDesktopWindow" () As Long
' una funcion *privada* que usa las API's segun la *necesidad* [congelar = si/no] '
Private Function CongelarPantalla( _
Congelar As Boolean, _
Optional Window_hWnd As Long = 0)
Const WM_SETREDRAW = &HB
Const WM_PAINT = &HF
If Window_hWnd <> 0 Then
If EsVentana(hwnd:=Window_hWnd) = False Then Exit Function
Else: Window_hWnd = ObtenerVentana()
End If
If Congelar = False Then
Call EnviarMensaje(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=1, lParam:=0)
Call Invalidar(hwnd:=Window_hWnd, lpRect:=0, bErase:=True)
Call Actualizar(hwnd:=Window_hWnd)
Else: Call EnviarMensaje(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=0, lParam:=0)
End If
End Function
' y la macro que imprime 'en limpio' [gracias a las API's] '
Sub Imprimir_Limpio()
CongelarPantalla True
ActiveWindow.SelectedSheets.PrintOut
CongelarPantalla False
End Sub
Respuesta Responder a este mensaje
#4 Desastres
19/12/2003 - 12:54 | Informe spam
Hola Hector. Gracias.

[supongo que...] 'la muerte' del animal 'obedece' a un 'mandato de la naturaleza' =>NO 'debio nacer'<:((


Tienes razon

For Bucle = 1 to Application.Dialogs.Count -1
Debug.Print Application.Dialogs.Item(Bucle).Name
Next Bucle
... no veo el error que contiene el bucle, sobre todo pensando en que en dos ocasiones me da una respuesta.
A veces recuerdo Platero y Yo, y no distingo.

La primera prueba la hice con Name( en la primera consulta a las news). Dado lo que vi en la ayuda me lo hizo
pensar.
Y mientras obtenia respuesta ( y antes de la segunda consulta) hice pruebas con otras. Solo que por responder
utilizando el mismo mensaje, no sustitui Name por cualquiera de las otras propiedades.Lo siento
Creo recordar, que las que se le pueden aplicar son . Application,Parent, Creator y otra que ahora no
recuerdo.

Sigue sin funcionarme con ellas.
Incluso comence el bucle con otros valores, por si "casualmente" solo era uno el control problematico, pero di
en hueso.



Con la segunda parte ,
sigue un ejemplo de las API's para 'enmudecer' el 'cuadrito' de 'Imprimiendo.' == me has dao trabajo.


Me a tomaré con calma

Saludos
Des
Respuesta Responder a este mensaje
#5 Héctor Miguel
20/12/2003 - 00:45 | Informe spam
hola, Des !

For Bucle = 1 to Application.Dialogs.Count -1
Debug.Print Application.Dialogs.Item(Bucle).Name
Next Bucle
... no veo el error que contiene el bucle, sobre todo pensando en que en dos ocasiones me da una respuesta.
... las que se le pueden aplicar son . Application, Parent, Creator y otra que ahora no recuerdo.
Sigue sin funcionarme con ellas [...]



cuando respondi a la parte del 'llamado' a los dialogos por un bucle [que mi respuesta fue]...
[supongo que...] 'la muerte' del animal 'obedece' a un 'mandato de la naturaleza' =>NO 'debio nacer'<= :((
[seguramente estoy 'suponiendo de mas' y la razon sea 'otra'] :\\



con relacion a la seguna linea [y despues de investigar mas 'a fondo']... efectivamente... la razon es 'otra' ...
1.- cuando [en vba] 'escribes' =>Application.Dialogs(<= vba 'presenta' una lista de los dialogos 'disponibles'
2.- el tercero 'en orden' es precisamente =>xlDialogAddChartAutoformat<3.- la causa de la falla [y 'el deceso del animal'] se debe a que:
[con seguridad] el objeto 'activo' [seleccion actual] NO es un grafico ['incrustado' o en hoja de grafcos] :((
4.- 'sabiendo' que algunos objetos [dialogos integrados en este caso] 'requieren' de un 'ambiente especial'
de lo contrario 'causaran' un error [y si el error NO es 'dañino']... 'pon' ANTES un 'On Error Resume Next'.

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida