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

  • Initiateur de la discussion Initiateur de la discussion Renaud22
  • Date de début Date de début

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 !

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
 
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"
 
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
 
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:
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

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" 😉
 
Bonsoir Patrick,
Cela veut dire qu'à chaque nouveau calcul ou recalcul dans la feuille, on va exécuter cette macro.
Sur XL2007 c'est très long, sur mon PC cela avoisine les 300ms. Je préfère de loin un bouton.
 
Si on utilise un event, il faut plutôt utiliser la première macro, on n'effectue qu'un seul PageSetup.
Mais ça veut dire que vous perdez 100ms sur chaque calcul. Ce qui peut être rédhibitoire.
NB: Il va me falloir penser à changer de bécane.
 
- 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
3
Affichages
780
Retour