XL 2010 Zone d'impression par vba

Bizarre

XLDnaute Nouveau
Bonjour,

À l’aide de l’enregistreur de macro j’ai défini une zone d’impression qui va de A8 : N8, la ligne 1 du tableau doit être répétée sur toutes les pages (le vrai tableau contient plusieurs centaines de lignes). La zone d’impression change chaque fois que j’ajoute une colonne à l’aide du bouton ajout de colonne. Une colonne j’ajoute et une colonne se masque (ajout de colonne 2019 la colonne 2017 se masque donc la zone d’impression devrait être A8 : O8 dans ce tableau. Comment faire pour que la zone d’impression s’adapte à la dernière colonne non vide ainsi que la dernière ligne remplie. Merci de prendre un peu de votre temps pour m’aider.

Je joins un fichier.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@Bizarre
Vois ce que les codes ci-dessous t'inspirent
VB:
Sub test_I()
Efface_Zone_Imp '<- pour test
With ActiveSheet
'ligne ci-dessous juste pour test
MsgBox Application.Rept("Zone impression non-définie", Len(.PageSetup.PrintArea) = 0), vbInformation, "Test"
.PageSetup.PrintArea = .UsedRange.Address
MsgBox "Zone d'impression= " & .UsedRange.Address, vbExclamation '<- pour test
End With
End Sub
Sub test_II()
Dim Li&, Co&
Efface_Zone_Imp '<- pour test
With ActiveSheet
'ligne ci-dessous juste pour test
MsgBox Application.Rept("Zone impression non-définie", Len(.PageSetup.PrintArea) = 0), vbInformation, "Test"
Li = .Cells.Find("*", LookIn:=-4123, SearchOrder:=1, SearchDirection:=2).Row
Co = .Cells.Find("*", LookIn:=-4123, SearchOrder:=2, SearchDirection:=2).Column
.PageSetup.PrintArea = .[A1].Resize(Li, Co).Address
MsgBox "Zone d'impression= " & .[A1].Resize(Li, Co).Address, vbExclamation '<- pour test
End With
End Sub
Sub Efface_Zone_Imp()
ActiveSheet.PageSetup.PrintArea = ""
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16