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

Forumthread: Dropdown-Feld Kalenderwochen dynamisch

Dropdown-Feld Kalenderwochen dynamisch
30.09.2016 15:37:18
Michq
Guten Tag zusammen,
es geht um folgende Datei:
https://www.herber.de/bbs/user/108528.xlsm
Ich habe im Tabellenblatt "PPMH Charts" eine Dropdown-Liste eingefügt (Kalenderwochen 1-51). Darunter befindet sich ein Chart/Diagramm.
Nun meine Frage:
Was muss ich machen damit die Daten automatisch in dem Diagramm angepasst werden? Die dazugehörigen Daten befinden sich im Tabellenblatt "Plant Data".
Zum Beispiel: Anwender wählt KW40 aus, dann sollen alle Daten von KW1-KW40 im Diagramm angezeigt werden. Also immer von KW1 bis zum ausgewählten Datum.
Vielen Dank schon einmal im Voraus.
Falls etwas unklar sein sollte, einfach kurz schreiben.
Gruß
Michq
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Mappe ist PW geschützt owT
30.09.2016 15:54:41
ChrisL
.
AW: Mappe ist PW geschützt owT
30.09.2016 16:16:43
Michq
Hi,
sorry mein Fehler.
Hier die neue Datei:

Die Datei https://www.herber.de/bbs/user/108529.xlsx wurde aus Datenschutzgründen gelöscht


Vielen Dank schon einmal im Voraus.
AW: Mappe ist PW geschützt owT
30.09.2016 17:00:38
ChrisL
Hi
Ein Dropdown konnte ich zwar nicht finden, aber hier...
https://www.herber.de/bbs/user/108531.xlsm
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Dim KW As Long, rng As Range
KW = Replace(Target, "KW", "") * 1
With Worksheets("PLANT DATA")
Set rng = .Range(.Range("D3"), .Cells(3, KW + 3))
End With
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.SeriesCollection(1).Values = "='PLANT DATA'!" & rng.Address
ActiveChart.SeriesCollection(2).Values = "='PLANT DATA'!" & rng.Offset(1, 0).Address
ActiveChart.SeriesCollection(3).Values = "='PLANT DATA'!" & rng.Offset(2, 0).Address
ActiveChart.SeriesCollection(4).Values = "='PLANT DATA'!" & rng.Offset(3, 0).Address
End If
End Sub

cu
Chris
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 17:18:19
Michq
Hi Chris,
top funktioniert soweit einwandfrei.
Ich habe in folgender Datei noch ein weiteres Charts eingefügt:
https://www.herber.de/bbs/user/108532.xlsm
Wie muss der Programmcode geändert werden, damit auch dieses Chart angepasst wird?
Die Datenquellen für das zweite Chart habe ich bereits angepasst.
Vielen Dank schon einmal im Voraus.
Gruß
Michq
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 17:30:19
ChrisL
ich muss weg, sonst am Montag wieder.
ändere mal im zweiten Diagramm den Datenbereich und zeichne den Code auf. Vermutlich kannst du es dann ableiten.
AW: Mappe ist PW geschützt owT
30.09.2016 17:38:49
Michq
Datenbereich habe ich schon geändert. Vl kannst ja am Montag mal schauen. Sonst wünsche ich dir ein schönes Wochenende.
Gruß
Michq
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 18:16:26
Luschi
Hallo Michq,
sowas geht auch ohne Makros, sondern durch definieren von Bereichsnamen und verwenden dieser Namen in den DATENREIHE(...)-Formeln.
(siehe Namensmanager: mit Tastenkombination Str+F3 aufrufen)
Die definierten Namen müssen Arbeitsblatt-Namen sein und keine Arbeitsmappen-Namen.
https://www.herber.de/bbs/user/108535.xlsx
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 20:26:45
Michq
Hallo Luschi,
danke für die Info.
Jedoch möchte ich nicht immer alle Kalenderwochen des ganzen Jahres sehen, sondern nur die Kalenderwochen die ich oben über das Dropdown-Feld ausgewählt habe.
Ist dies auch irgendwie möglich mit dem Namensmanager?
Danke dir schon einmal im Voraus.
Gruß
Michq
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 22:14:57
Luschi
Hallo Luschi,
Du siehst ja auch nur die entsprechenden KW's von 1 bis KW?
Wenn Du für den Namen 'KW_Target' den Bereich so änderst:

