Problème code vba choix de magasin pour impression
cs_mrc306
Messages postés5Date d'inscriptionjeudi 7 juin 2012StatutMembreDernière intervention 6 juillet 2012
-
7 juin 2012 à 18:46
cs_tpailhes
Messages postés13Date d'inscriptionlundi 23 octobre 2000StatutMembreDernière intervention31 août 2012
-
6 juil. 2012 à 10:10
Bonjour tout le monde,
Je suis un débutant des codes et j'aimerais créer un macro qui me
permette d’imprimer sur mon imprimante en réseaux un doc Excel en:
2 copie dans le Bac2
1 copie dans le Bac3
1 copie dans le Bac4
Cela fait quelque temps que je cherche le code qui fonctionne mais sans suite.
Pouvez-vous m'aider svp
Merci a tous par avance!!!
A voir également:
Problème code vba choix de magasin pour impression
cs_mrc306
Messages postés5Date d'inscriptionjeudi 7 juin 2012StatutMembreDernière intervention 6 juillet 2012 8 juin 2012 à 07:50
Voici le code de ta méthode mais comme cela ne fonctionne pas parce qu'il ne gère pas la sélection de bac pour l 2ème et 3ème commande.
Il imprime 1 copie sur bac 4 et le reste également sur bac 4
Sub Impression()
'
' Impression Macro
'
'
ActiveWindow.SelectedSheets.PrintOut Copies:=2
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 8 juin 2012 à 08:31
Bonjour,
La propriété PageSetup de l'objet WorkSheet n'a pas prévu cette possibilité-là, qui dépendrait de surcroît des capacités et performances matérielles de l'imprimante.
Tu ne pourrais donc le faire qu'à l'aide de fonctions de l'Api de Windows et non en VBA seul (et seulement si le driver de l'imprimante est parfaitement compatible avec ton OS)
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 8 juin 2012 à 10:24
Si tu es "assez novice", ne te frotte pas à ce genre de choses (assez complexe et qui nécessite de très bonnes connaissances des fonctions de l'Api de Windows et du pilote de l'imprimante).
Même sous VB6 (qui offre l'objet Printer et sa propriété PaperBin), les choses ne sont pas toujours simples à l'utilisation du fait des performances de l'imprimante, etc...
Sous VBA : même pas d'objet Printer !
Si tu y tiens tant, il va te falloir rechercher sur le net tout ce qui a trait à la gestion de Paperbin à l'aide des fonctions (il y en aura forcément plusieurs, de ces fonctions) de l'Api de Windows.
Bon courage.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
cs_tpailhes
Messages postés13Date d'inscriptionlundi 23 octobre 2000StatutMembreDernière intervention31 août 2012 5 juil. 2012 à 08:45
Une solution serait de créer plusieurs imprimantes identiques dans le groupe inprimantes de windows, nommées par exemple : ImprimanteBac1, ImprimanteBacN..., modifier les propriétés de chaque imprimante en spécifiant le bac par défaut (voire le nombre de copie, la taille du papier...).
Dans le code, sélectionner l'imprimante par défaut ImprimanteBacN pour imprimer sur le bac N (Activeprinter="ImprimanteBacN")
Je l'ai déjà fait sous VBA Word, ça marche.
Voici un exemple de code pour imprimer sur le Fax Windows:
cs_tpailhes
Messages postés13Date d'inscriptionlundi 23 octobre 2000StatutMembreDernière intervention31 août 2012 5 juil. 2012 à 15:37
Es-tu sùr du nom de ton imprimante réseau ?
Voici une proc qui affiche le NOM de toutes les imprimantes de ton système dans une boîte de dialogue. (Utilise ce nom aprés "ActivePrinter")
-----------------------------------------------
Sub listImprimantes()
Dim objWMIService, colPrinters, objItem
Dim strComputer
Dim lst As String
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * from Win32_PrinterConfiguration") ', , 48)
lst = ""
For Each objItem In colPrinters
lst = lst + objItem.DeviceName & vbCrLf
Next
MsgBox lst
End Sub
-------------------------------------------
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 5 juil. 2012 à 17:31
Bonjour,
La présente discussion étant ouverte dans la section VB6 ===>> réponse VB6.
- VB6 connait et gère la collection Printers (dont chaque membre est une imprimante disponible)
- set printer = Printers(index)
fait que l'imprimante d'index index dans la collection Printers devient celle active
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 5 juil. 2012 à 17:43
Veux pas le savoir, pour deux raisons :
1) la section
Forum > Visual Basic 6 > Divers
d'où l'importance de ne pas ouvrir une discussion n'importe où (discipline nécessaire)
2) macro n'est pas un mot "réservé" à Excel, ni même à Office. Qu'on l'utilise ensuite, par "habitude", de manière "restrictive" (et abusive), en ne parlant que de VBA. Une Macro n'est qu'un ensemble d'instructions, quel que soit le langage de développement.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