XL 2019 VBA Définir une zone d'impression

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 !

dadaze

XLDnaute Junior
Bonjour,

J'essaie de définir une zone d'impression pour certaines feuilles du classeur.

Pour ce faire, j'utilise le code ci dessous.

For i = 5 To Sheets.Count

With Sheets(i)
Dim plg_imp As Range
Set plg_imp = Sheets(i).Range("a1:h" & Sheets(i).Range("f" & Rows.Count).End(xlUp).Row)
.PageSetup.PrintArea = plg_imp
End With

Next i


Ça ne fonctionne pas et en retour j'ai le message ci- après

"Nous n'avons pas trouvé de référence de plage ou de nom défini dans cette formule"

Encore une fois, je me retourne vers vous.

Si vous disposez de quelques instants pour solutionner ce problème, je vous en remercie d'avance.

Cordialement
 
Bonjour,

A tester

VB:
Sub DefinirZonesImpression()
    Dim i As Long
    Dim derLigne As Long
    Dim plg_imp As Range
    
    For i = 5 To Sheets.Count
        With Sheets(i)
            ' Recherche de la dernière ligne non vide en colonne F
            derLigne = .Cells(.Rows.Count, "F").End(xlUp).Row
            
            ' Définition de la plage à imprimer
            Set plg_imp = .Range("A1:H" & derLigne)
            
            ' Affecter l'adresse absolue au PrintArea
            .PageSetup.PrintArea = plg_imp.Address
        End With
    Next i
End Sub

Nicolas
 
Bonjour Dadaze, Nicolas,
Ou simplment en ajoutant .Address dans la macro du post #1 :
VB:
For i = 5 To Sheets.Count
With Sheets(i)
Dim plg_imp As Range
Set plg_imp = Sheets(i).Range("a1:h" & Sheets(i).Range("f" & Rows.Count).End(xlUp).Row)
.PageSetup.PrintArea = plg_imp.Address
End With
Next i
 
Bonjour,

A tester

VB:
Sub DefinirZonesImpression()
    Dim i As Long
    Dim derLigne As Long
    Dim plg_imp As Range
   
    For i = 5 To Sheets.Count
        With Sheets(i)
            ' Recherche de la dernière ligne non vide en colonne F
            derLigne = .Cells(.Rows.Count, "F").End(xlUp).Row
           
            ' Définition de la plage à imprimer
            Set plg_imp = .Range("A1:H" & derLigne)
           
            ' Affecter l'adresse absolue au PrintArea
            .PageSetup.PrintArea = plg_imp.Address
        End With
    Next i
End Sub

Nicolas
Merci beaucoup je vais tester
 
Bonjour,

A tester

VB:
Sub DefinirZonesImpression()
    Dim i As Long
    Dim derLigne As Long
    Dim plg_imp As Range
   
    For i = 5 To Sheets.Count
        With Sheets(i)
            ' Recherche de la dernière ligne non vide en colonne F
            derLigne = .Cells(.Rows.Count, "F").End(xlUp).Row
           
            ' Définition de la plage à imprimer
            Set plg_imp = .Range("A1:H" & derLigne)
           
            ' Affecter l'adresse absolue au PrintArea
            .PageSetup.PrintArea = plg_imp.Address
        End With
    Next i
End Sub

Nicolas
Merci beaucoup je vais tester
 
- 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
4
Affichages
491
Retour