Clever-Excel-Forum

Normale Version: VBA Code Fehler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hall Leute,
ich benötige einen VBA Code der die Gruppierung schließt "+" oder öffnet "-"
Ich habe mir ein Piktogramm gesetzt und dem das Makro hinterlegt

Private Sub Grafik_5()
    ' Prüfen, ob die Gruppierung bereits ausgeblendet ist
    If Me.Shapes("Piktogramm").TextFrame2.TextRange.Text = "+" Then
        ' Gruppierung einblenden
        Me.Shapes.Range(Array("Gruppierung1", "Gruppierung2", "Gruppierung3")).Visible = True
        ' Piktogramm-Text aktualisieren
        Me.Shapes("Piktogramm").TextFrame2.TextRange.Text = "-"
    Else
        ' Gruppierung ausblenden
        Me.Shapes.Range(Array("Gruppierung1", "Gruppierung2", "Gruppierung3")).Visible = False
        ' Piktogramm-Text aktualisieren
        Me.Shapes("Piktogramm").TextFrame2.TextRange.Text = "+"
    End If
End Sub

Das TB. heißt "Projektnachverfolgung" 
Leider bekomme ich immer eine Laufzeitfehler 5
Könnt Ihr mir helfen das es für jede  Gruppierung und auch zukünftige hinzugefügten  Gruppierungen funktioniert?
Danke Gruß Phoeni
Wo befindet sich das Makro? 

Zitat:Könnt Ihr mir helfen das es für jede  Gruppierung und auch zukünftige hinzugefügten  Gruppierungen funktioniert?
Möglicherweise.  Dazu müßtest du deine festen Gruppen-Namen jedesmal neu einlesen in einer Schleife. Bist ja kein Neuling, deshalb kannst du das sicher recherchieren.   

Zitat:Leider bekomme ich immer eine Laufzeitfehler 5
In welcher Zeile?

Gibt es eine "Grafik_5" als Objekt?  Warum dieser Name für das Makro, das ein Objekt  namens "Piktogramm" bearbeitet?
Hi,

ich hab mit seinerzeit mal einen Ereigniscode geschrieben, der auf Doppelklick reagiert in Abhängigkeit davon, ob in der Zelle ein + oder ein - steht.
Vielleicht hilft Dir das ja weiter.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngRow As Long
If Target = "+" Or Target = "-" Then
    lngRow = Target.Row + 1
    Application.ExecuteExcel4Macro "SHOW.DETAIL(1," & lngRow & "," & IIf(Target = "+", "True", "False") & ")"
    If Target = "+" Then
        Target = "-"
    Else
        Target = "+"
    End If
    Cancel = True
End If
End Sub