impression avec conditions

Le
marc
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir écrit
celà sans certitudes et heureusement car ça ne marche pas, ça m'imprime
systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que 52
Donc j'en appelle à votre savoir, pour me diriger vers une méthode plus
"efficace"

Merci de m'avoir lû

Marc
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
E KERGRESSE
Le #1345941
Salut Marc,

Utilise plutôt la commande Select Case

Sub Bouton7_Click()

Select case Sheets("recherche").Range("$Q$6").Value
case 1 to 33
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55"
case 34 to 66
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110"
case 67 to 99
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165"
case 100 to 132
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
End Select

Sheets("à_imprimer").PrintOut

End Sub


Cordialement

"marc"
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir écrit
celà sans certitudes et heureusement car ça ne marche pas, ça m'imprime
systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que
52...

Donc j'en appelle à votre savoir, pour me diriger vers une méthode plus
"efficace"

Merci de m'avoir lû

Marc




papou
Le #1345940
Bonjour
Modifie comme ça :
Sub Bouton7_QuandClic()
Select Case Worksheets("recherche").Range("$Q$6").Value
Case >1, <3
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55"
Case > 33 , <= 66
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110"
Case > 66 , <= 99
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165"
Case > 99 , <= 132
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
End select
Worksheets("à_imprimer").PrintOut
End Sub

Cordialement
Pascal


"marc"
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir écrit
celà sans certitudes et heureusement car ça ne marche pas, ça m'imprime
systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que
52...

Donc j'en appelle à votre savoir, pour me diriger vers une méthode plus
"efficace"

Merci de m'avoir lû

Marc




marc
Le #1345934
Merci Papou,

malheureusement, en applicant tes modifications ne s'est imprimée que la
première page.

Mais c'était déja beaucoup mieux que 4 pages dont 2 à blanc.

J'ai ensuite utilisé les modifications de E KERGRESSE qui fonctionne en
utilisant également Select Case.

Alors, d'accord ça fonctionne mais je ne comprends pas ce code. Si tu
pouvais m'expliquer vite fait le role de ce Select Case, ça me rendrait
service pour pouvoir le réemployer plus tard, voir, aider quelqu'un !

Merci



"papou" news:
Bonjour
Modifie comme ça :
Sub Bouton7_QuandClic()
Select Case Worksheets("recherche").Range("$Q$6").Value
Case >1, <3
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55"
Case > 33 , <= 66
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110"
Case > 66 , <= 99
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165"
Case > 99 , <= 132
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
End select
Worksheets("à_imprimer").PrintOut
End Sub

Cordialement
Pascal


"marc"
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir écrit
celà sans certitudes et heureusement car ça ne marche pas, ça m'imprime
systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que
52...

Donc j'en appelle à votre savoir, pour me diriger vers une méthode plus
"efficace"

Merci de m'avoir lû

Marc








marc
Le #1345933
Merci Eric, ça fonctionne parfaitement,

Mais je ne connais pas Select Case, alors, si tu peux m'en dire plus !


"E KERGRESSE" de news:%
Salut Marc,

Utilise plutôt la commande Select Case

Sub Bouton7_Click()

Select case Sheets("recherche").Range("$Q$6").Value
case 1 to 33
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55"
case 34 to 66
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110"
case 67 to 99
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165"
case 100 to 132
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
End Select

Sheets("à_imprimer").PrintOut

End Sub


Cordialement

"marc"
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir écrit
celà sans certitudes et heureusement car ça ne marche pas, ça m'imprime
systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que
52...

Donc j'en appelle à votre savoir, pour me diriger vers une méthode plus
"efficace"

Merci de m'avoir lû

Marc








E KERGRESSE
Le #1345927
Salut Marc,

Le mieux pour commencer en VBA, c'est d'utiliser à fond la touche F1 dans
l'éditeur VBA après avoir sélectionné le mot Select Case par exemple. Tout y
est expliqué. C'est la première chose à faire.

Tu auras accès aux explications sur le fonctionnement de la commande. Il y a
souvent des exemples pour mieux comprendre. Au départ, c'est pas facile pour
tout comprendre mais avec l'habitude ça vient.

