Excel/ impressions multiples bis
Résolu
benji71
Messages postés
738
Date d'inscription
Statut
Membre
Dernière intervention
-
benji71 Messages postés 738 Date d'inscription Statut Membre Dernière intervention -
benji71 Messages postés 738 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous et ttes,
j'espere que vous allez bien et que le week-end s'annonce positif.
je me permets de faire appelle à vous car j'ai un petit problème à vous soumettre.
je joins le fichier sur lequel plus d'explication se trouve (feuille mcae_gril_prev) :
https://www.cjoint.com/?3Huk72EI2bT
mais sachez que cela à voir avec le post précédent et que cela concerne la mise en place de date de début et date de fin à placer sur uen feuille. cette même feuille contient un tableau sur lequel les dates d'un mois complet est indiquée. ce que je cherche à faire c'est donc de pouvoir imprimer en une seul opération plusieurs feuilles avec chaque fois un mois différent.
vous remerciant grandement pour vos suggestions, remarques et critiques.
bon temps de midi.
berni///
j'espere que vous allez bien et que le week-end s'annonce positif.
je me permets de faire appelle à vous car j'ai un petit problème à vous soumettre.
je joins le fichier sur lequel plus d'explication se trouve (feuille mcae_gril_prev) :
https://www.cjoint.com/?3Huk72EI2bT
mais sachez que cela à voir avec le post précédent et que cela concerne la mise en place de date de début et date de fin à placer sur uen feuille. cette même feuille contient un tableau sur lequel les dates d'un mois complet est indiquée. ce que je cherche à faire c'est donc de pouvoir imprimer en une seul opération plusieurs feuilles avec chaque fois un mois différent.
vous remerciant grandement pour vos suggestions, remarques et critiques.
bon temps de midi.
berni///
A voir également:
- Excel/ impressions multiples bis
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
4 réponses
Bonsoir,
Pour l'impression :
Sub imprimer()
Le nombre de mois à imprimer est demandé au début de la macro.
Une fois les tests faits enlever le commentaire du .printout et le mettre sur le msgbox.
eric
Pour l'impression :
Sub imprimer()
Dim nmois As Long, mois As Long, année As Long, m As Long nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3) mois = Month([A20]) année = Year([A20]) For m = 1 To nmois MsgBox ("impression de " & Format([A20], "mmm/yyyy")) 'Worksheets("mcae_gril_prév.").PrintOut mois = mois Mod 12 + 1 année = année - (mois = 1) [A20] = DateValue("01/" & mois & "/" & année) Next m End Sub
Le nombre de mois à imprimer est demandé au début de la macro.
Une fois les tests faits enlever le commentaire du .printout et le mettre sur le msgbox.
eric
Bonjour cher Eriic,
j'espere que vous allez bien. merci d'avoir eu la gentillesse de repondre à mon problème.
je n'ai pas d'imprimante à la maison, je vais donc essayé cela au bureau dès demain mais j'ai une petite question, lorsque j'aurais placé la macro, celle-ci va s'appliquer dès que je vais dder à imprimer [donc, lorsque je clic sur la l'icone "imprimer" correct ?
si j'ai tjrs bien compris, je ne dois donc pas coller la marco à un bouton que j'aurais créé.
pour être sur de ne pas commettre de "boulette" voici ce que vous me proposez de tester :
Sub imprimer()
Dim nmois As Long, mois As Long, année As Long, m As Long
nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3)
mois = Month([A20])
année = Year([A20])
For m = 1 To nmois
MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
'Worksheets("mcae_gril_prév.").PrintOut
mois = mois Mod 12 + 1
année = année - (mois = 1)
[A20] = DateValue("01/" & mois & "/" & année)
Next m
End Sub
uen fois que cela marche je peux donc ecrire comme ceci :
Sub imprimer()
Dim nmois As Long, mois As Long, année As Long, m As Long
nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3)
mois = Month([A20])
année = Year([A20])
For m = 1 To nmois
'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Worksheets("mcae_gril_prév.").PrintOut
mois = mois Mod 12 + 1
année = année - (mois = 1)
[A20] = DateValue("01/" & mois & "/" & année)
Next m
End Sub
je dois donc déplacer la ' de la ligne :Worksheets("mcae_gril_prév.").PrintOut
pour la mettre devant la ligne : 'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
correct ?
un tt grand merci à vous et de l'aider apporté.
tres bon dimanche...
berni ///
j'espere que vous allez bien. merci d'avoir eu la gentillesse de repondre à mon problème.
je n'ai pas d'imprimante à la maison, je vais donc essayé cela au bureau dès demain mais j'ai une petite question, lorsque j'aurais placé la macro, celle-ci va s'appliquer dès que je vais dder à imprimer [donc, lorsque je clic sur la l'icone "imprimer" correct ?
si j'ai tjrs bien compris, je ne dois donc pas coller la marco à un bouton que j'aurais créé.
pour être sur de ne pas commettre de "boulette" voici ce que vous me proposez de tester :
Sub imprimer()
Dim nmois As Long, mois As Long, année As Long, m As Long
nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3)
mois = Month([A20])
année = Year([A20])
For m = 1 To nmois
MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
'Worksheets("mcae_gril_prév.").PrintOut
mois = mois Mod 12 + 1
année = année - (mois = 1)
[A20] = DateValue("01/" & mois & "/" & année)
Next m
End Sub
uen fois que cela marche je peux donc ecrire comme ceci :
Sub imprimer()
Dim nmois As Long, mois As Long, année As Long, m As Long
nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3)
mois = Month([A20])
année = Year([A20])
For m = 1 To nmois
'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Worksheets("mcae_gril_prév.").PrintOut
mois = mois Mod 12 + 1
année = année - (mois = 1)
[A20] = DateValue("01/" & mois & "/" & année)
Next m
End Sub
je dois donc déplacer la ' de la ligne :Worksheets("mcae_gril_prév.").PrintOut
pour la mettre devant la ligne : 'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
correct ?
un tt grand merci à vous et de l'aider apporté.
tres bon dimanche...
berni ///
Bonjour,
celle-ci va s'appliquer dès que je vais dder à imprimer [donc, lorsque je clic sur la l'icone "imprimer" correct ?
non, je n'ai pas redirigé les impressions. Actuellement il faut l'appeler par un bouton.
Si tu veux rediriger les impressions il faut utiliser l'évènement Workbook_BeforePrint() et tester la feuille :
Dans ce code j'ai ajouté le contrôle de la saisie que j'avais oublié :
A ajouter dans l'autre code....
je dois donc déplacer la ' de la ligne :Worksheets("mcae_gril_prév.").PrintOut
pour la mettre devant la ligne : 'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Tout à fait.
Avant ça te permet de lister ce qui sera imprimé, mais sans impression (donc sans imprimante aussi)
eric
celle-ci va s'appliquer dès que je vais dder à imprimer [donc, lorsque je clic sur la l'icone "imprimer" correct ?
non, je n'ai pas redirigé les impressions. Actuellement il faut l'appeler par un bouton.
Si tu veux rediriger les impressions il faut utiliser l'évènement Workbook_BeforePrint() et tester la feuille :
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "mcae_gril_prév." Then Cancel = True Dim nmois As Long, mois As Long, année As Long, m As Long nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3) If nmois > 1 And nmois <= 12 Then mois = Month([A20]) année = Year([A20]) For m = 1 To nmois 'Worksheets("mcae_gril_prév.").PrintOut MsgBox ("impression de " & Format([A20], "mmm/yyyy")) mois = mois Mod 12 + 1 année = année - (mois = 1) [A20] = DateValue("01/" & mois & "/" & année) Next m Else MsgBox ("Saisie non conforme") End If End If End Sub
Dans ce code j'ai ajouté le contrôle de la saisie que j'avais oublié :
If nmois > 1 And nmois <= 12 Then .... Else MsgBox ("Saisie non conforme") End If
A ajouter dans l'autre code....
je dois donc déplacer la ' de la ligne :Worksheets("mcae_gril_prév.").PrintOut
pour la mettre devant la ligne : 'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Tout à fait.
Avant ça te permet de lister ce qui sera imprimé, mais sans impression (donc sans imprimante aussi)
eric
Bonjour Eriic,
j'espere que vous allez bien. permettez-moide vous remercier pour votre réponse.
j'ai essayé au bureau le code du post du 20/08..cela semble marché... :-)... je suis ravi... cela va me faire gagner du temps..et surtout bcp de manipulation "inutile".. :-)
sans vouloir "abuser" et comme les idées viennent au fur et à mesure...j'aimerais pouvoir imprimer chaque mois en deux exemplaires successif...est-il possible d'introduire ds la code macro que chaque impression soit faite deux fois..?
je vous souhaite une bon debut de semaine..
tres cdlmnt,
berni///
j'espere que vous allez bien. permettez-moide vous remercier pour votre réponse.
j'ai essayé au bureau le code du post du 20/08..cela semble marché... :-)... je suis ravi... cela va me faire gagner du temps..et surtout bcp de manipulation "inutile".. :-)
sans vouloir "abuser" et comme les idées viennent au fur et à mesure...j'aimerais pouvoir imprimer chaque mois en deux exemplaires successif...est-il possible d'introduire ds la code macro que chaque impression soit faite deux fois..?
je vous souhaite une bon debut de semaine..
tres cdlmnt,
berni///
Bonsoir eriic,
j'espere que vous allez bien. j'ai essayé votre propositiond emacro et cela semble marcher à merveille...je fais encore des essais demain et si c'est concluant ..alors..chapeau et merci car cette petite application me fait gagner bcp de temps...
je vais en parrallèle essayé de l'appliquer sur une autre feuille..qui contient les m^mes infos mais pas disposer de la même manière...je vous dis quoi demain...
tres belle soirée..;et bonne nuit à vous..
merci pr tt..
berni///
j'espere que vous allez bien. j'ai essayé votre propositiond emacro et cela semble marcher à merveille...je fais encore des essais demain et si c'est concluant ..alors..chapeau et merci car cette petite application me fait gagner bcp de temps...
je vais en parrallèle essayé de l'appliquer sur une autre feuille..qui contient les m^mes infos mais pas disposer de la même manière...je vous dis quoi demain...
tres belle soirée..;et bonne nuit à vous..
merci pr tt..
berni///
Bonsoir cher Eriiic,
j'espere que vous allez bien et que vous avez passé une bonne journée.
un petit mot sur "comme tu sembles être resté sur le 1er code "je suis revenu sur le premier code car j'ai l'impression de "maitriser" les choses...et que au bureau j'ai le choix entre 3 imprimantes (dont un couleur) donc je me suis dit que se serait mieux de garder les premiers code.
je reviens sur le "n'oublie pas d'ajouter le contrôle de saisie dont je te parlais à la fin du post 3"
si je vous ai bien, le bon code est celui-ci :
Sub imprimer_()
Dim nmois As Long, mois As Long, année As Long, m As Long
nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3)
If nmois > 1 And nmois <= 12 Then
mois = Month([A20])
année = Year([A20])
For m = 1 To nmois
'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Worksheets("mcae_gril_prév.").PrintOut copies:=2
mois = mois Mod 12 + 1
année = année - (mois = 1)
[A20] = DateValue("01/" & mois & "/" & année)
Next m
Else
MsgBox ("Saisie non conforme")
End If
End Sub
correct ?
mais à propos à quoi doit servir le :
If nmois > 1 And nmois <= 12 Then
....
Else
MsgBox ("Saisie non conforme")
End If
je veux dire qu'elle sera sa fonction ?
j'ai rencontré un petit problème.
si je clic sur le bouton imprimer (celui sur lequel j'ai affecté la macro), la boîte à message s'ouvre et me demande combien de mois...si je clic sur annuler...j'ai un message "erreur d'excécution'13' incompatibilité de type"
ai-je fait une erreur ? à quoi cela peut-il être du ?
vs remerciant pour votre aide et précieux conseil, je vous souhaite une bonne soirée, nuit...
cdlmnt,
berni///
j'espere que vous allez bien et que vous avez passé une bonne journée.
un petit mot sur "comme tu sembles être resté sur le 1er code "je suis revenu sur le premier code car j'ai l'impression de "maitriser" les choses...et que au bureau j'ai le choix entre 3 imprimantes (dont un couleur) donc je me suis dit que se serait mieux de garder les premiers code.
je reviens sur le "n'oublie pas d'ajouter le contrôle de saisie dont je te parlais à la fin du post 3"
si je vous ai bien, le bon code est celui-ci :
Sub imprimer_()
Dim nmois As Long, mois As Long, année As Long, m As Long
nmois = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3)
If nmois > 1 And nmois <= 12 Then
mois = Month([A20])
année = Year([A20])
For m = 1 To nmois
'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Worksheets("mcae_gril_prév.").PrintOut copies:=2
mois = mois Mod 12 + 1
année = année - (mois = 1)
[A20] = DateValue("01/" & mois & "/" & année)
Next m
Else
MsgBox ("Saisie non conforme")
End If
End Sub
correct ?
mais à propos à quoi doit servir le :
If nmois > 1 And nmois <= 12 Then
....
Else
MsgBox ("Saisie non conforme")
End If
je veux dire qu'elle sera sa fonction ?
j'ai rencontré un petit problème.
si je clic sur le bouton imprimer (celui sur lequel j'ai affecté la macro), la boîte à message s'ouvre et me demande combien de mois...si je clic sur annuler...j'ai un message "erreur d'excécution'13' incompatibilité de type"
ai-je fait une erreur ? à quoi cela peut-il être du ?
vs remerciant pour votre aide et précieux conseil, je vous souhaite une bonne soirée, nuit...
cdlmnt,
berni///
Bonsoir,
Tes 2 questions en font une.
mais à propos à quoi doit servir le : ...
C'est le contrôle de saisie mais je l'ai mal fait et non complet, d'où ton autre erreur.
Avec celui-ci ça sera plus correct :
L'impression est limitée à 12 mois maxi.
eric
Tes 2 questions en font une.
mais à propos à quoi doit servir le : ...
C'est le contrôle de saisie mais je l'ai mal fait et non complet, d'où ton autre erreur.
Avec celui-ci ça sera plus correct :
Sub imprimer_() Dim nmois As Long, mois As Long, année As Long, m As Long, saisie As String saisie = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 3) If IsNumeric(saisie) Then nmois = CLng(saisie) If nmois > 12 Then nmois = 12 mois = Month([A20]) année = Year([A20]) For m = 1 To nmois MsgBox ("impression de " & Format([A20], "mmm/yyyy")) ' Worksheets("mcae_gril_prév.").PrintOut copies:=2 mois = mois Mod 12 + 1 année = année - (mois = 1) [A20] = DateValue("01/" & mois & "/" & année) Next m Else MsgBox ("Saisie non conforme") End If End Sub
L'impression est limitée à 12 mois maxi.
eric