Imprimer depuis un module VBA
Résolu
Mistral_13200
Messages postés
636
Date d'inscription
Statut
Membre
Dernière intervention
-
Oz -
Oz -
Bonjour,
Bonjour à tous,
J'ai créé un classeur Excel dans lequel j'ai un module Vba pour l'impression. Ce classeur est à la disposition de plusieurs dizaines d'utilisateurs. Il fonctionne très bien et il est apprécié de tous. Cependant on me demande de l'améliorer en permettant de choisir l'imprimante (dans le cas ou plusieurs imprimantes sont reliées à l'ordinateur) ou de choisir la qualité d'impression. Pour cela je souhaiterais que dans ma macro impression ci-dessous faire appel et afficher la boîte de dialogue «Imprimer» mais je n'y parviens pas !
Indépendamment de cette modification le classeur et l'impression fonctionnent très bien.
Pouvez-vous m'aider ?
D'avance merci.
Mistral
Bonjour à tous,
J'ai créé un classeur Excel dans lequel j'ai un module Vba pour l'impression. Ce classeur est à la disposition de plusieurs dizaines d'utilisateurs. Il fonctionne très bien et il est apprécié de tous. Cependant on me demande de l'améliorer en permettant de choisir l'imprimante (dans le cas ou plusieurs imprimantes sont reliées à l'ordinateur) ou de choisir la qualité d'impression. Pour cela je souhaiterais que dans ma macro impression ci-dessous faire appel et afficher la boîte de dialogue «Imprimer» mais je n'y parviens pas !
Sub ImpressionTableau() Dim p As Integer 'Application.ScreenUpdating = False ' Bloque le rafraîchissement de l'écran. 'Application.EnableEvents = False ' Arrêt de la scrutation. If Sheets("Bordereau").Range("A28").Value = "" Then ' Test si la 1ere cellule utilisée, A28. MsgBox ("Le Tableau n'a pas été rempli !" & 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_PagesBdxN2 With Sheets("Tableau") .Visible = True .PrintOut from:=1, To:=p .Visible = False End With Application.ScreenUpdating = True ' Rétablis le rafraîchissement 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("A" & 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
Indépendamment de cette modification le classeur et l'impression fonctionnent très bien.
Pouvez-vous m'aider ?
D'avance merci.
Mistral
A voir également:
- Application.dialogs(xldialogprint).show
- Journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Comment imprimer en a5 - Guide
- Imprimer un tableau excel - Guide
- Persistence module - Forum logiciel systeme
- Parole de chanson francaise gratuite à imprimer - Télécharger - Vie quotidienne
37 réponses
Re,
Oui j'ai contrôlé ma macro en pas à pas, et je dirais même que je ne fais que ça...
Ou alors je m'y prends mal!
Mais tu n'as pas l'apparition des pointillés sur la feuille Menu après avoir modifié la configuration et fait l'impression?
Quand j'imprime manuellement, Fichier/Imprimer je fais ce que je veux de mes impression ce qui pour moi mets l'imprimante hors de cause.
Mais d'ou viens le problème quand j'utilise les macros?
Oui j'ai contrôlé ma macro en pas à pas, et je dirais même que je ne fais que ça...
Ou alors je m'y prends mal!
Mais tu n'as pas l'apparition des pointillés sur la feuille Menu après avoir modifié la configuration et fait l'impression?
Quand j'imprime manuellement, Fichier/Imprimer je fais ce que je veux de mes impression ce qui pour moi mets l'imprimante hors de cause.
Mais d'ou viens le problème quand j'utilise les macros?
Bonjour,
Vous est-il possible, lors de l'exécution de votre macro pas à pas, de faire une copie d'écran pour chaque pas et de mettre les images sur un document Word et ensuite de le poster !
Ainsi j'aurai une vue du déroulement et peut-être une change de ... !
Vous est-il possible, lors de l'exécution de votre macro pas à pas, de faire une copie d'écran pour chaque pas et de mettre les images sur un document Word et ensuite de le poster !
Ainsi j'aurai une vue du déroulement et peut-être une change de ... !
Vous trouverez ci-dessous un lien vers ce que vous m'avez demandé.
J'espere avoir bien compris votre demande.
http://www.cijoint.fr/cjlink.php?file=cj201103/cijJt3UcZd.pdf
J'espere avoir bien compris votre demande.
http://www.cijoint.fr/cjlink.php?file=cj201103/cijJt3UcZd.pdf
Bonjour,
Merci pour l'information.
A première vue tout semble correct sauf un petit détail qui me manque. Voir la pièce jointe.
https://www.cjoint.com/?3dFu6xEHNgz
Merci pour l'information.
A première vue tout semble correct sauf un petit détail qui me manque. Voir la pièce jointe.
https://www.cjoint.com/?3dFu6xEHNgz
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Le Pingou,
Vous trouverez avec le lien ci-dessous ce que vous m'avez demandé
http://www.cijoint.fr/cjlink.php?file=cj201104/cijkxWCX7U.pdf
Je précise que j'ai fais tous mes essais avec la même configuration de départ de mon imprimante. En effet entre chaque essais je remettais mon imprimante en Couleur et Normal qui est la configuration standard, et je faisais une impression de contrôle qui elle était bonne.
Le problème semble se produire que dans un cas précis, c'est quand je demande une impression N&B et en brouillon.
Je ne comprends vraiment pas pourquoi!
Je voudrais encore vous remercier de me consacrer du temps pour m'aider, un grand merci à vous.
Cordialement
Mistral
Vous trouverez avec le lien ci-dessous ce que vous m'avez demandé
http://www.cijoint.fr/cjlink.php?file=cj201104/cijkxWCX7U.pdf
Je précise que j'ai fais tous mes essais avec la même configuration de départ de mon imprimante. En effet entre chaque essais je remettais mon imprimante en Couleur et Normal qui est la configuration standard, et je faisais une impression de contrôle qui elle était bonne.
Le problème semble se produire que dans un cas précis, c'est quand je demande une impression N&B et en brouillon.
Je ne comprends vraiment pas pourquoi!
Je voudrais encore vous remercier de me consacrer du temps pour m'aider, un grand merci à vous.
Cordialement
Mistral
Bonjour,
Excusez-moi d'insister, le pas à pas n'est pas le même que celui que j'ai mis comme modèle, il manque la phase après configuration de l'imprimante, vous devez revoir le boite de dialogue et valider par OK .... !
Essayer de suivre le modèle point par point et rien d'autre!
Excusez-moi d'insister, le pas à pas n'est pas le même que celui que j'ai mis comme modèle, il manque la phase après configuration de l'imprimante, vous devez revoir le boite de dialogue et valider par OK .... !
Essayer de suivre le modèle point par point et rien d'autre!
Bonjour,
Je n'ai trouvé votre message que ce matin ce qui explique ma réponse tardive.
J'ai donc refait deux essais un en couleur et l'autre en N&B. J'ai veillé également à la superposition des fenêtres pour bine mettre en évidence les conditions des captures d'ecran.
http://www.cijoint.fr/cjlink.php?file=cj201104/cijydQgd9B.doc
En esperant que cette fois-ci vous pourrez en déduire quel que chose.
Cordialement
Misstral
Je n'ai trouvé votre message que ce matin ce qui explique ma réponse tardive.
J'ai donc refait deux essais un en couleur et l'autre en N&B. J'ai veillé également à la superposition des fenêtres pour bine mettre en évidence les conditions des captures d'ecran.
http://www.cijoint.fr/cjlink.php?file=cj201104/cijydQgd9B.doc
En esperant que cette fois-ci vous pourrez en déduire quel que chose.
Cordialement
Misstral
Bonjour,
Merci pour vos informations, à première vue tout semble correct.
Par contre de mon côté à la suite d'un nouveau test plus poussé, je viens de réussir à reproduire la faute sur mon imprimante.
La recherche de la correction est pour demain.
Merci pour vos informations, à première vue tout semble correct.
Par contre de mon côté à la suite d'un nouveau test plus poussé, je viens de réussir à reproduire la faute sur mon imprimante.
La recherche de la correction est pour demain.
Bonjour,
Cela me rassure car vraiment je commencé à douter de moi...
Dans tout les cas un grand merci à vous.
Cordialement
Mistral
Cela me rassure car vraiment je commencé à douter de moi...
Dans tout les cas un grand merci à vous.
Cordialement
Mistral
Bonjour,
Eh bien je pense avoir mis le doigt sur la petite gentillesse.
Je fais encore des tests en fin de journée et je vous donnerai des nouvelles.
Eh bien je pense avoir mis le doigt sur la petite gentillesse.
Je fais encore des tests en fin de journée et je vous donnerai des nouvelles.
Bonjour,
Je vous laisse essayer avec votre matériel, votre fichier avec une modification du code : https://www.cjoint.com/?3efsaAmxaOZ
J'espère que se sera bon ... !
Je vous laisse essayer avec votre matériel, votre fichier avec une modification du code : https://www.cjoint.com/?3efsaAmxaOZ
J'espère que se sera bon ... !
Bonjour,
J'ai fait un rapide test hier au soir que j'ai arreté car dans votre solution on ne prend plus en compte le bouton annuler de la fenêtre "Choix de l'imprimante".
Par contre il semblerait en effet que cela fonctionne correctement pour ce qui est de la qualité d'impression.
Ne pouvant pas mettre de test "IF" dans l'instruction "With" je vais refaire des tests de la qualité d'impression sans l'instruction "With" de manière à reprendre le test sur le bouton "Annuler".
Ou avez-vous une autre idée?
Cordialement
Mistral
J'ai fait un rapide test hier au soir que j'ai arreté car dans votre solution on ne prend plus en compte le bouton annuler de la fenêtre "Choix de l'imprimante".
Par contre il semblerait en effet que cela fonctionne correctement pour ce qui est de la qualité d'impression.
Ne pouvant pas mettre de test "IF" dans l'instruction "With" je vais refaire des tests de la qualité d'impression sans l'instruction "With" de manière à reprendre le test sur le bouton "Annuler".
Ou avez-vous une autre idée?
Cordialement
Mistral
Bonjour,
Il faut se mettre d'accord, lorsque vous cliquer sur `Annuler ` dans le choix de l'imprimante, cela signifie que vous gardez l'imprimante par défaut et ou l'imprimante choisie mais avec la configuration par défaut. Donc l'impression se déroule normalement.
Peut - être que vous désirez tout simplement annuler l'ordre d'impression, se qui est différent !
Merci de le préciser, la modification est très simple.
Note: l'important est que les différents choix de configuration fonctionnent correctement...
Il faut se mettre d'accord, lorsque vous cliquer sur `Annuler ` dans le choix de l'imprimante, cela signifie que vous gardez l'imprimante par défaut et ou l'imprimante choisie mais avec la configuration par défaut. Donc l'impression se déroule normalement.
Peut - être que vous désirez tout simplement annuler l'ordre d'impression, se qui est différent !
Merci de le préciser, la modification est très simple.
Note: l'important est que les différents choix de configuration fonctionnent correctement...
Effectivement il s'agit de supprimer l'ordre d'impression et rien de plus.
Il est bien evident que si on veur choisir une imprimante ou une qualité d'impression il faudra passer par cette boite et valider avant de sortir.
La suppression est indispensable pour eviter de gâcher du papier et de l'encre.
Il est bien evident que si on veur choisir une imprimante ou une qualité d'impression il faudra passer par cette boite et valider avant de sortir.
La suppression est indispensable pour eviter de gâcher du papier et de l'encre.
Bonjour,
Le bloc `With' avec l'instruction ''If ` qui fonctionne, j'ai testé :
Le bloc `With' avec l'instruction ''If ` qui fonctionne, j'ai testé :
With Sheets("Tableau") .Visible = True .Activate ' ***** définir configuration imprimante If Application.Dialogs(Excel.XlBuiltInDialog.xlDialogPrinterSetup).Show = True Then .PrintOut from:=1, To:=p ', ActivePrinter:=Nom End If .Visible = False 'A remettre dans la version difinitive. End With
Re,
A permière vue semble semble correcte. MERCI!!!
Je vais pousser tous mes tests pour verifier le bon, fonctionnenement.
Je te eins au courant.
Cordialement.
Mistral
A permière vue semble semble correcte. MERCI!!!
Je vais pousser tous mes tests pour verifier le bon, fonctionnenement.
Je te eins au courant.
Cordialement.
Mistral
Bonjour Le Pingou,
Les tests que j'ai fait chez moi se sont bien déroulés, je peux changer la qualité d'impression sans problème. Je dois encore contrôler le choix de l'imprimante sur un autre ordinateur, ou il y a plusieurs imprimantes, mais je pense que ça marchera car s'était déjà bon avant.
Je vais laissé le sujet ouvert quelque temps encore et, si tu le permet, je reviendrais vers toi en cas de problème.
En attendant un grand merci à toi pour ton aide et le temps que tu y a consacré.
Cordialement.
Mistral
Les tests que j'ai fait chez moi se sont bien déroulés, je peux changer la qualité d'impression sans problème. Je dois encore contrôler le choix de l'imprimante sur un autre ordinateur, ou il y a plusieurs imprimantes, mais je pense que ça marchera car s'était déjà bon avant.
Je vais laissé le sujet ouvert quelque temps encore et, si tu le permet, je reviendrais vers toi en cas de problème.
En attendant un grand merci à toi pour ton aide et le temps que tu y a consacré.
Cordialement.
Mistral