Excel/ impressions multiples bis
Résolu/Fermé
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
-
20 août 2011 à 11:03
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 25 août 2011 à 21:36
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 25 août 2011 à 21:36
A voir également:
- Excel/ impressions multiples bis
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
4 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
20 août 2011 à 20:34
20 août 2011 à 20:34
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
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
21 août 2011 à 11:41
21 août 2011 à 11:41
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 ///
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
21 août 2011 à 12:06
21 août 2011 à 12:06
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
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
22 août 2011 à 08:28
22 août 2011 à 08:28
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///
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
22 août 2011 à 12:14
22 août 2011 à 12:14
Bonjour,
à tester :
Worksheets("mcae_gril_prév.").PrintOut Copies:=2
eric
à tester :
Worksheets("mcae_gril_prév.").PrintOut Copies:=2
eric
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
22 août 2011 à 22:24
22 août 2011 à 22:24
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///
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
22 août 2011 à 22:52
22 août 2011 à 22:52
comme tu sembles être resté sur le 1er code n'oublie pas d'ajouter le contrôle de saisie dont je te parlais à la fin du post 3
bonne soirée à toi aussi :-)
eric
bonne soirée à toi aussi :-)
eric
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
23 août 2011 à 21:28
23 août 2011 à 21:28
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///
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
23 août 2011 à 22:59
23 août 2011 à 22:59
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
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
25 août 2011 à 21:36
25 août 2011 à 21:36
Bonsoir cher Eriiic,
comme promis..Me revoici....et comme promis..Cela marche.. je suis super content... :-)
j'ai essayé à plusieurs reprises et cela focntionne..
un tt grand merci à vous...
cdlmnt,
berni///
comme promis..Me revoici....et comme promis..Cela marche.. je suis super content... :-)
j'ai essayé à plusieurs reprises et cela focntionne..
un tt grand merci à vous...
cdlmnt,
berni///