Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHOIX IMPRIMANTE SANS COMMONDIALOG


Information sur la source

Catégorie :Imprimante Classé sous : imprimer, choix, commondialog, defaut Niveau : Débutant Date de création : 31/07/2006 Vu : 10 374

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

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

  • '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
'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

Commentaires et avis

signaler à un administrateur
Commentaire de Renfield le 31/07/2006 13:59:57 administrateur CS

bien que je n'en comprenne pas le but exact...
(les CommonDialog permettent de modifier le parametrage, sont localisées, etc)

ces deux etapes me semblent 'logiquement' inversées :

For Each X In Printers  
    ...
Next

If Printers.Count = 0 Then
    ...
    Exit Sub
End If

signaler à un administrateur
Commentaire de filotto le 26/05/2008 21:09:47

peut tu me donner un exemple pour le nb de copies. Merci.

signaler à un administrateur
Commentaire de Renfield le 27/05/2008 07:15:20 administrateur CS

Printer.copies = 2

signaler à un administrateur
Commentaire de asie le 28/08/2008 08:19:30

Merci bocoup pour ton code, mais j'ai une préoccupation ce code est t'il valable pour les états sous Crystal Report?
Car c'est ce dernier que j'utilise pour mes états sous VB.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Imprimer dans un fichier avec un CommonDialog [ par BECKY ] Bonjour à tous,J'ai fait un petit programme d'impression en VB6 avec l'objetCommonDialog.J'arrive sans problème à faire des impressions.Par contre qua choix de pages à imprimer avec shellexecute [ par casentlepate ] Bonjour à tous,je souhaite imprimer uniquement un les pages 1 et 2 d'un fichier pdf en utilisant les fonctionnalités DDE via la commande she impression formulaire avec choix imprimante [ par midmil ] sauriez vous comment je pourrais imprimer un formulaire VB sachant que j'ai besoin de préciser l'imprimante. Je ne peux pas demander la boite de dialo Imprimer une image avec affichage CommonDialog [ par Cpapy ] Bonjour,    J'imprime actuellement des Photos avec Printer.PaintPicture mais je pense qu'il est possible d'utiliser une autre technique plus intér imprimer avec commondialog [ par le_chef ] salut,je vx imprimer avec l'utilisation d'un commondialog et comment construir en page pour l'imprimer mercii Embêté [ par Goth25 ] Bonsoir a tous,c'est la première fois je gère un formulaire complexe en vb et j'aimerais savoir si y'a de quoi a faire avec ca....64 cases a remplir p imprimer nombre colonnes variable?? [ par mannoula_2007 ] bonjour,j'ai une entrée variable, donc nombre de colonnes variable(1,2,..5)chaque fois un click sur un boutin ajouter colonne me permet d'introduire d declaration commonDialog [ par kevinou55 ] bonjour a tousvoila j'ai une question un peu bete mais je ne trouve pas la solution, je cherche a ouvrir un commondialog mais lorsque je tape CommonDi mettre une valeur par defaut a une listbox ? [ par frvfrvfrvfrv ] Salut à tous les basicophone !Comment fait on pour donné une valeur par defaut a une listbox ?j'ai essayer setselected mais rien !Merci imprimer une form à l'échelle 90% [ par jytest ] A l'aide! Novice en VisualBasic...J'ai beau consulter les codes... Mais je ne trouve pas comment imprimer une form à 90% du format A4printer.Orientati


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.