Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenwahl via Checkboxen für Diagramm

Forumthread: Datenwahl via Checkboxen für Diagramm

Datenwahl via Checkboxen für Diagramm
10.04.2013 09:53:16
Horst
Moin moin Leute,
ich möchte ein Makro schreiben, welches ermöglicht die Datenreihen, welche in einem Diagramm erscheinen sollen, via Checkboxen vorher auszuwählen. Ich erhoffe mir Hinweise, wie ich dieses Problem am geschicktesten angehen kann.
Also, der derzeitige Stand ist, dass ich ein Excel-Sheet mit mehreren Datenkolonnen habe und diese 'dynamisch' in einem Diagramm darstellen will. Nach einem Click auf einen Button, öffnet sich eine Userform1, in welcher 19 Datenreihen liegen. Diese können vom Nutzer über eine Checkbox ausgewählt werden. Danach frage ich, ob auf der Abszisse (standardmäßig) die Zeit oder eine andere Datenreihe aufgefasst werden soll. Sollte es sich um eine andere Datenreihe handeln, öffnet sich eine Userform2, in welcher man aus 19 OptionButtons (die gleichen wie in Userform1) einen auswählen kann.
Tja, so weit so gut. Ich würde das ganze gerne über eine Schleife ansteuern, in welcher geprüft wird, welche z.B. Checkboxen ausgewählt sind. Nun ist hier die Frage wie ich eine Checkbox mit einer speziellen Spalte eines Tabellenblatts kopple und ob ich diese quasi in den Zwischenspeicher bzw. in der Implementierung der Datenreihen des Diagramms direkt einbinden kann.
Oder, Variante 2, muss ich diese in eine neues Tabellenblatt kopieren und dann daraus ein Diagramm zeichen?
Oder, Variante 3, einfach all jene Spalten, welche nicht ausgewählt wurden ausblenden vom existierenden Tabellenblatt, Diagramm zeichen und dann wieder alles einblenden?
Gerade Variante 2 hört sich für mich eher unchique an, Variante 1 ziemlich kompliziert. Gibt es hier einen nützlichen Tipp von euch mein Problem zu lösen?
Und weiter: Kann ich die Checkboxen über eine Schleife ansprechen?
Sprich i=1 bis 19 erreicht und eingebunden über Checkbox & i = True?
Genung des Schreibens, vielen Dank für eure Hinweise!

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenwahl via Checkboxen für Diagramm
10.04.2013 10:22:04
Rudi
Hallo,
Und weiter: Kann ich die Checkboxen über eine Schleife ansprechen?
Sprich i=1 bis 19 erreicht und eingebunden über Checkbox & i = True?
for i= 1 to 19
if Controls("CheckBox" &i) then
'mach was
end if
next i

keine Vorstellung zum Rest
Gruß
Rudi

Anzeige
AW: Datenwahl via Checkboxen für Diagramm
10.04.2013 12:54:27
Horst
Vielen Dank für deine Antwort!
Also es wäre ja denkbar, dass ich wirklich die Spalten, welche nicht benötigt werden ausblende und von den verbliebenen das Diagramm zeichnen lasse. Das würde heißen, dass ich in deinen Code eine False-Aussage einbinden muss. Wie würde ich dies tun? Und wie schaffe ich es, dass z.B. Checkbox1 mit Spalte A:A verbunden ist? Über einen Tag?
Muchas Gracias!

Anzeige
AW: Datenwahl via Checkboxen für Diagramm
10.04.2013 13:00:41
Horst
So ungefähr so:
Sub Checkbox_check()
For i = 1 To 19
If Controls("CheckBox" & i) = False Then
Range("Tabellenblatt2").Select
Column(xy).Hidden = True
End If
Next i
End Sub

Die Verbindung zur Spalte ist leicht lückenhaft...

AW: Datenwahl via Checkboxen für Diagramm
10.04.2013 13:10:42
Rudi
Hallo,
angehakt=Spalte sichtbar
  myArr = Array(0, 1, 3, 5, 7, 11, 13, 14, 15, 16, 17) 'ergänzen!!! erste muss 0 sein
For i = 1 To 19
Sheets("Tabelle2").Columns(myArr(i)).Hidden = Not Controls("CheckBox" & i)
Next i
Gruß
Rudi

Anzeige
AW: Datenwahl via Checkboxen für Diagramm
10.04.2013 13:50:33
Horst
Hey Rudi,
vielen Dank! Meine Code sieht jetzt wie folgt aus:
Private Sub CommandButton1_Click()
Dim myArr As Integer
Dim i As Integer
myArr = Array(0, 1, 3, 5, 7, 11, 13, 14, 15, 16, 17) 'ergänzen!!! erste muss 0 sein
For i = 1 To 19
Sheets("aufgearbeitete Daten").Columns(myArr(i)).Hidden = Not Controls("CheckBox" & i)
Next i
End Sub
Allerdings erhalte ich eine Nachricht mit dem Tenor "Erwartet:Datenfeld". Markiert ist dabei das "Controls".
Angenommen Checkbox1 spricht Spalte 1 an,Checkbox 2 Spalte 2 und Checkbox 3 Spalte 1.
Würde das dann so aussehen: myArr = Array(0, 3, 2, 1)?