='PLANT DATA'!$D$5:INDEX('PLANT DATA'!$D$5:$BB$5;VERGLEICH('PPMH CHARTS'!$A$1; 'PLANT DATA'!$D$2:$BB$2;0)) 
dann ist Dein Wunsch erfüllt.
Das sieht aber nicht sehr gut aus, wenn nur wenige KW's (1-6 z.B) angezeigt werden.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 22:35:51
Michq
Hi Luschi,
habe nun folgende Datei:
https://www.herber.de/bbs/user/108537.xlsm
leider funktioniert diese noch nicht ganz so wie ich will. Es aktualisiert immer nur das "Chart 2". Chart 3 und Chart 4 werden nicht aktualisiert.
Wie kann ich es anstellen dass die beiden anderen auch aktualisiert werden bzw. was mache ich falsch?
Vielen Dank schon einmal im Voraus.
Gruß
Michq
Anzeige
AW: Mappe ist PW geschützt owT
30.09.2016 23:17:11
Luschi
Hallo Michq,
Du mußt die Zeilennummern anpassen:

KW = Replace(Target, "KW", "") * 1
KW1 = KW
KW2 = KW
With Worksheets("PLANT DATA")
Set rng = .Range(.Range("D3"), .Cells(3, KW + 3))
Set rng1 = .Range(.Range("D11"), .Cells(11, KW1 + 3))
Set rng2 = .Range(.Range("D19"), .Cells(19, KW2 + 3))
End With
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Mappe ist PW geschützt owT
01.10.2016 04:10:54
Michq
Hallo Luschi,
leider funktioniert es immer noch nicht.
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.SeriesCollection(1).Values = "='PLANT DATA'!" & rng1.Address
ActiveChart.SeriesCollection(2).Values = "='PLANT DATA'!" & rng1.Offset(1, 0).Address
ActiveChart.SeriesCollection(3).Values = "='PLANT DATA'!" & rng1.Offset(2, 0).Address
ActiveChart.SeriesCollection(4).Values = "='PLANT DATA'!" & rng1.Offset(3, 0).Address

Der Debugger meldet, dass hier etwas nicht stimmt.
Hier nochmals die Datei:
https://www.herber.de/bbs/user/108538.xlsm
Wo liegt der Fehler? Es aktualisiert immer nur das Chart 2 und Chart 3 und Chart 4 werden nicht aktualisiert bzw. es erscheint der Laufzeitfehler 1004.
Danke für deine Hilfe, hoffe du kannst mir noch weiterhelfen.
Gruß
Michq
Anzeige
tolle Betreffs
30.09.2016 20:36:44
WF
.
AW:super beitrag
30.09.2016 21:29:28
Daniel
und vor allem mit soviel wohlformuliertem Inhalt.
Danke WF
Gruß Daniel
Anzeige
AW: Kaffee
30.09.2016 21:47:05
Satz
.
Richtig! Wenn im Betreff schon steht, dass ...
01.10.2016 01:20:33
Luc:-?
…die (Bsp-)Mappe geschützt ist und das auch noch ständig wiederholt wird, muss man sich den BT gar nicht erst ansehen. Bequem­lich- bzw Nach­lässig­keit kann so schnell zur Falle wdn → kein Lese­Anreiz! Peinlich wird's, wenn Schreib­fehler oder andere zum jewei­ligen BT unpassende Betreffs wieder­holt wdn.
In VBA wären dem die warthog-codes vglbar, Codes, die mit Pseudo-UN-Präfixen „verzierte“ PgmVariablen enthalten, die uU vor­ge­ben etwas zu sein, was sie dann tatsächlich nicht sind. Im realen Leben nennt man so etwas eine Mogel­packung! Das trifft ggf auch hierauf und den eMail-Verkehr zu. Allzuviel Service kann folglich zu Gedanken- u/o Fantasie­Losig­keit (ver-)führen, was aktuell von Politik und Ethik-Kommission für das führer­lose Kfz befürchtet wird und in unserer Gesellschaft schon an vielen anderen Stellen, nicht zuletzt in den Medien, die aller­dings mitunter eine merk­würdig realitäts­ferne Fantasie entwickeln, spürbar wird.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Dropdown-Felder für Kalenderwochen in Excel


