Permet de choir l'imprimante de son choix sans commondialog.
Pourquoi ? parce que je trouvais trop compliqué la gestion des imprimantes par défaut et qu'il est difficile de récupérer l'info de l'imprimante choisie et de l'affecter à l'objet printer.
Biensur, cet objet peut évoluer très simplement en y ajoutant le nb de pages, de tel page à telle page etc. mais je n'en avais pas besoin.
Source / Exemple :
'dans une form
'ajouter un combobox CbPrinters en mode dropdownlist
'ajouter un bouton CmdPrint
Dim TbPrinter() As Object
Private Sub CmdPrint_Click()
'envoie la commande dimpression sur l'imprimante sélectionnée
FrmConcentrations.Imprimer TbPrinter(CbPrinters.ListIndex)
Debug.Print CbPrinters.ListIndex
Unload Me
End Sub
Private Sub Form_Load()
CbPrinters.Clear
Dim X As Printer
'redimmensionne le tableau en fct du nb imprimantes
ReDim TbPrinter(0 To Printers.Count - 1)
Debug.Print "nb imprimantes : " & Printers.Count
Dim NbPrinter As Integer, SelPrinter As Integer
For Each X In Printers
CbPrinters.AddItem X.DeviceName
Set TbPrinter(NbPrinter) = X
NbPrinter = NbPrinter + 1
Next
'gere si pas d'imprimante
If Printers.Count = 0 Then
MsgBox "Pas d'imprimante trouvée. Opération annulée.", vbCritical, "Erreur d'impression"
Exit Sub
End If
'selectionne l'imprimante par défaut actuelle dans la liste
CbPrinters.Text = Printer.DeviceName
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'annule l'impression
Unload Me
End Sub
Sub Imprimer(Imprimante)
'Debug.Print Imprimante
Set Printer = Imprimante
On Error GoTo err:
'imprimer ici
printer.print "TEST"
Printer.EndDoc
Exit Sub
err:
MsgBox "Problème d'impression : Récupération impossible des données ou imprimante indisponible.", vbCritical, "Erreur"
end sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.