• Initiateur de la discussion Initiateur de la discussion jean paul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jean paul

Guest
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
 
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+
 
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 🙂
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
924
Réponses
3
Affichages
564
Réponses
1
Affichages
672
Réponses
10
Affichages
1 K
Réponses
0
Affichages
661
Réponses
0
Affichages
627
Retour