Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro impression avec si

  • Initiateur de la discussion Initiateur de la discussion VINCEGR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VINCEGR

XLDnaute Occasionnel
Bonjour le forum,🙂

me revoila pour un nouveau blocage 😕

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
 
Re : Macro impression avec si

Bonjour VINCEGR, le Forum,
A adapter selon tes besoins

If Target.Address(0, 0) = "vrai" Then
MsgBox "Impression de la page numéro 9"
End If

Sous réserve, n'étant pas un spécialiste des codes
 
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 😕...
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 😎
 
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 ?😕

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:
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) 😱.
La solution "bourrin" 😀, 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 😎
 
Dernière édition:
Re : Macro impression avec si

Bonjour à tous

Un exemple avec Switch

(à adapter et tester)


Code:
Sub a()
ActiveSheet.PageSetup.PrintArea = _
Switch(IsEmpty([A1]), "B1:B10", IsEmpty([B1]), "A1:A10")
ActiveSheet.PrintPreview
End Sub
 
Re : Macro impression avec si

re JNP et staple1600,😀

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:


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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
366
Réponses
10
Affichages
791
Réponses
4
Affichages
715
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…