Double clic pour dégrouper

bonsoir

est il possible de simplifier ma macro before doubleclick pour éviter la répétition ( dans fichier d'origine grand nombre de ligne groupées)

ce que je souhaite, en faisant un double clic dans une cellule de la colonne F, obtenir l'ouverture des cellules groupées sous jacentes

exemple double clic dans cellule F9 ouverture des lignes 10 à 63 groupées

voici cette macro répétitive (débutant je n'ai pas trouvé une autre solution

merci de votre aide

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Bonjour,

A tester.

Cdlt.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Not Application.Intersect(Target, Range("F9,F64,F91,F114")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
       ' Cancel = True
        Select Case Target.Address
            Case "$F$9"
                With Rows("10:63")
                    If Not .Hidden Then .Hidden = True Else .Hidden = False
                End With
            Case "$F$64"
                With Rows("65:90")
                    If Not .Hidden Then .Hidden = True Else .Hidden = False
                End With
            Case "F$91"
                With Rows("92:113")
                    If Not .Hidden Then .Hidden = True Else .Hidden = False
                End With
            Case "$F$114"
                With Rows("115:140")
                    If Not .Hidden Then .Hidden = True Else .Hidden = False
                End With
        End Select
    End If

End Sub

Bonjour,

Le code de Jean-Eric est plus propre, mais il comporte 2 lignes de code de plus que le tien.

Gelinotte

Bonjour,

Pour raccourcir

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim i%, li, lis
    If Target.Column = 6 Then
        li = Array(9, 64, 91, 114)
        lis = Split("10:63;65:90;92:113;115:140", ";")
        For i = 0 To UBound(li)
            If Target.Row = li(i) Then
                Rows(lis(i)).Hidden = Not Rows(lis(i)).Hidden
                Cancel = True
                Exit For
            End If
        Next i
    End If
End Sub

A+

merci à vous tous

ce qu'il ya de formidable sur ce forum

c'est justement cela , un échange permanent de savoir

Jean Eric merci pour ton code qui va me servir dans une autre macro sur lequel je butais

MF Ferrand je suis bluffé par ce "raccourci" qui encore une fois fonctionne à merveille

juste une question dans lis pourquoi le ";" histoire de bien comprendre

merci de votre aide

Bonjour,

Tiens, c'est vrai que j'aurais pu rester plus simple là !!

La fonction Split permet de transformer une chaîne en tableau d'éléments en la fractionnant selon un séparateur. Par défaut, le séparateur est l'espace, mais lorsqu'on veut fractionner une chaîne en éléments qui contiennent eux-mêmes des espaces, il convient de choisir un autre séparateur (n'apparaissant pas dans chacun des éléments) : ";" s'avère être l'un des plus pratique à utiliser et l'est assez fréquemment (ici cela n'était pas nécessaire puisque les éléments mis en tableaux sont des chaînes sans espaces...)

Cordialement

merci beaucoup MF FERRAND

pour cette réponse très claire et de cette pédagogie qui m'a permis de découvrir la fonction split

bonne journée

Rechercher des sujets similaires à "double clic degrouper"