Les questions sur ce forum sont souvent récurrentes, n'hésite pas non plus
à t'aider du module de recherche de ton navigateur, pour rechercher les
thèmes qui te posent problème. Par contre, il te faudra fréquemment
consulter le site si tu veux progresser rapidement, (je n'avais pas la
chance d'avoir Internet quand j'ai commencé).

Par ailleurs, il y a plein de sites intéressants que tu dois connaître et en
premier lieu http://www.excelabo.net/index.php

Ce site te permet après, d'accéder à d'autre sites tout aussi intéressants
parfois avec leurs spécialités, tu apprendras vite à les repérer et à les
mettre dans tes favoris car souvent tu y trouveras rapidement la réponse à
tes questions.

Content d'avoir pu t'aider.

Cordialement.

"marc"
Merci Eric, ça fonctionne parfaitement,

Mais je ne connais pas Select Case, alors, si tu peux m'en dire plus !


"E KERGRESSE" message

de news:%
Salut Marc,

Utilise plutôt la commande Select Case

Sub Bouton7_Click()

Select case Sheets("recherche").Range("$Q$6").Value
case 1 to 33
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55"
case 34 to 66
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110"
case 67 to 99
Sheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165"
case 100 to 132
Sheets("à_imprimer").PageSetup.PrintArea "$A$1:$Q$220"
End Select

Sheets("à_imprimer").PrintOut

End Sub


Cordialement

"marc"
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir
écrit



celà sans certitudes et heureusement car ça ne marche pas, ça
m'imprime



systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que
52...

Donc j'en appelle à votre savoir, pour me diriger vers une méthode
plus



"efficace"

Merci de m'avoir lû

Marc












AV
Le #1345926
Pourquoi pas comme ça :

Sub zz_Imprim()
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$" _
& [index({55,110,165,220},match(Q6,{0,34,67,100,133},1))]
Worksheets("à_imprimer").PrintOut
End Sub

PS : tu peux adapter les bornes dans le index/match
AV
Robert
Le #1327349
Salut,
Pour Select Case, peut-être ici:
http://ndailly.free.fr/basic/case.html
A+

"marc" news:
Merci Papou,

malheureusement, en applicant tes modifications ne s'est imprimée que la
première page.

Mais c'était déja beaucoup mieux que 4 pages dont 2 à blanc.

J'ai ensuite utilisé les modifications de E KERGRESSE qui fonctionne en
utilisant également Select Case.

Alors, d'accord ça fonctionne mais je ne comprends pas ce code. Si tu
pouvais m'expliquer vite fait le role de ce Select Case, ça me rendrait
service pour pouvoir le réemployer plus tard, voir, aider quelqu'un !

Merci



"papou" news:
Bonjour
Modifie comme ça :
Sub Bouton7_QuandClic()
Select Case Worksheets("recherche").Range("$Q$6").Value
Case >1, <3
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55"
Case > 33 , <= 66
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110"
Case > 66 , <= 99
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165"
Case > 99 , <= 132
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
End select
Worksheets("à_imprimer").PrintOut
End Sub

Cordialement
Pascal


"marc"
Bonjour à tous,
Je cherche à imprimer des planches d'étiquettes avec une macro.
Chaque planche contient 33 étiquettes.
J'ai placé un pointeur conptant le nombre d'étiquettes remplies sur ma
feuille "recherche" en Q6.
J'ai écris la macro suivante :

Sub Bouton7_QuandClic()
If Worksheets("recherche").Range("$Q$6") > 1 <= 33 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$55" Else
If Worksheets("recherche").Range("$Q$6") > 33 <= 66 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$110" Else
If Worksheets("recherche").Range("$Q$6") > 66 <= 99 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$165" Else
If Worksheets("recherche").Range("$Q$6") > 99 <= 132 Then
Worksheets("à_imprimer").PageSetup.PrintArea = "$A$1:$Q$220"
Worksheets("à_imprimer").PrintOut
End Sub


Débutant en la matière depuis lundi, je suis humble et avoue avoir
écrit



celà sans certitudes et heureusement car ça ne marche pas, ça
m'imprime



systématiquement 4 pages. Alors que mon compteur Q6 N'en dénombre que
52...

Donc j'en appelle à votre savoir, pour me diriger vers une méthode
plus



"efficace"

Merci de m'avoir lû

Marc












Publicité
Poster une réponse
Anonyme