Bonjour,
J’ai un tableau assez long, avec des formules.
Je voudrais imprimer seulement les lignes dont les formules renvoient un résultat. Autrement dit les lignes vides de données, mais pas de formules.
J’ai intégré une formule dans la définition de ma zone d’impression, mais ça ne fonctionne pas. Excel considère que mes cellules ne sont pas vides puisqu’elles contiennent des formules.
Activer une cellule en haut d’un tableau par exemple
Menu Données / Filtrer / Filtre automatique. (Icône en forme d’entonnoir)
Cliquer sur la petite flèche sur une des colonnes ou se trouve des formules et des résultats vides
et décocher “vides”
Il suffit d’imprimer.
Une p’tite macro à mettre dans un module par ALT F11
Dans la macro, il y a une ligne 'ActiveSheet.PrintOut qui, si on ôte l’apostrophe permet d’imprimer sans prévisualition, à condition de mettre l’apostrophe sur la ligne ActiveSheet.PrintPreview
Sub ImprimeSansLigneVide()
Dim Lig%
For Lig = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 'Boucle sur la feuille active depuis le bas
If Application.CountBlank(Rows(Lig)) = Application.Columns.Count Then 'Si il trouve une ligne vide
Rows(Lig).EntireRow.Hidden = True ' il masque la ligne
End If
Next
ActiveSheet.PrintPreview 'pour voir sans imprimer
'ActiveSheet.PrintOut ' pour imrimer directement
ActiveSheet.Rows.Hidden = False 'affiche toutes les lignes masquées
End Sub
Alors bizarrement tu arrive à placer des classeurs dans des forums
mais pas ici
Sub ImprimeSansVide()
Dim Plage As Range
On Error Resume Next
Application.ScreenUpdating = False
With ActiveSheet
Set Plage = .Range("A3:A301").Cells.SpecialCells(xlCellTypeBlanks)
If Not Plage Is Nothing Then Plage.Rows.Hidden = True
.PrintPreview 'pour voir sans imprimer
'.PrintOut ' pour imprimer directement
.Rows.Hidden = False
End With
End Sub
Mon fichier initial est sur Excel Mac 2011 et cela ne fonctionne pas.
Je viens de faire l’essai sur mon lieu de travail (sur PC) et cela ne fonctionne pas non plus.
Dans les deux cas, j’ai une première feuille imprimée et 6 autres vierges.
Sub ImprimeSansVide()
Dim Plage As Range, Dl%
On Error Resume Next
Dl = Range("A" & Rows.Count).End(xlUp).Row
Application.Calculation = xlCalculationManual
For i = Dl To 3 Step -1
If Cells(i, 1) = "" Then
Rows(i).Rows.Hidden = True
End If
Next i
ActiveSheet.PrintPreview 'pour voir sans imprimer
'ActiveSheet.PrintOut ' pour imprimer directement
Rows.Hidden = False
Application.Calculation = True
End Sub