Impression conditionnelle VBA

Fermé
jojolafarlede Messages postés 1 Date d'inscription mardi 17 mai 2016 Statut Membre Dernière intervention 17 mai 2016 - 17 mai 2016 à 18:43
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 18 mai 2016 à 13:19
Bonjour,

Si quelqu'un peut m'aider, ça fait 2 jours que j'essaie de trouver sur internet une réponse mais je ne trouve pas.
Dans un classeur excel j'ai 2 feuilles, 1 de 2 pages (1ère page de 6 colonnes et 2ème page de 8 colonnes) et une de 29 pages (toutes les pages ont 5 colonnes).
La mise en forme est faite avec sauts de pages.
Je souhaite imprimer le classeur entier que si "OUI" apparaît sur la PAGE et ce grâce à une formule SI.
"OUI" est toujours placé sur la ligne 1.
Donc dés que "OUI" apparaît imprimer mise en page.

Merci pour votre aide

Jojo

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 mai 2016 à 11:22
Bonjour
1)"OUI" est toujours placé sur la ligne 1: OUI, Mais dans quelle cellule se trouve la formule?
2) Quelle cellule vide peut-on utiliser pour mémoriser une valeur qui interdira d'autres impressions, même si la formule renvoie "OUI"?
Cdlt
0
jojolafarlede
18 mai 2016 à 12:12
Bonjour,

Concernant la deuxième feuille, la formule SI qui renvoie "OUI" ou rien, est placé sur la ligne 1 colonne A puis colonne F puis colonne K... en fait toutes les 5 colonnes de la 1ère ligne. Pour information, chaque page est constituée de 5 colonnes et 47 lignes.
Sur la ligne 1 les autres cellules sont vides

Pour la 1ère feuille, les deux pages sont systématiquement imprimés, donc il n'y a pas de formule SI mais j'ai écris "OUI" sur page 1 = ligne 1 colonne A et page 2 = ligne 1 colonne G.

j'espère avoir répondu clairement...

Merci pour votre intérêt

Jojo
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 mai 2016 à 13:19
Pas sûr d'avoir tout compris, mais vous pouvez adapter ce qui suit en y apportant les modifications nécessaires.
D'après la demande initiale, si "OUI" apparaît en A1 pour la feuille 2, F1 pour la feuille3, etc.., on imprime le classeur entier, quelle que soit la feuille.

Si c'est cela, copiez ce code dans le module de la feuille sur laquelle se trouve la formule renvoyant "OUI".
Option Compare Text
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("A1").Value = "Oui" And Range("B1").Value <> "Ok" Then
        ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,3,,,TRUE,,FALSE)"
        Range("B1").Value = "Ok"
    End If
End Sub


Dès que "OUI" apparaît en "A1", l'impression du classeur entier démarre, puis la cellule "B1" affiche "OK", ce qui signifie qu'il n'y aura plus d'impression du classeur tant que la cellule "B1" contiendra "OK", même si "A1"="OUI".
Vous pouvez recopier ce code dans d'autres feuilles en remplaçant "A1" par une autre cellule "F1", "K1" etc...
A tester
0