Schritt-für-Schritt-Anleitung

  1. Erstelle die Dropdown-Liste:

    • Gehe zu dem Tabellenblatt, in dem du das Dropdown-Feld einfügen möchtest (z. B. "PPMH Charts").
    • Wähle die Zelle aus, in der das Dropdown erscheinen soll (z. B. A1).
    • Gehe zu Daten > Datenüberprüfung.
    • Wähle Liste aus und gib die Kalenderwochen (KW1, KW2, ..., KW51) ein.
  2. Verknüpfe das Dropdown mit dem Diagramm:

    • Aktiviere das Visual Basic for Applications (VBA) Fenster mit Alt + F11.
    • Füge den folgenden Code in das entsprechende Arbeitsblatt-Modul ein:
      Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address(0, 0) = "A1" Then
           Dim KW As Long, rng As Range
           KW = Replace(Target, "KW", "") * 1
           With Worksheets("PLANT DATA")
               Set rng = .Range(.Range("D3"), .Cells(3, KW + 3))
           End With
           ActiveSheet.ChartObjects("Chart 2").Activate
           ActiveChart.SeriesCollection(1).Values = "='PLANT DATA'!" & rng.Address
           ActiveChart.SeriesCollection(2).Values = "='PLANT DATA'!" & rng.Offset(1, 0).Address
           ActiveChart.SeriesCollection(3).Values = "='PLANT DATA'!" & rng.Offset(2, 0).Address
           ActiveChart.SeriesCollection(4).Values = "='PLANT DATA'!" & rng.Offset(3, 0).Address
       End If
      End Sub
    • Schließe das VBA-Fenster und teste das Dropdown.
  3. Diagramm anpassen:

    • Stelle sicher, dass die Diagramme in deinem Arbeitsblatt korrekt mit den Daten aus dem Tabellenblatt "Plant Data" verknüpft sind.

Häufige Fehler und Lösungen

  • Fehler: Diagramm aktualisiert sich nicht:

    • Überprüfe, ob der Code im richtigen Arbeitsblatt-Modul eingefügt ist. Der Code muss im Modul des Arbeitsblattes sein, wo das Dropdown-Feld sich befindet.
  • Fehler: Laufzeitfehler 1004:

    • Dies kann auftreten, wenn die angegebenen Zellbereiche nicht korrekt sind. Überprüfe die Zellreferenzen im VBA-Code und stelle sicher, dass sie existieren.

Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die Nutzung von Bereichsnamen:

  1. Definiere einen Namen für den Datenbereich, der sich dynamisch anpasst. Benutze die Tastenkombination Strg + F3, um den Namensmanager aufzurufen.
  2. Erstelle eine Formel wie:
    =OFFSET('PLANT DATA'!$D$5, 0, 0, 1, MATCH('PPMH CHARTS'!$A$1, 'PLANT DATA'!$D$2:$BB$2, 0))
  3. Verwende diesen Bereichsnamen in deiner Diagrammquelle.

Praktische Beispiele

  • Dropdown-Feld mit dynamischem Diagramm:

    • Erstelle ein Dropdown-Feld in Zelle A1. Wähle eine KW aus, und das Diagramm aktualisiert sich automatisch, um die Werte bis zur gewählten KW anzuzeigen.
  • Mehrere Diagramme:

    • Um mehrere Diagramme zu aktualisieren, musst du weitere ActiveChart.SeriesCollection-Zeilen hinzufügen, die auf die verschiedenen Diagramme verweisen.

Tipps für Profis

  • Nutze die Excel Dropdown Tastenkombination: Alt + Down Arrow öffnet eine Dropdown-Liste in einer ausgewählten Zelle.
  • Verwende benannte Bereiche effektiv für eine bessere Übersicht und Anpassbarkeit deiner Diagramme.
  • Dokumentiere die VBA-Codes gut, damit du sie bei Bedarf schnell anpassen kannst.

FAQ: Häufige Fragen

1. Wie kann ich das Dropdown-Feld anpassen?
Du kannst die Liste im Datenüberprüfungsdialog anpassen, um weitere Kalenderwochen hinzuzufügen oder zu entfernen.

2. Funktioniert dies in allen Excel-Versionen?
Die beschriebenen Methoden sollten in Excel 2010 und neueren Versionen funktionieren. VBA kann jedoch je nach Excel-Version variieren.

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