XL 2016 Macro imprimer seulement colonne actives

cardi

XLDnaute Junior
Bonjour,

Je dispose d'un code VBA pour imprimer seulement mes lignes actives

VB:
Sub Imprimdevis()

Dim Plage As Range
On Error Resume Next
Application.ScreenUpdating = False
  With ActiveSheet
    Set Plage = .Range("ap1:ap318")
       For Each CEL In Plage
        If CEL.Value = 0 Then Rows(CEL.Row).Hidden = True
     Next CEL
    .PrintPreview 'pour voir sans imprimer
    '.PrintOut ' pour imprimer directement
    .Rows.Hidden = False
     End With
End Sub

Si la valeur dans les cellules de la colonne AP = 0, alors la ligne concernée n'est pas imprimée.

J'aimerai ajouter la même chose sur les colonnes, si la valeur dans la ligne 319 = 0, alors on n'imprime pas la colonne concernée.

Que dois-je ajouter à mon code existant?

Merci d'avance,

Cardi
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Cardi, bonjour le forum,

Essaie comme ça :

VB:
Sub Imprimdevis()
Dim Plage As Range

'On Error Resume Next
Application.ScreenUpdating = False
With ActiveSheet
    Set Plage = .Range("AP1:AP318")
    For Each cel In Plage
        If cel.Value = 0 Then Rows(cel.Row).Hidden = True
    Next cel
    Set Plage = Application.Intersect(.UsedRange, .Rows(319))
    For Each cel In Plage
        If cel.Value = 0 Then Columns(cel.Column).Hidden = True
    Next cel
    .PrintPreview 'pour voir sans imprimer
    '.PrintOut ' pour imprimer directement
    .Rows.Hidden = False
End With
End Sub
 

cardi

XLDnaute Junior
Merci Robert, cela marche bien. Juste une chose, je souhaite ré-afficher les colonnes que l'on a masqué, j'ai ajouté :

.Columns.Hidden = False

Sauf que j'ai des colonnes masquées que je ne souhaite pas réafficher, je veux juste réafficher les colonnes avec la valeur 0 de la ligne 319.

Que faut-il faire?

Merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 925
Membres
103 676
dernier inscrit
Haiti