Afficher lignes par double clic

  • Initiateur de la discussion Initiateur de la discussion pad01
  • 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 !

pad01

XLDnaute Occasionnel
Bonsoir Forum,
J'ai trouvé une macro qui fait apparaitre ou cache les sous-titres après avoir double cliquer sur le titre (macro de Jacques Boisgontier). Elle répond parfaitement à ma demande.
Le soucis est lorsque le titre n'a pas de sous-titre, cela provoque un message d'erreur (Titre4).
Comment faire pour ne plus avoir ce message.
Cordialement
 

Pièces jointes

Re : Afficher lignes par double clic

Bonjour pad,

remplace ton code par ceci:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo fin
   If ActiveCell.Column = 2 And ActiveCell.Font.Bold = True Then
     If Not ActiveCell.Offset(1, 0).EntireRow.Hidden Then
        i = 1
        Do While Not ActiveCell.Offset(i, 0).Font.Bold And Not IsEmpty(ActiveCell.Offset(i, 0))
          i = i + 1
        Loop
        ActiveCell.Offset(1, 0).Resize(i - 1).EntireRow.Hidden = True
      Else
        i = 1
        Do While ActiveCell.Offset(i, 0).EntireRow.Hidden
          i = i + 1
        Loop
        ActiveCell.Offset(1, 0).Resize(i - 1).EntireRow.Hidden = False
     End If
     Cancel = True
   End If
fin:
Exit Sub
End Sub
à+
Philippe
 
Re : Afficher lignes par double clic

Bonsoir,
Tu peux tester la valeur de i par exemple
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If ActiveCell.Column = 2 And ActiveCell.Font.Bold = True Then
     If Not ActiveCell.Offset(1, 0).EntireRow.Hidden Then
        i = 1
        Do While Not ActiveCell.Offset(i, 0).Font.Bold And Not IsEmpty(ActiveCell.Offset(i, 0))
          i = i + 1
        Loop
        If i > 1 Then ActiveCell.Offset(1, 0).Resize(i - 1).EntireRow.Hidden = True
      Else
        i = 1
        Do While ActiveCell.Offset(i, 0).EntireRow.Hidden
          i = i + 1
        Loop
        If i > 1 Then ActiveCell.Offset(1, 0).Resize(i - 1).EntireRow.Hidden = False
     End If
     Cancel = True
   End If
End Sub
A+
kjin
 
- 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

Discussions similaires

M
Réponses
6
Affichages
2 K
Retour