Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

VBA Code Fehler
#1
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
Antworten Top
#2
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?
Antworten Top
#3
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste