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...

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
 

Lone-wolf

XLDnaute Barbatruc
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
 

Christian0258

XLDnaute Accro
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
 

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Christian0258

XLDnaute Accro
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
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…