macro VBA pour zone d'impression variable

  • Initiateur de la discussion Initiateur de la discussion superbog
  • 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 !

superbog

XLDnaute Occasionnel
Bonjour,

Je voudrais avec une macro pouvoir établir la zone d'impression d'une page en fonction d'une variable, la dernière ligne de la colonne G.
Je voudrais que la range("A1:F150") soit toujours dans la zone d'impression et que la suite débute à G1 et se termine à K de la dernière ligne non vide de la colonne G.

Voilà la macro que j'ai créé mais ca ne fonctionne pas...

Pouvez vous m'aider

Code:
Sub printarea()

Dim DerLigBase, fin As Integer
 Dim dossier As String
Dim nomNewClasseur As String
    

dossier = Range("A9")

'Recherche de la dernière ligne
DerLigBase = Sheets("recap").Range("G1000").End(xlUp).Row

Sheets("recap").PageSetup.PrintArea = "$A$1:$F$150,$G$1:$K(DerligBase)"

end sub

merci
 
Re : macro VBA pour zone d'impression variable

Bonjour à tous

Si j'ai bien compris, une autre façon de faire.
Code:
Sub mPrintArea()
Dim DerLigBase&, fin%, dossier$, nomNewClasseur$
dossier = Range("A9").Text
'Recherche de la dernière ligne
With Sheets("recap")
    DerLigBase = .Cells(Rows.Count, "G").End(xlUp).Row
    .PageSetup.printarea = .Range("A1:K" & IIf(DerLigBase < 150, 150, DerLigBase)).Address
End With
End Sub
 
Re : macro VBA pour zone d'impression variable

Bonjour à tous,

Jean-Marie (Staple1600) ta proposition équivaut à :

Code:
Sheets("recap").PageSetup.PrintArea = "$A$1:$A$150:$K" & DerligBase
Mais pas sûr que superbog nous ait dit ce qu'elle veut exactement.

A+
 
Re : macro VBA pour zone d'impression variable

J'ai essayé cela ne marche pas.
Ce que je veux exactement c'est avoir une zone d'impression de A1 à F150 et de G1 à Ki ou i est la dernière ligne de la colonne G

merci de votre attention
 
Re : macro VBA pour zone d'impression variable

Re superbog,

Oui on sait mais Il faudrait préciser votre pensée.

Si par exemple i = 200 que doit-on imprimer ?

Si vous ne voulez pas que soit imprimées les cellules A151:F200 dites-le nom d'une pipe.

A+
 
Re : macro VBA pour zone d'impression variable

Re,

Alors au moment de l'impression il faut créer un nouveau document dans lequel on effacera les cellules situées sous A150:F150.

Donc placez cette macro dans le ThisWorkbook du classeur à imprimer :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name <> "recap" Then Exit Sub
Dim i As Long
Cancel = True
ActiveSheet.Copy 'nouveau document
With ActiveWorkbook.ActiveSheet
  i = .Cells(Rows.Count, "G").End(xlUp).Row
  .PageSetup.PrintArea = "$A$1:$A$150:$K" & i
  .Range("A151:F" & .Rows.Count).Clear
  .PrintOut Preview:=True 'avec l'aperçu
  .Parent.Close False 'fermeture du document
End With
End Sub
A+
 
- 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
7
Affichages
163
Réponses
4
Affichages
177
Réponses
4
Affichages
461
Réponses
2
Affichages
511
Réponses
10
Affichages
547
Réponses
7
Affichages
619
Retour