Imprimer lignes selon conditions
Résolu
touroul
Messages postés
509
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Imprimer lignes selon conditions
- Journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Comment imprimer en a5 - Guide
- Imprimer tableau excel sur une page - Guide
- Parole de chanson francaise gratuite à imprimer - Télécharger - Vie quotidienne
- Mise en forme conditionnelle excel plusieurs conditions - Guide
6 réponses
Bonjour touroul
Tu peux dans une macro définir la zone d'impression
ex:
If ActiveSheet.range("F35") ="" then ActiveSheet.PageSetup.PrintArea = "$A$2:$R$24"
Cdlmnt
Tu peux dans une macro définir la zone d'impression
ex:
If ActiveSheet.range("F35") ="" then ActiveSheet.PageSetup.PrintArea = "$A$2:$R$24"
Cdlmnt
Boujour le forum
Je mis suis remis mais je peine à adapter la macro :
Voici ce que j'ai saisi et qui me génère une erreur 400 :
Sub ImprimerZones()
If ActiveSheet.Range("F36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24;$A$50:$Q$53"
If ActiveSheet.Range("F48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36;$A$50:$Q$53"
If ActiveSheet.Range("F48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48;$A$50:$Q$53"
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End Sub
But du jeu :
- Imprimer les 2 zones $A$1:$Q$24 et $A$50:$Q$53 s'il n'y a rien en F36
- Imprimer les 2 zones $A$1:$Q$36 et $A$50:$Q$53 s'il n'y a rien en F48
- Imprimer les 2 zones $A$1:$Q$48 et $A$50:$Q$53 s'il y a quelque chose en F48
A la fin, faire apparaître la boîte de dialogue Imprimer en forçant mode Paysage
Puis-je vous demander de corriger mes erreurs ?
Je vous en remercie d'avance !
Je mis suis remis mais je peine à adapter la macro :
Voici ce que j'ai saisi et qui me génère une erreur 400 :
Sub ImprimerZones()
If ActiveSheet.Range("F36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24;$A$50:$Q$53"
If ActiveSheet.Range("F48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36;$A$50:$Q$53"
If ActiveSheet.Range("F48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48;$A$50:$Q$53"
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End Sub
But du jeu :
- Imprimer les 2 zones $A$1:$Q$24 et $A$50:$Q$53 s'il n'y a rien en F36
- Imprimer les 2 zones $A$1:$Q$36 et $A$50:$Q$53 s'il n'y a rien en F48
- Imprimer les 2 zones $A$1:$Q$48 et $A$50:$Q$53 s'il y a quelque chose en F48
A la fin, faire apparaître la boîte de dialogue Imprimer en forçant mode Paysage
Puis-je vous demander de corriger mes erreurs ?
Je vous en remercie d'avance !
Bonjour
Ta zone d'impression doit être formée d'une plage contiguë ,
soit tu veux imprimer la zone $A$1:$Q$24
soit la zone $A$50:$Q$53
soit la zone $A$1:$Q$53
ActiveSheet.PageSetup .Orientation = xlPaysage
pour mettre la feuille en format paysage
Cdlmnt
Ta zone d'impression doit être formée d'une plage contiguë ,
soit tu veux imprimer la zone $A$1:$Q$24
soit la zone $A$50:$Q$53
soit la zone $A$1:$Q$53
ActiveSheet.PageSetup .Orientation = xlPaysage
pour mettre la feuille en format paysage
Cdlmnt
Salut Via
Merci de t'y remettre
J'ai fait pas mal d'essais, mais mon code paraît poser des problèmes de compatibilité.
Je ne pense pas avoir mis les choses dans le bon ordre :
Sub ImprimerZones()
With ActiveSheet.PageSetup
If ActiveSheet.Range("A36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24"
If ActiveSheet.Range("A48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36"
If ActiveSheet.Range("A48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48"
.PrintArea.FitToPagesWide = 1
.Orientation = xlLandscape
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End With
End Sub
Peux-tu regarder ? Merci d'avance !
Merci de t'y remettre
J'ai fait pas mal d'essais, mais mon code paraît poser des problèmes de compatibilité.
Je ne pense pas avoir mis les choses dans le bon ordre :
Sub ImprimerZones()
With ActiveSheet.PageSetup
If ActiveSheet.Range("A36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24"
If ActiveSheet.Range("A48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36"
If ActiveSheet.Range("A48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48"
.PrintArea.FitToPagesWide = 1
.Orientation = xlLandscape
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End With
End Sub
Peux-tu regarder ? Merci d'avance !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re !
.PrintArea.FitToPagesWide = 1 envoie message d'erreur
Essaie ainsi
Sub ImprimerZones()
If ActiveSheet.Range("A36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24"
If ActiveSheet.Range("A48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36"
If ActiveSheet.Range("A48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48"
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
End With
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End Sub
Cdlmnt
.PrintArea.FitToPagesWide = 1 envoie message d'erreur
Essaie ainsi
Sub ImprimerZones()
If ActiveSheet.Range("A36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24"
If ActiveSheet.Range("A48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36"
If ActiveSheet.Range("A48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48"
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
End With
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End Sub
Cdlmnt
Merci Via
J'ai fini par m'en sortir avec ce code :
Sub ImprimerZones()
If ActiveSheet.Range("A36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24"
If ActiveSheet.Range("A48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36"
If ActiveSheet.Range("A48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48"
With ActiveSheet.PageSetup
.CenterFooter = Chr(10) & "Fait à " & Sheets(1).Range("C2") & " le " & Sheets(1).Range("I2") & Chr(10) & Chr(10) & " Le prestataire :" & " Signature du Client :"
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End Sub
De cette manière, le pied de page peut récupérer des infos dans la feuille et cela m'évite d'avoir à imprimer 2 zones non-contigües.
Vraiment sympa de m'avoir aidé.
Je marque en résolu
Bonne soirée !
J'ai fini par m'en sortir avec ce code :
Sub ImprimerZones()
If ActiveSheet.Range("A36") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$24"
If ActiveSheet.Range("A48") = "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$36"
If ActiveSheet.Range("A48") <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$48"
With ActiveSheet.PageSetup
.CenterFooter = Chr(10) & "Fait à " & Sheets(1).Range("C2") & " le " & Sheets(1).Range("I2") & Chr(10) & Chr(10) & " Le prestataire :" & " Signature du Client :"
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
If Application.Dialogs(xlDialogPrint).Show = False Then Exit Sub
End Sub
De cette manière, le pied de page peut récupérer des infos dans la feuille et cela m'évite d'avoir à imprimer 2 zones non-contigües.
Vraiment sympa de m'avoir aidé.
Je marque en résolu
Bonne soirée !