Diagramm dynamisch halten mit VBA
#1
Hallo Zusammen,

ich würde mich sehr freuen, wenn ihr mir weiterhelfen könnt. Ich habe heute schon während meiner Arbeitszeit 3-4 Stunden vergeblich im Internet nach einer einfach Lösung zum folgenden Thema geschaut.

Ich möchte ein einfaches Excel-Diagramm dynamisch halten. Ich weiß, dass man hier mit Bereich verschieben arbeiten kann, diese Lösung gefällt mir allerdings nicht. Im Prinzip habe ich eine Übersicht auf der 6 Diagramme sich auf 6 Tabellen beziehen, bei denen sich die Diagramme automatisch durch ein Dropdown-Auswahlfeld füllen. Problematisch ist allerdings, dass die Tabellen unterschiedlich lang sein können und daher der Datenbereich für das Diagramm dynamisch sein muss. Mir schwebt da schon etwas vor, aber ich weiß nicht wie man das in VBA umsetzen kann.

Folgender Auszug:

[
Bild bitte so als Datei hochladen: Klick mich!
]

Für den gefüllten Bereich in der Tabelle frage ich in Zelle D3 ab, wie groß dieser ist. Und genau diesen Code möchte ich gern auch als Makro dem Diagramm zuweisen. Wenn nun nämlich noch Bsp. im nächsten Monat Frau Richter hinzukommt, ergibt meine Berechnung für den Bereich in D3 dann "B5-D10". Damit kann ich das Diagramm schön flexibel halten, nur fehlt mir leider der VBA-Code hierfür. Ich hatte es heute mehrfach probiert, komme aber beim Debuggen nicht weiter.

Es wäre absolut genial, wenn ich hierfür Hilfe bekommen könnte.

Einer weitere Frage habe ich noch: Kann man mittels VBA auch ein Bild aus einem anderen Tabellenblatt kopieren und dann neben das Diagramm stellen. Das müsste ja dann über das Formularsteuerelement DropDown eingeschleust werden. Hierzu würde mir nur einfallen, dass ich für eine begrenzte Anzahl an DropDown-Auswahlmöglichkeiten ich die zugeordneten Bilder nur in das Tabellenblatt mit dem Diagramm einfügen kann, diese Bilder jedoch ausblende und ich dann bei Aufruf über das Formularsteuerelement die entsprechende Zeile einblende...

Falls ihr hierzu eine andere Idee habt, würde ich mich auch freuen, wenn ihr mir weiterhelfen könnt.

Ich danke euch schon mal im Voraus!

Beste Grüße
Olli


Angehängte Dateien
.xlsx   Excel_VBA.xlsx (Größe: 11,27 KB / Downloads: 5)
Top
#2
Hallo Olli,

wie befüllst und leerst du denn die Wertebereiche automatisch über ein Dropdown auswahlfeld. Das konnte ich in deiner Beispieldatei nicht erkennen.

Am einfachsten hält man ein Diagramm dynamisch, wenn man den Wertebereich als benannte Tabelle einrichtet.

Die zweite Frage habe ich nicht verstanden.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#3
Hi,
also das Dropdown Auswahlfeld habe ich in der Datei nicht drin, dass ist ja nur ein einfaches abgewandeltes Beispiel. Grundsätzlich geht es mir ja um den vba code.

Viele Grüße
Top
#4
Hallo Olli,

für meine Empfehlung ist es schon relevant.

Wenn du die Tabellenwerte mit VBA einträgst wäre meine Empfehlung die Grafik auf benannte Tabellen aufzubauen und beim Eintragen der Tabellenwerte den Bereich der benannten Tabellen anzupassen.

Wenn du aber in einem grösseren Bereich  Formlen eingegeben hast, die im unteren Bereich häufig "" ergeben muss man über VBA wohl direkt die Diagrammparameter anpassen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#5
Hallöchen,

die Sache mit den Bildern habe ich auch schon so ähnlich gemacht. Ich habe in einem Blatt mehrere Bilder eingefügt und unsichtbar gemacht und je nach Datum wird ein bestimmtes Bild wieder sichtbar gemacht.

Hier mal ein Prinzip, ist jetzt nur hier mal schnell aufgeschrieben. Schalter wäre die Auswahl in A1. Voraussetzung ist, dass die Bilder alle Bild heißen mit anschließender Zahl. Standardmäßig verteilt Excel ja Namen beim Einfügen wie Picture 1 usw.

Code:
Sub BilderAnAus
'Schleife ueber 4 Bilder
For iCnt = 1 to 4
  'Bild icnt aus
  Shapes("Bild" & iCnt).Visible = False
'Ende Schleife ueber 4 Bilder
Next
'Bild entsprechend Auswahl an
Shapes("Bild" & Cells(1,1).Value).Visible = True
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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