XL 2010 Définition d'une zone d'impression en fonction d'un critère

Renaud22

XLDnaute Junior
Bonjour à tous,

J'aurais besoin qu'on aide a concevoir un code VBA afin de définir une zone d'impression en fonction de la présence ou non d'une valeur dans une cellule.

Concrètement, pour une feuille active quelconque, la zone d'impression devra être définie entre les cellules "A1" & "X51" s'il n'y a pas de valeur dans la cellule "C55". Cependant, si une valeur est présence dans la cellule "C55", la zone d'impression devra être définie entre "A1" & "X64" .

Par exemple : =SI('Feuille_active_quelconque'!$C$55="";'Feuille_active_quelconque'!$A$1:$X$51;'Feuille_active'!$A$1:$X$64)

En vous remerciant par avance pour votre précieuse aide.

Salutations,

Renaud22
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Renaud,
Peut être quelques chose comme ça :
VB:
If [C55] = "" Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:$X$51"
Else
    ActiveSheet.PageSetup.PrintArea = "$A$1:$X$64"
End If
ou plus court :
VB:
ActiveSheet.PageSetup.PrintArea = "$A$1:$X$51"
If [C55] <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$X$64"
 

Renaud22

XLDnaute Junior
Merci sylvanu pour votre réponse.

Je ne suis pas un expert, loin de là, en programmation VBA. Pourriez-vous m'indiquer où je dois insérer les lignes de code afin que lorsque j'active "Aperçu avant impression" je vois la page tenant compte des critères définis ($A$1:$X$51, si C55 est vide ou $A$1:$X$64, si C55 contient une valeur). Si vous pourriez me transmettre un exemple de fichier, cela serait très apprécié.

Salutations,

Renaud22
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
cela serait très apprécié.
Ce qui serait très apprécié c'est que vous fournissiez un fichier test. :)
C'est d'ailleurs précisé dans notre charte (Lien):
2.5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant à ce que les données soient fictives et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Le fait de faire "Aperçu avant impression" ne déclenche aucune macro.
Une solution est d'avoir un bouton pour lancer cette macro.
En PJ un essai, j'ai mis la zone d'impression sur une seule feuille de façon à bien voir l'effet obtenu. Avec :
VB:
Sub ApercuAvantImpression()
    ActiveSheet.PageSetup.PrintArea = "$A$1:$X$51"
    If [C55] <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$X$64"
    ActiveWindow.SelectedSheets.PrintPreview
End Sub
 

Pièces jointes

  • Exemple.xlsm
    32.1 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
re
Bonjour
le mieux c'est simple si tu veux que cela soit automatique
si ta cellule c55 est modifié par formule utilise l'event calculate
si ta celluleC55 est modifiée par vba ou manuellement dans l'event change

ben dans ces deux event tu met

VB:
 ActiveSheet.PageSetup.PrintArea = "$A$1:$X$51"
    If [C55] <> "" Then ActiveSheet.PageSetup.PrintArea = "$A$1:$X$64"
terminé quand tu fera ton printpreview l'area sera le bon

simple comme "Bonjour" ;)
 

patricktoulon

XLDnaute Barbatruc
re
grossomodo je met 10 fois moins de temps

demo.gif
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki