Bonjour,
J'utilise une macro pour ajuster automatiquement une zone d'impression qui change en fonction de la mise à jour d'un TCD.
Voici le code de la feuille :
Voici le code dans le module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True If Range("z1").Value = "" Then Range("z1").Value = ActiveCell.Row Range("z2").Value = ActiveCell.Column Else Range("z3").Value = ActiveCell.Row Range("z4").Value = ActiveCell.Column Range("AA1").Value = "=ADDRESS(RC[-1],R[1]C[-1]) & "":"" & ADDRESS(R[2]C[-1],R[3]C[-1])" imprim End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub imprim() plage = Range("aa1").Value ActiveSheet.PageSetup.PrintArea = plage ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub
Cette macro m'est bien utile mais j'ai un souci avec : lorsque je fais un clic droit sur mon tableau (car dans mon cas il s'agit d'un TCD), la zone d'impression se redéfinit toute seule vers la cellule cliquée et l'impression s’exécute toute seule... Il y a t il un moyen de contrer cela ?
Autre petite particularité, la page concernée par la macro est un tableau croisé dynamique de la colonne A à Q, avec un nombre de lignes différent selon les rafraîchissement du TCD. Puis des formules colonnes R à X étendu sur 300 lignes (taille maxi que peut faire le TCD). La zone d'impression qui m'intéresse est de colonne A à V et sur le nombre de lignes du TCD, donc pas nécessairement jusqu'à la ligne 300.
Or la macro imprime sur la zone de cellules non vides (donc colonne X et ligne 300).
Comment réduire la zone d'impression en figeant la colonne V comme limite de colonnes ainsi que la dernière ligne du TCD (et non des formules) comme limite de lignes ?
Merci d'avance
Cdt
Partager