Anzeige
AW: Datenwahl via Checkboxen für Diagramm
10.04.2013 16:29:35
Horst
Ich habe mittlerweile eine Lösung gefunden:
Private Sub UserForm_Initialize()
For i = 1 To 19
With Controls("CheckBox" & i)
' Bezeichnung aus Überschriften der Zeile 1 und Spalte in Tag-Eigenschaft ermitteln
.Caption = Worksheets("Tabelle2").Cells(1, CLng(.Tag)).Value
' Wert der Kontrollkästchen nach Anzeigezustand der Spalten einstellen
.Value = Not Worksheets("Tabelle2").Columns(CLng(.Tag)).Hidden
End With
Next i
End Sub
Private Sub CommandButton1_Click()
For i = 1 To 19
With Controls("CheckBox" & i)
' Spalte ausblenden, wenn CheckBox deaktiviert
Worksheets("Tabelle2").Columns(CLng(.Tag)).Hidden = Not .Value
End With
Next i
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
In der UserForm sollte man die einzelnen Checkboxes noch mit Tags versehen, entsprechend der Nummerierung der Spalte.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datenwahl via Checkboxen für Diagramm in Excel


Schritt-für-Schritt-Anleitung

  1. Erstelle ein Excel-Sheet mit den Daten, die du in deinem Diagramm anzeigen möchtest. Stelle sicher, dass jede Datenreihe in einer eigenen Spalte steht.

  2. Füge Checkboxen hinzu: Gehe zu „Entwicklertools“ -> „Einfügen“ und wähle „Checkbox“ aus. Platziere 19 Checkboxen für jede Datenreihe, die du auswählen möchtest.

  3. Verlinke Checkboxen mit Spalten: Vergib den Checkboxen eine Tag-Eigenschaft, die der Spaltennummer entspricht, auf die sie sich beziehen.

  4. Erstelle die UserForms: Du benötigst zwei UserForms – eine für die Checkbox-Auswahl der Datenreihen und eine für die Auswahl der Abszisse.

  5. Schreibe das Makro: Nutze den folgenden VBA-Code, um die Sichtbarkeit der Spalten basierend auf den Checkboxen zu steuern:

    Private Sub CommandButton1_Click()
       For i = 1 To 19
           With Controls("CheckBox" & i)
               Worksheets("Tabelle2").Columns(CLng(.Tag)).Hidden = Not .Value
           End With
       Next i
    End Sub
  6. Aktualisiere das Diagramm: Nach der Auswahl der Checkboxen kannst du das Diagramm dynamisch aktualisieren, um nur die ausgewählten Datenreihen anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Erwartet: Datenfeld"

    • Lösung: Stelle sicher, dass du die Controls korrekt ansprichst. Verwende Me.Controls anstelle von Controls.
  • Fehler: Diagramm zeigt falsche Daten

    • Lösung: Überprüfe, ob die Checkboxen richtig mit den Spalten verknüpft sind. Achte darauf, dass du die richtige Tag-Eigenschaft verwendest.
  • Fehler: Checkboxen bleiben aktiviert

    • Lösung: Stelle sicher, dass die Checkboxen beim Initialisieren der UserForm den korrekten Status basierend auf der Sichtbarkeit der Spalten erhalten.

Alternative Methoden

  • Datenreihen ausblenden: Anstatt Checkboxen zu verwenden, kannst du auch die Datenreihen manuell in einem Dialogfeld auswählen und die nicht benötigten Spalten direkt ausblenden.

  • Verwendung von Dropdown-Listen: Du könntest auch Dropdown-Listen verwenden, um die Auswahl der Datenreihen zu vereinfachen, anstatt Checkboxen zu verwenden.


Praktische Beispiele

Ein einfaches Beispiel für einen VBA-Code, der Checkboxen verwendet, um Datenreihen in einem Excel-Diagramm auszublenden:

Private Sub CommandButton1_Click()
    Dim myArr As Variant
    myArr = Array(1, 2, 3, 4, 5) ' Beispielhafte Spaltenindizes
    For i = 1 To UBound(myArr)
        Worksheets("Tabelle2").Columns(myArr(i)).Hidden = Not Controls("CheckBox" & i).Value
    Next i
End Sub

In diesem Beispiel wird das Diagramm nur die Spalten anzeigen, die über die Checkboxen ausgewählt wurden.


Tipps für Profis

  • Optimierung des Codes: Nutze Arrays, um die Spaltenindizes zu speichern, um den Code effizienter und leichter wartbar zu machen.

  • Verwendung von hx-diagramm Rechner: Wenn du komplexere Berechnungen für dein Diagramm benötigst, kannst du externe Tools wie den hx-diagramm Rechner in Betracht ziehen.

  • Dokumentation und Kommentare: Kommentiere deinen Code gründlich, um die Lesbarkeit zu verbessern, besonders wenn du mit mehreren UserForms arbeitest.


FAQ: Häufige Fragen

1. Wie verknüpfe ich Checkboxen mit Spalten? Du kannst die Tag-Eigenschaft der Checkboxen verwenden, um die Spaltennummer anzugeben, die sie steuern sollen.

2. Kann ich die Checkboxen in einer Schleife ansprechen? Ja, du kannst eine Schleife verwenden, um alle Checkboxen durchzugehen und deren Status zu überprüfen, wie im Beispiel gezeigt.

3. Welche Excel-Version benötige ich? Die beschriebenen Funktionen und Codes sollten in den meisten modernen Excel-Versionen, einschließlich Excel 2013 und höher, funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige