Macro impression avec si

VINCEGR

XLDnaute Occasionnel
Bonjour le forum,:)

me revoila pour un nouveau blocage :confused:

j'utilise la macro suivante pour imprimer

Sub IMPRIME()
'
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWindow.SelectedSheets.PrintOut From:=8, To:=8, Copies:=2


End Sub


je souhaite incorporer à la macro une condition si possible.

"= si(x410=vrai;alors impression page 9;"")"
"=si(x456=vrai;alors impression page 10;"")"

merci pour votre aide
 

JNP

XLDnaute Barbatruc
Re : Macro impression avec si

Bonjour le fil :),
Pas sûr d'avoir compris
Code:
Sub IMPRIME()
'
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWindow.SelectedSheets.PrintOut From:=8, To:=8, Copies:=2
If Range("X410") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=9, To:=9, Copies:=2
If Range("X456") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=10, To:=10, Copies:=2
End Sub
mais ta première ligne imprime déjà toutes les cellules utilisées :confused:...
Une meilleure solution serait d'établir une zone d'impression variable suivant tes conditions avec
Code:
ActiveSheet.PageSetup.PrintArea = "$E$8:$K$30"
Bon courage :cool:
 

VINCEGR

XLDnaute Occasionnel
Re : Macro impression avec si

re,

je viens d'adapter le code à mon fichier dont détail ci-dessous et mon seul souci est sur la ligne 2 , je demande 2 impressions et le résultat est 1 seule impression

pourquoi ?:confused:

ActiveWindow.SelectedSheets.PrintOut From:=1, to:=7, Copies:=1
ActiveWindow.SelectedSheets.PrintOut From:=8, to:=8, Copies:=2
If Range("X410") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=9, to:=9, Copies:=1
If Range("X455") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=10, to:=10, Copies:=1
ActiveWindow.SelectedSheets.PrintOut From:=11, to:=11, Copies:=1


et j'aimerais apprendre le code avec ton conseil JNP

ActiveSheet.PageSetup.PrintArea = "$E$8:$K$30"
mais comment l'adapter,

merci d'avance
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Macro impression avec si

Re :),
Pour la double copie qui n'en produit qu'une seule, j'ai déjà eu le problème mais je n'ai pas trouvé d'où ça venait (probablement un problème de driver d'imprimante ou une mauvaise gestion avec l'option Assembler qui envoie 2 fichiers pour l'impression) :eek:.
La solution "bourrin" :D, c'est
Code:
[COLOR=#0000ff]ActiveWindow.SelectedSheets.PrintOut From:=1, to:=7, Copies:=1[/COLOR]
[COLOR=red]ActiveWindow.SelectedSheets.PrintOut From:=8, to:=8, Copies:=1[/COLOR]
[COLOR=#0000ff][COLOR=#ff0000]ActiveWindow.SelectedSheets.PrintOut From:=8, to:=8, Copies:=1[/COLOR]
If Range("X410") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=9, to:=9, Copies:=1
If Range("X455") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=10, to:=10, Copies:=1
ActiveWindow.SelectedSheets.PrintOut From:=11, to:=11, Copies:=1[/COLOR]
pour la zone d'impression, ce serait par exemple
Code:
[COLOR=#0000ff]If Range("X410") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$410:$X$454"[/COLOR]
où si tu as des variables I = 410 et J = 454, tu peux écrire
Code:
[COLOR=#0000ff]If Range("X410") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$" & I & ":$X$" & J[/COLOR]
et du coup
Code:
[COLOR=#0000ff]ActiveSheet.PrintOut[/COLOR]
suffit.
Bonne journée :cool:
 
Dernière édition:

VINCEGR

XLDnaute Occasionnel
Re : Macro impression avec si

re JNP et staple1600,:D

je viens de tester le code ci-dessous et je viens de comprendre c'est génial top formidable
Code:
Sub a()
ActiveSheet.PageSetup.PrintArea = _
Switch(IsEmpty([A1]), "B1:B10", IsEmpty([B1]), "A1:A10")
ActiveSheet.PrintPreview
End Sub

j'ai aussi testé le Code:

If Range("X410") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$410:$X$454"où si tu as des variables I = 410 et J = 454, tu peux écrire
Code:
If Range("X410") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$" & I & ":$X$" & Jet du coup
Code:
ActiveSheet.PrintOut

et idem je viens d'apprendre une macro que je vais réutiliser dans d'autre programme.
merci pour vos conseils
et longue vie au forum
bonne journée
 

Discussions similaires