Imprimer depuis un module VBA
Résolu/Fermé
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
-
28 févr. 2011 à 09:23
Oz - 5 déc. 2013 à 15:15
Oz - 5 déc. 2013 à 15:15
A voir également:
- Imprimer depuis un module VBA
- Journal de ma naissance gratuit à imprimer - Télécharger - Histoire & Religion
- Comment signer un pdf sans l'imprimer - Guide
- Imprimer en a5 - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
37 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 28/02/2011 à 10:41
Modifié par michel_m le 28/02/2011 à 10:41
Bonjour,
Pour choisir une imprimante
et tu as normalement le bouton "propriétés de l'imprimante"
cette syntaxe ne marche peut-être pas en réseau (je suis en mono poste) dans ce cas il faudrait utiliser WMI... Tu dis.
Michel
Pour choisir une imprimante
Application.Dialogs(xlDialogPrint).Show
et tu as normalement le bouton "propriétés de l'imprimante"
cette syntaxe ne marche peut-être pas en réseau (je suis en mono poste) dans ce cas il faudrait utiliser WMI... Tu dis.
Michel
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
28 févr. 2011 à 11:30
28 févr. 2011 à 11:30
Bonjour Michel,
Merci pour ta réponse et pour ta rapidité.
J'ai fais un test sur un simple classeur et ça fonctionne correctement tout au moins pour les proprietés de l'imprimante. Il me reste à tester ça avec plusieurs imprimantes.
Par contre je n'arrive pas à intégrer cette ligne dans mon module tout en conservant le calcule du nombre de page à imprimer.
As-tu une idée
Cordialement
Mistral
Merci pour ta réponse et pour ta rapidité.
J'ai fais un test sur un simple classeur et ça fonctionne correctement tout au moins pour les proprietés de l'imprimante. Il me reste à tester ça avec plusieurs imprimantes.
Par contre je n'arrive pas à intégrer cette ligne dans mon module tout en conservant le calcule du nombre de page à imprimer.
As-tu une idée
Cordialement
Mistral
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
28 févr. 2011 à 18:00
28 févr. 2011 à 18:00
Re,
En fait j'ai beaucoup de difficullté pour comprendre tous les arguments (15 en tout) de l'instruction :
J'arrive bien à valider le N° des pages à imprimer (de 2 à [p]) ainsi que le nombre d'exemplaire (7) mais je n'arrive pas à valider l'option "Pages(s)" et pourtant le mets bien le 15iem argument à 1.
Aurais-tu une idée ou une solution à me proposer.
Cordialement
Mistral
En fait j'ai beaucoup de difficullté pour comprendre tous les arguments (15 en tout) de l'instruction :
Application.Dialogs(xlDialogPrint).Show(, 2, [p], 7, , , , , , , , , , , 1)
J'arrive bien à valider le N° des pages à imprimer (de 2 à [p]) ainsi que le nombre d'exemplaire (7) mais je n'arrive pas à valider l'option "Pages(s)" et pourtant le mets bien le 15iem argument à 1.
Aurais-tu une idée ou une solution à me proposer.
Cordialement
Mistral
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
28 févr. 2011 à 18:39
28 févr. 2011 à 18:39
Désolé, je ne vois pas du tout...
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
Modifié par Le Pingou le 28/02/2011 à 23:28
Modifié par Le Pingou le 28/02/2011 à 23:28
Bonjour,
Essayer avec ce code qui vous permet de choisir l'imprimante (clic OK pour valider le choix) :
Ou avec ceci:
Le Pingou
Essayer avec ce code qui vous permet de choisir l'imprimante (clic OK pour valider le choix) :
Application.Dialogs(Excel.xlBuiltInDialog.xlDialogPrinterSetup).ShowEt dans votre code vous récupérez le nom de l'imprimante active que vous placez comme argument supplémentaire de
PrintOut .PrintOut from:=1, To:=p .....
Ou avec ceci:
Sub choix_imprimante imprimante = Application.Dialogs(xlDialogPrinterSetup).Show Application.ActivePrinter = imprimante End SubSalutations.
Le Pingou
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
1 mars 2011 à 07:50
1 mars 2011 à 07:50
Bonjour Le Pingou,
Tout d'abord merci te t'intéresser à mon problème.
J'ai voulu tester les deux solutions proposées mais je dois reconnaître que je m'y perds un peu.
Dans la première j'ai bien la fenêtre choix de l'imprimante qui s'ouvre, je peux effectivement la choisir et configurer l'impression avec la touche «Configurer» mais je ne vois pas comment récupérer le nom de l'imprimante ni comment l'insérer après.
Dans la seconde j'ai une erreur 1004 : La méthode ActivePrinter de l'objet Application a échoué.
Peux-tu m'aider Stp.
Cordialement
Mistral
Tout d'abord merci te t'intéresser à mon problème.
J'ai voulu tester les deux solutions proposées mais je dois reconnaître que je m'y perds un peu.
Dans la première j'ai bien la fenêtre choix de l'imprimante qui s'ouvre, je peux effectivement la choisir et configurer l'impression avec la touche «Configurer» mais je ne vois pas comment récupérer le nom de l'imprimante ni comment l'insérer après.
Dans la seconde j'ai une erreur 1004 : La méthode ActivePrinter de l'objet Application a échoué.
Peux-tu m'aider Stp.
Cordialement
Mistral
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 1/03/2011 à 08:37
Modifié par pijaku le 1/03/2011 à 08:37
Bonjour,
L'instruction donnée par Le Pingou :
Réponse éditée pour l'ajout de ImprimanteInitiale permettant de rétablir les paramètres par défaut......
L'instruction donnée par Le Pingou :
imprimante = Application.Dialogs(xlDialogPrinterSetup).Showrenvoie "vrai" ou "faux". Vrai et faux n'étant pas des noms d'imprimante (;-)) je te recommande :
Sub choix_imprimante() Dim imprimante As String, ImprimanteInitiale As String ImprimanteInitiale = Application.ActivePrinter Application.Dialogs(xlDialogPrinterSetup).Show imprimante = Application.ActivePrinter MsgBox imprimante Application.ActivePrinter = ImprimanteInitiale End Sub
Réponse éditée pour l'ajout de ImprimanteInitiale permettant de rétablir les paramètres par défaut......
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
1 mars 2011 à 10:38
1 mars 2011 à 10:38
Bonjour pijaku,
Oui d'accord avec vous, par contre comme il veut utiliser la commande [PrintOut] j'ai bien précisé ceci :
Et dans votre code vous récupérez le nom de l'imprimante active que vous placez comme argument supplémentaire de PrintOut .PrintOut from:=1, To:=p , .....
Salutations.
Le Pingou
Oui d'accord avec vous, par contre comme il veut utiliser la commande [PrintOut] j'ai bien précisé ceci :
Et dans votre code vous récupérez le nom de l'imprimante active que vous placez comme argument supplémentaire de PrintOut .PrintOut from:=1, To:=p , .....
Salutations.
Le Pingou
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
1 mars 2011 à 10:39
1 mars 2011 à 10:39
Salut Le Pingou,
Exact. Ma réponse n'était qu'un complément de la tienne.
Bonne journée à toi.
A bientôt.
Exact. Ma réponse n'était qu'un complément de la tienne.
Bonne journée à toi.
A bientôt.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
1 mars 2011 à 11:31
1 mars 2011 à 11:31
Bonjour Mistral_13200,
Oui je peux vous aider, difficile de répondre sans voir le code que vous avez créé.. !
Note: concernant la première, je n'ai pas dit la touche [Configurer] mais : clic OK pour valider le choix, se qui est différent.
Salutations.
Le Pingou
Oui je peux vous aider, difficile de répondre sans voir le code que vous avez créé.. !
Note: concernant la première, je n'ai pas dit la touche [Configurer] mais : clic OK pour valider le choix, se qui est différent.
Salutations.
Le Pingou
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
1 mars 2011 à 13:03
1 mars 2011 à 13:03
Le Pingou,
Pijaku
Bonjour à vous deux,
Merci de consacrer de votre temps à régler mon problème.
La totalité du code de ma macro est dans mon tout premier message. Je rappellerais simplement que ce code fonctionne parfaitement tel qu'il est. Par contre certains utilisateurs me demande de le modifier pour avoir le choix de l'imprimante et de la qualité d'impression.
J'ai bien compris qu'il fallait valider le choix de l'imprimante avec OK, je voulais simplement dire que l'on pouvait également intervenir sur les paramètres de l'imprimante si on le souhaitait.
C'est bien dans l'intégration de l'imprimante par défaut dans ma macro que je bute et c'est précisément là que j'ai besoin de votre aide.
Maintenant si vous estimez que l'instruction
J'ai bien essaye :
Mais là je bute sur la manière de valider l'option page de la fenêtre «Imprimer». Je sais récupérer le Nb de page et Nb d'exemplaire et cela est indispensable pour n'imprimer que le Nb de page nécessaire.
En tout cas un grand merci à vous deux.
Cordialement
Mistral
Pijaku
Bonjour à vous deux,
Merci de consacrer de votre temps à régler mon problème.
La totalité du code de ma macro est dans mon tout premier message. Je rappellerais simplement que ce code fonctionne parfaitement tel qu'il est. Par contre certains utilisateurs me demande de le modifier pour avoir le choix de l'imprimante et de la qualité d'impression.
J'ai bien compris qu'il fallait valider le choix de l'imprimante avec OK, je voulais simplement dire que l'on pouvait également intervenir sur les paramètres de l'imprimante si on le souhaitait.
C'est bien dans l'intégration de l'imprimante par défaut dans ma macro que je bute et c'est précisément là que j'ai besoin de votre aide.
Maintenant si vous estimez que l'instruction
PrintOutn'est pas adaptée je n'ai rien contre le fait de changer mais je ne sais pas par quoi.
J'ai bien essaye :
Application.Dialogs(xlDialogPrint).Show(, 2, [p], 7, , , , , , , , , , , 1)
Mais là je bute sur la manière de valider l'option page de la fenêtre «Imprimer». Je sais récupérer le Nb de page et Nb d'exemplaire et cela est indispensable pour n'imprimer que le Nb de page nécessaire.
En tout cas un grand merci à vous deux.
Cordialement
Mistral
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
1 mars 2011 à 13:39
1 mars 2011 à 13:39
Bonjour,
Oui mais se n'est pas le code avec la correction qui ne fonctionne pas.
Dans se cas, les lignes de code que vous devez avoir juste après la ligne :
Remarque : dans la boite de dialogue vous choisissez l'imprimante et valider par OK.
Oui mais se n'est pas le code avec la correction qui ne fonctionne pas.
Dans se cas, les lignes de code que vous devez avoir juste après la ligne :
p = Nb_PagesBdx(p):
Application.Dialogs(Excel.XlBuiltInDialog.xlDialogPrinterSetup).Show Nom = ActivePrinter With Sheets("Tableau") .Visible = True .PrintOut from:=1, To:=p, ActivePrinter:=Nom .Visible = False End With
Remarque : dans la boite de dialogue vous choisissez l'imprimante et valider par OK.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
1 mars 2011 à 13:55
1 mars 2011 à 13:55
Bonjour à tous,
A tout Hasard
Je n"ai pas trouvé une aide sur tes 15 aguments (...?...)et je ne comprend pas ce 1.... quand tu parles de "pages", s'agit il bien de pages à l'intérieur d'une "feuille" excel ?
pour trouver le nombre de pages par feuvlle, j'ai trouvé cette instruction sur un autre site
et pour imprimer:
mais....
A tout Hasard
Je n"ai pas trouvé une aide sur tes 15 aguments (...?...)et je ne comprend pas ce 1.... quand tu parles de "pages", s'agit il bien de pages à l'intérieur d'une "feuille" excel ?
pour trouver le nombre de pages par feuvlle, j'ai trouvé cette instruction sur un autre site
ExecuteExcel4Macro("GET.DOCUMENT(50)")
et pour imprimer:
FeuilN.PrintOut From:=1 To:=ExecuteExcel4Macro("GET.DOCUMENT(50)"
mais....
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
1 mars 2011 à 16:58
1 mars 2011 à 16:58
Bonjour Michel,
L'instruction :
Application.Dialogs(xlDialogPrint).Show(, 1, [p], 7, , , , , , , , , , , 1)
a 15 arguments de configuration possible qui sont :
range_num, from, to, copies, draft, preview, print_what, color, feed, quality, y_resolution, selection, printer_text, print_to_file, collate
J'arrive a configurer sans problème les pages que je souhaite imprimer (de 1 à p) et le nombre d'exemplaire à imprimer (7) voir l'exemple ci-dessus mais je n'arrive pas à valider l'option pages dans la partie "Etendue" de la boîte dialogue Imprimer, je reste sur "Tout" en permanence. J'imprime donc toute la feuille feuille du classeur soit 25 pages.
Cordialement
Mistral
L'instruction :
Application.Dialogs(xlDialogPrint).Show(, 1, [p], 7, , , , , , , , , , , 1)
a 15 arguments de configuration possible qui sont :
range_num, from, to, copies, draft, preview, print_what, color, feed, quality, y_resolution, selection, printer_text, print_to_file, collate
J'arrive a configurer sans problème les pages que je souhaite imprimer (de 1 à p) et le nombre d'exemplaire à imprimer (7) voir l'exemple ci-dessus mais je n'arrive pas à valider l'option pages dans la partie "Etendue" de la boîte dialogue Imprimer, je reste sur "Tout" en permanence. J'imprime donc toute la feuille feuille du classeur soit 25 pages.
Cordialement
Mistral
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
1 mars 2011 à 17:19
1 mars 2011 à 17:19
Petite question: pourquoi mettre p entre crochets ?
Quant au 1 de l'argument n)15 collate il n'est pas nécesssaire car collate:= true par défaut
avec l'enregistreur de macros étendue page 1 à 2
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
Quant au 1 de l'argument n)15 collate il n'est pas nécesssaire car collate:= true par défaut
avec l'enregistreur de macros étendue page 1 à 2
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
Modifié par Le Pingou le 1/03/2011 à 17:27
Modifié par Le Pingou le 1/03/2011 à 17:27
Bonjour Mistral_13200,
Une des solutions est ici : https://forums.commentcamarche.net/forum/affich-21020404-imprimer-depuis-un-module-vba#12
Je l'ai testé et elle fonctionne.
Est-il possible de savoir si chez vous c'est en ordre ?
Salutations.
Le Pingou
Une des solutions est ici : https://forums.commentcamarche.net/forum/affich-21020404-imprimer-depuis-un-module-vba#12
Je l'ai testé et elle fonctionne.
Est-il possible de savoir si chez vous c'est en ordre ?
Salutations.
Le Pingou
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
1 mars 2011 à 17:28
1 mars 2011 à 17:28
parce que "p" est une variable, elle est le résultat du calcule du nombre de page à imprimer.
Pour être plus précis, dans la partie Etendue de la fenêtre Imprimer il y a deux options : "Tout" et "Pages(s)" je voudrais basculer de "Tout" vers "Pages(s)" et je n'y arrive pas.
Pour être plus précis, dans la partie Etendue de la fenêtre Imprimer il y a deux options : "Tout" et "Pages(s)" je voudrais basculer de "Tout" vers "Pages(s)" et je n'y arrive pas.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
1 mars 2011 à 17:38
1 mars 2011 à 17:38
Bonjour Mistral_13200,
Alors avec ma proposition (pos 12) les valeurs de vos variables sont respecté.
Désolé si cela ne vous convient pas.
Salutations.
Le Pingou
Alors avec ma proposition (pos 12) les valeurs de vos variables sont respecté.
Désolé si cela ne vous convient pas.
Salutations.
Le Pingou
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
1 mars 2011 à 17:54
1 mars 2011 à 17:54
Je suis un peu perdu au milieu de tous ces messages mais j'ai répondu à ta proposition, peut être pas dans le bon ordre et je te prie de bien vouloir m'excuser.
Je suis bien d'accord les variables sont respectées.
Il ne reste plus, visiblement plus facile à dire qu'à faire, a pouvoir modifier les paramètres d'impression tel que la qualité Normal/Brouillon ou encore N&B/Couleur.
Je suis bien d'accord les variables sont respectées.
Il ne reste plus, visiblement plus facile à dire qu'à faire, a pouvoir modifier les paramètres d'impression tel que la qualité Normal/Brouillon ou encore N&B/Couleur.
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
1 mars 2011 à 17:45
1 mars 2011 à 17:45
Re Le Pingou,
Cela semble effectivement fonctionner l'imprimante par défaut est bien reconnue. C'est déjà une bonne chose!
Par contre si je change la qualité d'impression ou si je choisi d'imprimer en N&B ou en couleur en utilisant le bouton "Configurer" de la fenêtre de dialogue rien ne se passe et pourtant je valide bien par Ok.
Mieux je dirais même que je garde les parametres d'impression du dernier parametrage manuel.
Je n'y comprends plus ruen....
Cordialement
Mistral
Cela semble effectivement fonctionner l'imprimante par défaut est bien reconnue. C'est déjà une bonne chose!
Par contre si je change la qualité d'impression ou si je choisi d'imprimer en N&B ou en couleur en utilisant le bouton "Configurer" de la fenêtre de dialogue rien ne se passe et pourtant je valide bien par Ok.
Mieux je dirais même que je garde les parametres d'impression du dernier parametrage manuel.
Je n'y comprends plus ruen....
Cordialement
Mistral
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
1 mars 2011 à 18:45
1 mars 2011 à 18:45
Bonjour,
Eh oui, Il ne reste plus, visiblement plus facile à dire qu'à faire, a pouvoir modifier les paramètres d'impression tel que la qualité Normal/Brouillon ou encore N&B/Couleur et pour que cela fonctionne il faut passer les paramètres choisies à la procédure.
Pouvez-vous mentionner exactement les paramètres qui seront autorisés pour l'utilisateur ?
Eh oui, Il ne reste plus, visiblement plus facile à dire qu'à faire, a pouvoir modifier les paramètres d'impression tel que la qualité Normal/Brouillon ou encore N&B/Couleur et pour que cela fonctionne il faut passer les paramètres choisies à la procédure.
Pouvez-vous mentionner exactement les paramètres qui seront autorisés pour l'utilisateur ?
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
1 mars 2011 à 21:20
1 mars 2011 à 21:20
Bonjour Mistral_13200,
Je viens d'effectuer des tests, avec le code que je vous ai proposé, en changeant les diverses valeurs de configuration, noir/blanc, couleurs, orientation (Portrait/Paysage) etc. et tout fonctionne parfaitement avec le code tel quel.
Je viens d'effectuer des tests, avec le code que je vous ai proposé, en changeant les diverses valeurs de configuration, noir/blanc, couleurs, orientation (Portrait/Paysage) etc. et tout fonctionne parfaitement avec le code tel quel.
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
2 mars 2011 à 08:57
2 mars 2011 à 08:57
Bonjour Le Pingou,
J'ai moi aussi fait d'autres essais hier au soir sur un autre ordi et une autre imprimante et là j'ai effectivement pu changer la qualité d'impression et la couleur. Malheureusement au club je n'ai pas d'imprimantes en réseau...
Je vais regarder pourquoi sur mon imprimante couleur je reste en N&B???
Quand j'aurais réglé mon problème et si tu le permets, je reviendrais vers toi si j'ai d'autres questions.
Encore un grand merci à vous trois pour votre aide.
Cordialement
Mistral
PS : Je serais absent jusqu'au 21/03
J'ai moi aussi fait d'autres essais hier au soir sur un autre ordi et une autre imprimante et là j'ai effectivement pu changer la qualité d'impression et la couleur. Malheureusement au club je n'ai pas d'imprimantes en réseau...
Je vais regarder pourquoi sur mon imprimante couleur je reste en N&B???
Quand j'aurais réglé mon problème et si tu le permets, je reviendrais vers toi si j'ai d'autres questions.
Encore un grand merci à vous trois pour votre aide.
Cordialement
Mistral
PS : Je serais absent jusqu'au 21/03
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
Modifié par Le Pingou le 2/03/2011 à 09:09
Modifié par Le Pingou le 2/03/2011 à 09:09
Bonjour,
Je vais regarder pourquoi sur mon imprimante couleur je reste en N&B???
Probablement réinstaller le logiciel de l'imprimant!
Bonnes vacances.
Salutations.
Le Pingou
Je vais regarder pourquoi sur mon imprimante couleur je reste en N&B???
Probablement réinstaller le logiciel de l'imprimant!
Bonnes vacances.
Salutations.
Le Pingou
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
2 mars 2011 à 09:19
2 mars 2011 à 09:19
Re,
C'est exactement ce que je viens de faire et le problème persiste.
Ci-dessous le code complet avec lequel je fais mes tests et pour lequl je ne pense pas avoir commis d'erreur.
Si tu vois une anomalie merci de ma le signaler.
Me vider la tête ne me fera pas de mal...
Cordialement
Mistral
C'est exactement ce que je viens de faire et le problème persiste.
Ci-dessous le code complet avec lequel je fais mes tests et pour lequl je ne pense pas avoir commis d'erreur.
Sub ImpressionTableau() Dim p As Integer Application.ScreenUpdating = False ' Bloque le rafraichissement de l'écran. Application.EnableEvents = False ' Arret de la scrutation. If Sheets("Tableau").Range("A28").Value = "" Then ' Test si la 1ere cellule utilisée, A28. MsgBox ("Le Tableau n'a pas été saisi !" & vbCrLf & " " & vbCrLf & "Il n'y a donc rien à imprimer."), vbCritical, "Fédération Trucmuche" Exit Sub End If 'Définit la zone complète Sheets("Tableau").PageSetup.PrintArea = "$A$1:$N$235" ' Partie de la feuille utilisée. p = Nb_LigneBdx ' Saut à la fonction Nb_LigneBdx p = Nb_PagesBdx(p) ' Saut à la fonction Nb_PagesBdx 'p = 9 If Application.Dialogs(Excel.XlBuiltInDialog.xlDialogPrinterSetup).Show = False Then GoTo Line1 Else Nom = ActivePrinter With Sheets("Tableau") .Visible = True .PrintOut from:=1, To:=p, ActivePrinter:=Nom '.Visible = False 'A remettre dans la version difinitive. End With End If Line1: Application.ScreenUpdating = True ' Rétablis le rafraichissement de l'écran. Application.EnableEvents = True ' Remise en service de la scrutation. End Sub ' Calcule et renvois le N° de la dernière ligne non vide. Function Nb_LigneBdx() As Integer Dim I As Integer For I = 28 To 235 If Sheets("Tableau").Range("B" & I).Value = "" Then Exit For ' Test la première cellule vide de la colonne A. Next I Nb_LigneBdx = I - 1 End Function ' Calcule et renvois le Nb de page. Function Nb_PagesBdx(Lignes As Integer) As Integer Select Case Lignes Case 1 To 58: Nb_PagesBdx = 1 Case 59 To 110: Nb_PagesBdx = 2 Case 111 To 162: Nb_PagesBdx = 3 Case 163 To 214: Nb_PagesBdx = 4 Case Is > 214: Nb_PagesBdx = 5 End Select End Function
Si tu vois une anomalie merci de ma le signaler.
Me vider la tête ne me fera pas de mal...
Cordialement
Mistral
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
2 mars 2011 à 09:37
2 mars 2011 à 09:37
Bonjour,
La partie qui touche l'imprimante est correcte.
Pour éviter le [GoTo Line1] j'écrirais de cette manière :
Note: pour votre imprimante, assurez-vous que la modification des paramètres soit prise en compte directement sans passé par la procédure VBA.
La partie qui touche l'imprimante est correcte.
Pour éviter le [GoTo Line1] j'écrirais de cette manière :
If Application.Dialogs(Excel.XlBuiltInDialog.xlDialogPrinterSetup).Show = True Then Nom = ActivePrinter With Sheets("Tableau") .Visible = True .PrintOut from:=1, To:=p, ActivePrinter:=Nom '.Visible = False 'A remettre dans la version difinitive. End With End If
Note: pour votre imprimante, assurez-vous que la modification des paramètres soit prise en compte directement sans passé par la procédure VBA.
Mistral_13200
Messages postés
636
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
15 novembre 2024
4
31 mars 2011 à 10:16
31 mars 2011 à 10:16
Bonjour L e Pingou,
Je reviens à la charge car ça ne fonctionne toujours pas. J'ai réinstallé mon imprimante est elle fonctionne normalement. Si je fais des essais d'impression manuellement par Fichier/Imprimer j'imprime bien en N&B ou en couleur selon mes choix. Idem pour la qualité d'impression Normal/Brouillon.
Par contre quand je fais des tests en utilisant la macro j'ai deux problèmes (A ce moment là l'imprimante est configurée couleur/Normal) :
1er essais : Je lance l'impression avec le bouton et je valide le choix par OK sans rien changer. L'impression est en N&B alors que l'imprimante était en couleur et qu'elle y est restée ! Pourquoi ?
2iem essais : Je lance l'impression et je configure l'impression en N&B puis je valide par OK. L'impression se fait bien en N&B (l'imprimante est OK vérification par Fichier/Imprimer) mais apparaît le 2iem problème, a savoir j'ai deux trait pointillé qui apparaissent sur le bord droit des cellules des colonnes G et N. Pourquoi ?
3iem essais : Je lance l'impression et je configure l'impression en Couleur puis je valide par OK. L'impression se fait en N&B alors que l'imprimante est bien passée en couleur (l'imprimante OK vérification par Fichier/Imprimer) !!!
Tous ces essais ont été fait sur le classeur dont le lien est ci-dessous :
http://www.cijoint.fr/cjlink.php?file=cj201103/cij3nbfyED.xls
Pouvez-vous m'aider car je n'y comprends vraiment plus rien.
Merci d'avance.
Cordialement
Mistral
Je reviens à la charge car ça ne fonctionne toujours pas. J'ai réinstallé mon imprimante est elle fonctionne normalement. Si je fais des essais d'impression manuellement par Fichier/Imprimer j'imprime bien en N&B ou en couleur selon mes choix. Idem pour la qualité d'impression Normal/Brouillon.
Par contre quand je fais des tests en utilisant la macro j'ai deux problèmes (A ce moment là l'imprimante est configurée couleur/Normal) :
1er essais : Je lance l'impression avec le bouton et je valide le choix par OK sans rien changer. L'impression est en N&B alors que l'imprimante était en couleur et qu'elle y est restée ! Pourquoi ?
2iem essais : Je lance l'impression et je configure l'impression en N&B puis je valide par OK. L'impression se fait bien en N&B (l'imprimante est OK vérification par Fichier/Imprimer) mais apparaît le 2iem problème, a savoir j'ai deux trait pointillé qui apparaissent sur le bord droit des cellules des colonnes G et N. Pourquoi ?
3iem essais : Je lance l'impression et je configure l'impression en Couleur puis je valide par OK. L'impression se fait en N&B alors que l'imprimante est bien passée en couleur (l'imprimante OK vérification par Fichier/Imprimer) !!!
Tous ces essais ont été fait sur le classeur dont le lien est ci-dessous :
http://www.cijoint.fr/cjlink.php?file=cj201103/cij3nbfyED.xls
Pouvez-vous m'aider car je n'y comprends vraiment plus rien.
Merci d'avance.
Cordialement
Mistral
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
31 mars 2011 à 10:54
31 mars 2011 à 10:54
Bonjour,
Tout fonctionne correctement chez moi.
Avez-vous contrôlé votre macro pas à pas ?
Essayez aussi de désactiver l'événement : `EnableEvents' !
Tout fonctionne correctement chez moi.
Avez-vous contrôlé votre macro pas à pas ?
Essayez aussi de désactiver l'événement : `EnableEvents' !