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

Imprimer telle ou telle zone selon résultat d'une cellule...

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide afin d'écrire la ligne de commande qui me permettra d'imprimer comme suit ;

Si H15 = 0 alors on imprime de B1 à C42 sinon on imprime de B1 à c83

Merci pour votre aide.

Bien à vous,
Christian
 
Bonjour Christian

VB:
    With ActiveSheet
        If .Range("h15").Value = 0 Then
            .PageSetup.PrintArea = "b1:c42"
        Else
            .PageSetup.PrintArea = "b1:c83"
        End If
        .PrintOut  'pour imprimer
        .PrintPreview    'pour visualiser
    End With
 
Re, le forum, Lone-wolf

Je reviens vers vous, pour savoir si j'ai bien réussi à modifier la macro, de Lone-wolf, ;

ce que j'attends ;
avant d'mprimer la zone B1:C42, je masque les lignes A43:A84
avant d'imprimer la zone B1:C83, j'affiche les lignes A83:A84
Ce qui me permettra, aussitôt l'impression, d'enregistrer en PDF suivant cette configuration...

With ActiveSheet
If .Range("H15").Value = 0 Then
Rows("43:84").EntireRow.Hidden = True
.PageSetup.PrintArea = "B1:C42"
Else
Rows("43:84").EntireRow.Hidden = False
.PageSetup.PrintArea = "B1:C83"
End If
.PrintOut Copies:=2
End With
End Sub

Bien micalement,
Christian
 
Bonjour le fil, le forum, Christian0258

@Christian0258
Une autre manière d'écrire la macro
(si j'ai bien compris la question 😉)
VB:
Sub Impression()
With ActiveSheet
.Rows("43:84").Hidden = (.[H15].Value = 0)
.PageSetup.PrintArea = "B1:C" & IIf(.[H15].Value = 0, "42", "83")
.PrintPreview    'pour visualiser
End With
End Sub
 
Re

@Lone-wolf
Pourquoi que donc qu'il n'y a plus de deux colonnes sur ta copie d'écran du message#6?
Vu que la plage désignée va de la colonne B à sa voisine la colonne C ? 😀
(soit deux colonnes)

C'est pas moi qui le dit, c'est Christian 😉
 
Re, le forum, Lone-wolf, Staple 1600

Tu as bien compris ma question, Staple 1600, ça fonctionne parfaitement.
Dis-moi, petite question ; comment remettre la totalité des lignes visibles soit 16:83 après l'édition pour faire dans la foulée une remise à zéro de cette zone B16:C83.

Encore merci.
Bien à toi,
Christian
Oups pas vu Lone-wolf entre temps...lol
 
Re

A tout hasard, je dirai comme ceci, non ?
VB:
Sub ImpressionBIS()
With ActiveSheet
.Rows("43:84").Hidden = (.[H15].Value = 0)
.PageSetup.PrintArea = "B1:C" & IIf(.[H15].Value = 0, "42", "83")
.PrintPreview    'pour visualiser
.Rows("16:84").Hidden = 0
End With
End Sub
 
- 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
1
Affichages
697
I
Réponses
1
Affichages
1 K
I
C
Réponses
1
Affichages
2 K
D
Réponses
2
Affichages
820
Domi_49
D
  • Question Question
Microsoft 365 vba
Réponses
14
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…