OVH Cloud OVH Cloud

impression tableau

1 réponse
Avatar
Michel
Bonjour,

Dans un tableau défini par une zone d'impression, je souhaite imprimer
uniquement les lignes avec des données et exclure les lignes soit vides,
soit avec le résultat d'une formule égal à 0.

Avec la fonction mise en page/feuille/erreur de cellule comme <vide>, ça ne
marche pas.

Quelqu'un a une idée ?

Michel

1 réponse

Avatar
bourby
Bonjour,
pas d'idée dans Excel, mais voici une macro qui fait le boulot.
A placer dans un module standard.



Sub ZoneSansVides()
Dim Li As Long, Co As Integer, Zero As Boolean

With Range(ActiveSheet.PageSetup.PrintArea)
Li = .Row
Co = .Column
For i = 1 To .Rows.Count
Zero = False
If Cells(Li + i - 1, 256).End(xlToLeft).Column < Co Then
Zero = True
GoTo MasquerLigne
End If
If Cells(Li + i - 1, 256).End(xlToLeft).Column = Co Then
If Cells(Li + i - 1, 256).End(xlToLeft) = 0 Then
Zero = True
GoTo MasquerLigne
End If
End If

For j = Co To Cells(Li + i - 1, 256).End(xlToLeft).Column
k = .Cells(1, 1).Offset(i - 1, j - 1)
If .Cells(1, 1).Offset(i - 1, j - 1) <> 0 Then
Zero = False
Exit For
End If
Zero = True
Next
MasquerLigne:
If Zero Then Rows(Li + i - 1).EntireRow.Hidden = True
Next i
End With
End Sub


(Si tu connais un peu VBA, et que tu veux qu'elle s'active
automatiquement à chaque impression, tu pourras aussi la déclencher par
l'évènement _beforePrint, par exemple:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveWorksheet.Name = "nomDeMaFeuille" Then ZoneSansVides
End Sub

code à placer dans l'objet Thisworkbook, en sélectionnant Workbook dans
la fenêtre en haut à gauche, et BeforePrint dans celle de droite: il
génère ainsi les lignes Sub... et end sub, et reconnaît qu'il s'agit de
la procédure évènementielle; si tu copiais mes 3 lignes dans la page
blanche, il ne les considérerait pas comme une procédure à déclencher
avant chaque impression)

Cordialement

Bourby


Michel wrote:
Bonjour,

Dans un tableau défini par une zone d'impression, je souhaite imprimer
uniquement les lignes avec des données et exclure les lignes soit vides,
soit avec le résultat d'une formule égal à 0.

Avec la fonction mise en page/feuille/erreur de cellule comme <vide>, ça ne
marche pas.

Quelqu'un a une idée ?

Michel