Listado de impresoras

28/09/2006 - 17:35 por Carlos | Informe spam
Hola a todos
A traves de código puedo ver la impresora activa en ese momento con
Application.ActivePrinter, pero ¿hay alguna forma de ver todas las impresoras
configuradas?

Un saludo

Carlos

Preguntas similare

Leer las respuestas

#1 Francisco Parrilla
29/09/2006 - 03:55 | Informe spam
Revisa este link ...

Ejemplo que permite listar en un control Listbox las impresoras que haya en
el sistema y mediante una simple función que utiliza un objeto de tipo
WScript.Network, podemos cambiar y establecer la impresora predeterminada, es
decir la que se seleccione de la lista. El método que establece la Imp se
llama Setdefaultprinter . Para listar las impresoras en el control List1, se
recorre en un For-Each la colección Printer y se agrega el nombre con la
propiedad DeviceName

http://www.recursosvisualbasic.com....minada.htm
Respuesta Responder a este mensaje
#2 Héctor Miguel
29/09/2006 - 05:11 | Informe spam
hola, Carlos !

A traves de codigo puedo ver la impresora activa en ese momento con Application.ActivePrinter
pero hay alguna forma de ver todas las impresoras configuradas?



[hasta donde se]... 'ver' impresoras por codigo -> VBA
-> no es 'tan sencillo' como 'verlas' por codigo -> VB [stand-alone] o sea que...
-> la pagina que te apunta Francisco Parrilla... no veo como lo puedas implementar para vba
[al menos, de manera tan sencilla como se espera/puede/... en VB] :-(

[ahora]... necesitas [realmente] 'ver' las impresoras disponibles a traves de codigo VBA ?
o... [solo] necesitas que el usuario pueda elegir alguna de las impresoras disponibles/instaladasconfiguradas/... ?

si es la segunda opcion... prueba con una instruccion como: -> Application.Dialogs(xlDialogPrinterSetup).Show

si es la primera... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Carlos
29/09/2006 - 08:25 | Informe spam
Gracias Hector
Tengo una hoja que resumo y ornedo para imprimir en función de unos datos
que le pido al usuario a traves de un formulario. En el Formulario había
incluido un combobox donde aparecieran las impresoras para que el usuario
eligiera donde quiere imprimir. Creo que con esa instrucción me puedo apañar,
aunque tendré que cambiar mi formulario.
Gracias

Carlos

"Héctor Miguel" escribió:

hola, Carlos !

> A traves de codigo puedo ver la impresora activa en ese momento con Application.ActivePrinter
> pero hay alguna forma de ver todas las impresoras configuradas?

[hasta donde se]... 'ver' impresoras por codigo -> VBA
-> no es 'tan sencillo' como 'verlas' por codigo -> VB [stand-alone] o sea que...
-> la pagina que te apunta Francisco Parrilla... no veo como lo puedas implementar para vba
[al menos, de manera tan sencilla como se espera/puede/... en VB] :-(

[ahora]... necesitas [realmente] 'ver' las impresoras disponibles a traves de codigo VBA ?
o... [solo] necesitas que el usuario pueda elegir alguna de las impresoras disponibles/instaladasconfiguradas/... ?

si es la segunda opcion... prueba con una instruccion como: -> Application.Dialogs(xlDialogPrinterSetup).Show

si es la primera... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#4 Carlos
29/09/2006 - 08:30 | Informe spam
Perfecto Francisco. Era justo lo que necesitaba. No entiendo bien el código
pero funciona perfectamente.
Muchas gracias

Carlos

"Francisco Parrilla" escribió:

Dentro de un userform prueba el siguiente condigo con un listbox:

Private Sub UserForm_Initialize()
Set WshNetwork = CreateObject("WScript.Network")
Set Printers = WshNetwork.EnumPrinterConnections
For i = 0 To Printers.Count - 1 Step 2
ListBox1.AddItem Printers.Item(i + 1)
Next
End Sub

Esto solo muestra las impresoras instaladas, igualmente con la seleccion del
listbox puedes predeterminar la impresora, a lo cual ya tienes la respuesta
:)

Saludos




Respuesta Responder a este mensaje
#5 Héctor Miguel
29/09/2006 - 08:36 | Informe spam
hola, Francisco !

[hasta donde se]... para que puedas modificar una asignacion de impresora al Application.ActivePrinter...

1) una vez que tengas 'seleccionada' alguna impresora en el control 'ListBox1'...
-> como piensas 'decirle' por codigo a la aplicacion -> cual es el puerto de conexion ?

2) [de manera 'similar']...
-> como piensas indicarle por codigo a la aplicacion -> la 'preposicion' de conexion al puerto ?
'en' si es en castellano... 'on' si es en ingles... 'sur' si es en frances... etc. etc. etc. -???-

3) ['aun hay mas']...
-> como piensas resolver -posibles- 'conflictos' con los puertos 'plug&play' ? [me explico]...
el primer elemento que devueve la matriz -> 'EnumPrinterConnections' es un puerto de conexion [del sistema]
PERO... podria 'devolverte' [p.e.] un puerto USB001 [o alguna conexion de red]
-> y el Application.ActivePrinter 'mostraria' [p.e.] un puerto de conexion tipo 'Ne02'

4) [y todavia 'hay mas']...
el 'EnumPrinterConnections' tampoco te proporciona los dos puntos [para el Application.ActivePrinter] :-((

comentas ?
saludos,
hector.

__ la propuesta ofrecida __
Dentro de un userform prueba el siguiente condigo con un listbox:

Private Sub UserForm_Initialize()
Set WshNetwork = CreateObject("WScript.Network")
Set Printers = WshNetwork.EnumPrinterConnections
For i = 0 To Printers.Count - 1 Step 2
ListBox1.AddItem Printers.Item(i + 1)
Next
End Sub

Esto solo muestra las impresoras instaladas
igualmente con la seleccion del listbox puedes predeterminar la impresora
a lo cual ya tienes la respuesta :)

Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida