Est-il possible de faire mieux?

Bonjour le forum

J'ai la macro ci-dessous pour un Double Click => Masquer Demasquer Lignes

Il faut la recopier dans la partie après .EntireRow.Hidden = Not Range

Pas moyen de faire mieux?

Merci pour vos éventuels retours

Cordialement

Sub AfficherMasquerLignes()
ActiveSheet.Unprotect
Range("15:16,22:24,29:31,38:38,45:46,52:54,59:61,68:68,75:76,82:84,89:91,98:98,105:106,112:114,119:121").EntireRow.Hidden = Not Range("15:16,22:24,29:31,38:38,45:46,52:54,59:61,68:68,75:76,82:84,89:91,98:98,105:106,112:114,119:121").EntireRow.Hidden   
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
    Scenarios:=True
End Sub

Bonjour,

Tu peux grouper les lignes via données grouper si tu le souhaites, ça permet de tout masquer ou afficher en appuyant sur un bouton, sinon, tu peux simplement tester que la ligne 15 est masquée.

Sub AfficherMasquerLignes()
ActiveSheet.Unprotect
Range("15:16,22:24,29:31,38:38,45:46,52:54,59:61,68:68,75:76,82:84,89:91,98:98,105:106,112:114,119:121").EntireRow.Hidden = Not Range("15").EntireRow.Hidden   
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
    Scenarios:=True
End Sub

Bonjour Ausecour

J'ai oublié de dire que je faisais un double click cellule F2 pour afficher masquer les lignes de la macro.

Je veux savoir si je peux faire mieux qu'une recopie

Cordialement

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A2:A8]) Is Nothing Then
        If Not Target.Comment Is Nothing Then LignesRegularisationColonnesExplications
    ElseIf Not Intersect(Target, [F2:F8]) Is Nothing Then
        If Not Target.Comment Is Nothing Then AfficherMasquerLignes
    End If
End Sub

Bonjour le forum

Mon fichier va jusqu'à la ligne 131. j'ai mis 132 dans les 2 parties de la macro

Ça fonctionne. Votre avis SVP?

Cordialement

Sub AfficherMasquerLignes()
ActiveSheet.Unprotect
Range("15:16,22:24,29:31,38:38,45:46,52:54,59:61,68:68,75:76,82:84,89:91,98:98,105:106,112:114,119:121,132:132").EntireRow.Hidden = Not Range("132:132").EntireRow.Hidden
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
    Scenarios:=True
End Sub

Bonjour,

Oui ça fonctionnera quand même, ton programme ne m'a pas l'air mal, mais je l'écrirais plutôt comme ça:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
        If Not Target.Comment Is Nothing Then 
            If Not Intersect(Target, [A2:A8]) Is Nothing Then
                call LignesRegularisationColonnesExplications
            ElseIf Not Intersect(Target, [F2:F8]) Is Nothing Then
                   call AfficherMasquerLignes
               end if
           end if
    End If
End Sub

Bonjour Ausecour

Merci pour tes réponses et je viens de tilter au même moment que tu avais raison à ta 1ère réponse.

Ah! quel C$N!!!

Un grand merci à toi

Bonne journée

Rechercher des sujets similaires à "possible mieux"