Impression plage

jean paul

XLDnaute Junior
Bonsoir

Dans ce code je lance une impression d'une plage suite à un masquage de certaine ligne ,j'aimerais ne pas lancer l'impression si la plage1 est vide



On Error Resume Next
x = 0
x = Application.Match(Cell, PlageCodes, 0)


If x = 0 Then Cell.EntireRow.Hidden = True
Next Cell

Set Plage1 = _
Sheets("HS").Range("A2:C" & Sheets("HS").Range("C60").End(xlUp).Row)



Plage1.PrintOut 'imprimer les lignes non masquées

Sheets("HS").Rows.Hidden = False 'réafficher toutes les lignes

End Sub
merci de vos réponses ,bonne soirée à tous
JP
 
G

Guest

Guest
Re : Impression plage

Bonjour JeanPaul,

tu peux essayer ceci, en sachant qu'une cellule contenant une chaine de caractère vide "" (renvoyée par une formule par exemple) n'est pas compté comme vide, tout comme une éventuelle formule ne renvoyant rien.

la Ligne On error est là car une erreur est levée si toutes les cellules de la plage comporte quelque chose.

Code:
On Error Resume Next
x = Plage1.SpecialCells(xlCellTypeBlanks).Count
On Error Goto 0
  If x = Plage1.Cells.Count Then
      'La plage est vide
  Else
     Plage1.PrintOut
  End if

A+
 
C

Compte Supprimé 979

Guest
Re : Impression plage

Bonsoir Jean-Paul,

Essaye peut-être avec
Code:
...
If Plage1.Rows.Count > 1 Then
  Plage1.PrintOut 'imprimer les lignes non masquées
End If
...

A+

Edit : Oups, bonsoir Hasco, enchanté de te croiser sur le fil :)
 

Cousinhub

XLDnaute Barbatruc
Re : Impression plage

Bonsoir,

Tout d'abord, pour saluer Hasco et Bruno :)):))

Et ensuite, pour apporter ma pierre à l'édifice......

Jean-Paul, comme il manque le début de ton code, on ne sait pas si tes titres sont dans la ligne 1 ou 2

Si tes titres sont dans la ligne 1, tu peux utiliser ce code, qui fonctionne même si la ligne 2 est masquée (code qu'on pourrait adapter, en fonction de la ligne de titre....)

Code:
Sub hub()
If Range("A:A").SpecialCells(xlCellTypeVisible).Areas(1).Count > 1 Then
    Set Plage1 = _
        Sheets("HS").Range("A1:C" & Sheets("HS").Range("C60").End(xlUp).Row)
    Plage1.PrintPreview
ElseIf Range("A:A").SpecialCells(xlCellTypeVisible).Areas(2).Item(1) <> "" Then
    Set Plage1 = _
        Sheets("HS").Range("A1:C" & Sheets("HS").Range("C60").End(xlUp).Row)
    Plage1.PrintPreview
End If
Sheets("HS").Rows.Hidden = False 'réafficher toutes les lignes
End Sub

Bonne soirée à tous, et Bon Vikend......

Edit : Il faut bien sûr remplacer PrintPreview par PrintOut
 

Statistiques des forums

Discussions
312 581
Messages
2 089 919
Membres
104 307
dernier inscrit
Diet