Modificare la stampante corrente

Anonimo
2013-04-15T11:48:41+00:00

Buongiorno a tutti

Solito dilemma che secondo me ha una soluzione banale (spero!).

Vorrei modificare il driver di stampa da utilizzare per stampare un determinato foglio della mia cartella.

Normalmente stampo sulla stampante HP in rete, ma per un determinato foglio di una determinata cartella di lavoro, che contiene un grafico predisposto per essere stampa in formato "Cartolina giapponese" disponibile solo col driver di stampa "PrimoPDF", vorrei cambiare in automacio il driver di stampa (ad esempio tramite l'evento di attivazione di quel foglio). Inutile dire che quel formato non è disponibile sugli altri driver di stampa disponibili (HP in locale e altre stampanti di rete),

Come si fa, via VBA a scegliere la stampante da impiegare? Ho provato con la registrazione automatica delle macro e selezionando il driver desiderato...azione che però non viene registrata.

Grazie per l'aiuto

Sergiovery

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-04-15T12:03:35+00:00

 

Vorrei modificare il driver di stampa da utilizzare per stampare un determinato foglio della mia cartella.

 

Grazie per l'aiuto

Sergiovery

Option Explicit

Public Sub m_1()

    Dim wshNetwork As Object

    Dim wshCollection As Object

    Dim wshItem As Variant

    Dim sStampanti As String

    Set wshNetwork = CreateObject("WScript.Network")

    Set wshCollection = wshNetwork.EnumPrinterConnections

        For Each wshItem In wshCollection

            sStampanti = sStampanti & wshItem & vbNewLine

        Next

        MsgBox sStampanti

    Set wshCollection = Nothing

    Set wshNetwork = Nothing

End Sub

Public Sub m_2()

    Dim s As String

    s = ActivePrinter

    ActivePrinter = "Nome della tua stampante"

    'Codice di stampa

    ActivePrinter = s

End Sub

Public Sub m_3()

    Dim s As String

    s = ActivePrinter

    Application.Dialogs(xlDialogPrinterSetup).Show

    'Codice di stampa

    ActivePrinter = s

End Sub

Quindi, ad esempio:

Public Sub mStampa(ByVal sFoglio As String)

    Dim s As String

    If sFoglio = "Foglio1" Then

        s = ActivePrinter

        ActivePrinter = "Nome della tua stampante"

        'Codice di stampa

        ActivePrinter = s

    End If

End Sub

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-04-15T15:46:39+00:00

    Grazie Mauro,

    Come sempre di grande aiuto!

    Problema egregiamente risolto.

    Sergiovery

    Bene!

    Grazie a te per il cortese riscontro.

    Ciao e alla prossima.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-04-15T15:27:21+00:00

    Grazie Mauro,

    Come sempre di grande aiuto!

    Problema egregiamente risolto.

    Sergiovery

    La risposta è stata utile?

    0 commenti Nessun commento