Imprimer lignes selon conditions
Résolu/Fermé
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
-
Modifié par touroul le 4/07/2014 à 13:32
via55 Messages postés 14423 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 1 juin 2024 - 7 août 2014 à 22:13
via55 Messages postés 14423 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 1 juin 2024 - 7 août 2014 à 22:13
A voir également:
- Imprimer lignes selon conditions
- Journal de ma naissance gratuit à imprimer - Télécharger - Histoire & Religion
- Comment signer un pdf sans l'imprimer - Guide
- Imprimer en a5 - Guide
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Imprimer tableau excel sur une page - Guide
6 réponses
via55
Messages postés
14423
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2024
2 708
4 juil. 2014 à 14:05
4 juil. 2014 à 14:05
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
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
Modifié par touroul le 7/08/2014 à 15:54
Modifié par touroul le 7/08/2014 à 15:54
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 !
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
7 août 2014 à 16:45
7 août 2014 à 16:45
Un petit up !
Please help !
Merci d'avance ...
Please help !
Merci d'avance ...
via55
Messages postés
14423
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2024
2 708
7 août 2014 à 18:33
7 août 2014 à 18:33
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
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
7 août 2014 à 20:21
7 août 2014 à 20:21
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
via55
Messages postés
14423
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2024
2 708
7 août 2014 à 20:44
7 août 2014 à 20:44
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
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
7 août 2014 à 22:04
7 août 2014 à 22:04
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 !
via55
Messages postés
14423
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2024
2 708
7 août 2014 à 22:13
7 août 2014 à 22:13
Impeccable !
Bonne soirée aussi
Bonne soirée aussi