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
 
ben sur windows 10 l'astuce existe aussi
déjà dans ton sytem il y a marqué
xx,xx giga de ram
ou xx,xx giga de ram disponible
ça tu peux le modifier pour jouir de tout ta ram physique dispo

les app en 32 bit utilise 1 coeur ou deux si 4 coeurs
tu pouvait régler ça aussi sur Win 7 je suppose que win 10 aussi

si ça ce trouve ton pc est réglé en dessous du minimum
un pc avec 3 giga de proc et 32 de ram t'en fait une fusée en utilisant seulement la moitié de sa capacité

si tu n'a rien configuré et installé ou mis a jour vers w 10 tu est en slowmotion
tu serais surpris si tu faisais quelque réglages
 
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
Je comprends sylvanu. Est-il possible d'automatiser le processus? Ou seule une macro permet d'atteindre l'objectif visé. Advenant, que la macro est l'unique solution, est-il possible pour vous de la modifier votre macro afin que la zone d'impression soit élargie sur deux pages, s'il y a une valeur dans la cellule "C55"?

Dans l'attente de votre réponse
 
re
on peut limiter néanmoins le refrech du page setup
dans la feuille
VB:
Dim oldcellvalue
Private Sub Worksheet_Calculate()
    If [c55] <> oldcellvalue Then FitToTwoPage
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$5" Then FitToTwoPage
End Sub

Sub FitToTwoPage()
    If oldcellvalue <> [c55].Value Then
        oldcellvalue = [c55].Value
    End If
    If [c55] <> "" Then Set plage = [A1:X64] Else Set plage = [a1:x51]
    With ActiveSheet.PageSetup
        .PrintArea = plage.Address
        'etc etc...
        '..
        '..
        '...
        '...

    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
3
Affichages
780
Retour