Choix imprimante en VB - VB/VBA/VBS - Programmation
Marsh Posté le 06-03-2006 à 17:20:56
Si tu expliquais les problèmes que tu rencontres au lieu de simplement dire que ça ne marche pas.
Marsh Posté le 06-03-2006 à 17:35:08
En fait, je ne comprends pas la procédure suivante :
***************
Cette méthode consiste à affecter à l'objet Printer le nom d'une des imprimantes installées. Copiez ce code source dans un module standard.
Code :
|
La fonction SelectionneImprimante sélectionne l'imprimante dont le nom est passé en paramètre. Maintenant placez un bouton de commande et une ComboBox sur une form et placez le code ci-dessous dans le module de la form.
Code :
|
La ComboBox contient la liste des imprimantes installées. Au chargement de la form, l'imprimante par défaut est sélectionnée dans la combo.
********************
Je suis débutant en Visual Basic, et je ne sais pas si le code ci-dessus est applicable à VB 6.3 (version Excel)
Si ce code est compatible, je n'arrive pas a le faire fonctionner! Comment faire?
Marsh Posté le 06-03-2006 à 22:35:32
Bonsoir,
L'objet Printer n'est pas reconnu en VBA Excel. Application.ActivePrinter renvoie l'imprimante active (par défaut).
Pour obtenir la liste des imprimantes installées, je crois qu'il n'y pas d'autre solution que de passer par l'API et une solution existe sur ce site:
http://frederic.sigonneau.free.fr/ [...] nibles.txt
Bon courage
Epéna
Marsh Posté le 07-03-2006 à 08:55:36
J'ai trouvé ce code sinon mais il est envoyé dans une Msgbox
Je n'arrive pas a le renvoyer dans une ComboBox, est-ce possible ?
>> Modifier l'imprimante par défaut de windows
|
Marsh Posté le 08-03-2006 à 07:26:07
Bonjour,
Le code suivant va lister les imprimantes installées sur une ComboBox1 :
Private Declare Function EnumPrintersA Lib "Winspool.drv" _
(ByVal flags As Long, ByVal name As String, ByVal Level As Long, _
pPrinterEnum As Long, ByVal cdBuf As Long, _
pcbNeeded As Long, pcReturned As Long) As Long
Private Declare Function lstrlenA Lib "Kernel32" _
(ByVal lpString As Any) As Long
Private Declare Function lstrcpyA Lib "Kernel32" _
(ByVal lpString1 As String, ByVal lpString2 As Long) As Long
Private Sub UserForm_Initialize()
Dim PrinterEnum() As Long, Impr() As String
Dim Needed As Long, Returned As Long, I As Integer
EnumPrintersA 2, vbNullString, 5, 0, 0, Needed, 0
ReDim PrinterEnum(Needed / 4)
EnumPrintersA 2, vbNullString, 5, PrinterEnum(0), _
Needed, Needed, Returned
ReDim Impr(1 To Returned)
For I = 1 To Returned
Impr(I) = Space$(lstrlenA(PrinterEnum(I * 5 - 5)))
lstrcpyA Impr(I), PrinterEnum(I * 5 - 5)
Next I
ComboBox1.List = Impr
End Sub
Bon courage
Epéna
Marsh Posté le 09-03-2006 à 23:55:43
c'est du Vba et non du Vb......1000 excuses
Marsh Posté le 06-03-2006 à 09:21:19
Bonjour,
Je cherche a installer une UserForm avec une combobox listant les imprimantes disponnibles.
J'ai trouvé le code suivant mais je n'arrive pas a le mettre en application.
http://vb.developpez.com/faq/?page=Systeme#selectimp
Ce code est il fait pour Visual Basic 6.3 d'Excel 2003?
Si oui, quelle est la procédure?
Merci !