Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm einblenden per VBA

Diagramm einblenden per VBA
03.02.2009 09:40:32
berni
Guten Morgen Excellenzen!
Bin wieder einmal bei einem VBA-Problemchen.
Ich habe mir zwar in einem anderen File schon zwei Option-Buttons zurecht gerichtet, durch welche ich bei Anklicken unterschiedliche Diagramme herein hole. Diese habe ich jeweils pro Optionbutton mit dem Code

Private Sub OptionButton1_Click()
If Range("b2").Value = True Then
Sheets("Übersicht").ChartObjects(1).Visible = True
Sheets("Übersicht").ChartObjects(2).Visible = False
End If
End Sub


bewerkstelligt.
Nun habe ich versucht, mit 4 Optionbuttons den Code etwas anders darzustellen.


Private Sub Worksheet_Calculate()
ActiveSheet.Shapes("Diagramm 1").Visible = OptionButton1.Value
ActiveSheet.Shapes("Diagramm 2").Visible = OptionButton2.Value
ActiveSheet.Shapes("Diagramm 3").Visible = OptionButton3.Value
ActiveSheet.Shapes("Diagramm 4").Visible = OptionButton4.Value
End Sub


Aber irgendwie rührt sich hier nichts. Wo liegt hier der gordische Knoten?
Vielleicht hat jemand von Euch einen heißen Tipp?
Schöne Grüße
Berni

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm einblenden per VBA
03.02.2009 10:14:00
Beverly
Hi Berni,
hast du für die OptionButtons eine Zellverknüpfung eingerichtet? Schreibe zusätzlich in eine beliebige Zelle die Funktion =ZUFALLSZAHL().
Dennoch verstehe ich nicht, weshalb du deinen Code nicht in das Klick-Ereignis jedes OptionsButton schreiben willst - es sind doch wahrlich nicht viele Zeilen.


Anzeige
AW: Diagramm einblenden per VBA
03.02.2009 11:13:01
berni
Hallo Karin!
Zellverknüpfung der einzelnen Optionbuttons sind in A10:A14 vorgegeben. Ich vermute auch deshalb die Überprüfung mit ZUFALLSZAHL(). Die Buttons selbst funktionieren ja. Je nach Anklicken ergeben sie in den damit verknüpfen Zellen den WAHR-Wert.
Aber andererseits hast Du ja recht, den ursprünglichen Code viermal in das jeweilige Clickereignis kopieren ist vielleicht einfacher.
Nochmals vielen Dank für Deine Hilfe
Schöne Grüße
Berni
Anzeige
AW: Diagramm einblenden per VBA
03.02.2009 11:34:17
Beverly
Hi Berni,
richtig erkannt - die Änderung eines Zellwertes durch die Zellverknüpfung löst kein Ereignis aus, deshalb die Verwendung von ZUFALLSZAHL(). Diese wird durch Änderung der Zellverknüpfung neu berechnet, was dann das Calculate-Ereignis auslöst.


Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Diagramm einblenden per VBA


Schritt-für-Schritt-Anleitung

  1. Option-Buttons erstellen: Füge zuerst die Option-Buttons in dein Excel-Dokument ein. Gehe dazu auf die Registerkarte "Entwicklertools" und wähle "Einfügen". Wähle die Option-Buttons aus und platziere sie auf deinem Arbeitsblatt.

  2. Zellverknüpfung einrichten: Verknüpfe jeden Option-Button mit einer Zelle (z.B. A10:A14). Klicke mit der rechten Maustaste auf den Button, wähle "Steuerelement formatieren" und trage unter "Zellverknüpfung" die entsprechende Zelle ein.

  3. VBA-Code implementieren: Öffne den VBA-Editor (ALT + F11) und füge den folgenden Code in das entsprechende Arbeitsblatt ein:

    Private Sub Worksheet_Calculate()
       ActiveSheet.Shapes("Diagramm 1").Visible = OptionButton1.Value
       ActiveSheet.Shapes("Diagramm 2").Visible = OptionButton2.Value
       ActiveSheet.Shapes("Diagramm 3").Visible = OptionButton3.Value
       ActiveSheet.Shapes("Diagramm 4").Visible = OptionButton4.Value
    End Sub
  4. Zufallszahl zur Berechnung hinzufügen: Füge in eine beliebige Zelle die Funktion =ZUFALLSZAHL() ein. Diese sorgt dafür, dass die Berechnung und damit das Calculate-Ereignis ausgelöst wird.

  5. Testen: Klicke auf die Option-Buttons und beobachte, ob die Diagramme entsprechend angezeigt oder verborgen werden.


Häufige Fehler und Lösungen

  • Diagramme werden nicht angezeigt: Überprüfe, ob die Diagramme tatsächlich im Arbeitsblatt vorhanden sind und ob die Namen korrekt in den Code eingefügt wurden.

  • Zellverknüpfung fehlt: Achte darauf, dass die Option-Buttons mit den Zellen A10:A14 verknüpft sind. Andernfalls wird das Calculate-Ereignis nicht ausgelöst.

  • Fehlende Sichtbarkeit: Stelle sicher, dass die Diagramme nicht auf "Ausblenden" gesetzt sind. Überprüfe die Sichtbarkeitseinstellungen in den Diagrammeigenschaften.


Alternative Methoden

Eine alternative Methode zum Einblenden und Ausblenden von Diagrammen ist die Verwendung von Schaltflächen anstelle von Option-Buttons. Du kannst die Schaltflächen mit Makros verknüpfen, die direkt die Sichtbarkeit der Diagramme steuern.

Sub DiagrammEinblenden()
    Sheets("Übersicht").ChartObjects("Diagramm 1").Visible = True
    Sheets("Übersicht").ChartObjects("Diagramm 2").Visible = False
End Sub

Praktische Beispiele

  • Beispiel 1: Du hast zwei Diagramme, die die Verkaufszahlen von zwei verschiedenen Produkten zeigen. Verwende die Option-Buttons, um zwischen den Diagrammen hin- und herzuschalten.

  • Beispiel 2: Wenn du eine Analyse mehrerer Zeiträume durchführen möchtest, kannst du mit mehreren Diagrammen arbeiten, die jeweils einen bestimmten Zeitraum darstellen. Die Benutzer können dann durch die Option-Buttons das gewünschte Diagramm auswählen.


Tipps für Profis

  • Verwende benannte Bereiche: Anstatt die Diagramm-Namen direkt im Code zu verwenden, kannst du benannte Bereiche einführen. Das macht deinen Code flexibler und leichter zu warten.

  • Debugging: Nutze die Debugging-Funktion im VBA-Editor, um eventuelle Probleme im Code schnell zu identifizieren. Setze Haltepunkte, um den Code Schritt für Schritt zu durchlaufen.

  • Dokumentation: Kommentiere deinen VBA-Code. Das hilft nicht nur dir, sondern auch anderen, die deinen Code später lesen.


FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code nicht? Stelle sicher, dass du die richtigen Namen für die Diagramme und die Option-Buttons verwendest. Überprüfe auch, ob die Zellverknüpfungen korrekt sind.

2. Kann ich mehr als vier Diagramme einblenden? Ja, du kannst beliebig viele Diagramme einfügen. Achte jedoch darauf, dass du die Logik im VBA-Code entsprechend anpasst, um die Sichtbarkeit aller Diagramme zu steuern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige