Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagrammdatenbereich per VBA bestimmen

Diagrammdatenbereich per VBA bestimmen
02.08.2013 15:07:46
kultnoob
Hallo zusammen,
bin auf der suche nach einer Möglichkeit, den Diagrammdatenbereich automatisch nach einer Zuordnung zu bestimmen.
Im Beispiel:
- Auswertung wird erstellt
- per Userform werden Daten ausgewählt und in Zelle D22 (Bezeichnung) und E22 (Menge) ausgegeben
Nun bin ich auf der Suche nach einer Möglichkeit, damit mein "explodierter 3D-Kreis" (so heißt das Diagramm) den Diagrammdatenbereich selbst bestimmt auf Basis der vorhandenen Werte. Diese wachsen mit der Zeit. Damit man nicht vergißt, den Bereich anzupassen, wäre es nice, dies über ein Makro zu machen.
Von fcs fand ich diesen Code:

Sub DiagrammSourceData()
lrow2 = Sheets(2).UsedRange.Rows.Count
'wenn nur ein Daigrammobjekt im Tabellenblatt eingebettet ist
ActiveSheet.ChartObjects(1).Chart.SetSourceData _
Source:=Range("D22 & E" & lrow2)
'wenn bestimmtes Diagrammobjekt angepasst werden soll
ActiveSheet.ChartObjects("Diagramm 1").Chart.SetSourceData _
Source:=Range("D22 & E" & lrow2)
End Sub
mhhh... Leider funktioniert das nicht so wie ich will.
Zum Einem habe ich den oberen Bereich des Codes versucht und zum anderen den unteren Bereich. Die Werte stehen in D22 (Bezeichnung) & E22 (Werte).
Wie im Code zu erkennen ist, versuchte ich dies über UsedRange.Rows.Count zu händeln. Leider sind in Spalte A mehr Zeilen beschriftet wie es Werte ab Zelle D22/E22 gibt. Somit nimmt er als Range mehr Werte als ich eigentlich will.
Ist es möglich, UsedRange.Rows.Count nur auf einen Bereich zu beziehen? Sprich, die letzte beschrieben Zelle in Spalte D und E?
Ebenso ergibt das mit dem oben genannten Code leider kein Diagramm sondern nichts...

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagrammdatenbereich per VBA bestimmen
02.08.2013 15:15:36
Philipp
Du kannst die letzte Zeile festellen mit folgenden Code:
dim letzte_zeile as integer
letzte_zeile = Worksheets("Tabelle1").Range("A2000").End(xlUp).Offset(1, 0).Row
MsgBox letzte_zeile
'Ab Zelle A2000 nach oben wird die letzte beschrieben Zelle gesucht und als integer werd ausgegeben

AW: Diagrammdatenbereich per VBA bestimmen
02.08.2013 15:17:49
Philipp
Dim letzte_zeile As Integer
letzte_zeile = Worksheets("Tabelle1").Range("A2000").End(xlUp).Offset(1, 0).Row
MsgBox letzte_zeile
Mit A2000 bestimmst du ab welcher Zelle, nach oben hin, die letzte beschrieben Zelle gesucht wird.

AW: Diagrammdatenbereich per VBA bestimmen
03.08.2013 03:48:59
fcs
Hallo kultnoob,
ich bestreite jetzt mal, dass ich der Erfinder von
Range("D22 & E" & lrow2)
bin. Korrekt wäre hier
Range("D22:E" & lrow2)
Mit folgendem Feintuning im Makro sollte die Anpassung der Datenquelle funktionieren.
Außerdem musst du darauf achten, dass die angesprochenen Blatt-Objekte korrekt sind.
Hier geistern Sheets(2) und Active-Sheet im Makro herum.
Gruß
Franz
Sub DiagrammSourceData()
Dim wks As Worksheet, lRow2 As Long
Set wks = Sheets(2)
With wks
'letzte Datenzeile in Spalte D und/oder E
lRow2 = Application.WorksheetFunction.Max(.Cells(.Rows.Count, 4).End(xlUp).Row, _
.Cells(.Rows.Count, 5).End(xlUp).Row)
End With
'wenn nur ein Diagrammobjekt im Tabellenblatt eingebettet ist
ActiveSheet.ChartObjects(1).Chart.SetSourceData _
Source:=wks.Range("D22:E" & lRow2)
'wenn bestimmtes Diagrammobjekt angepasst werden soll
ActiveSheet.ChartObjects("Diagramm 1").Chart.SetSourceData _
Source:=wks.Range("D22:E" & lRow2)
End Sub

Anzeige
AW: Diagrammdatenbereich per VBA bestimmen
05.08.2013 08:50:42
kultnoob
Hallo zusammen,
danke für die zahlreichen Infos. Werde mich gleich mal ans Werk machen.
@fcs...
Schande über mein Haupt. Du hast absolut recht. War ein Schreibfehler meinerseits. Als ich den Code in den Post eingefügt habe, war dies noch der Orginalcode. Habe diesen dann am Freitag, meine Gedanken waren schon im Wochenende, schnell angepasst.
Das Bestreiten meiner Aussage ist absolut korrekt. Der Fehler liegt diesbezüglich auf meiner Seite. Entschuldigung.
Werde eure Vorschläge gleich mal testen.
Vielen Dank. RM erfolgt umgehend.

AW: Diagrammdatenbereich per VBA bestimmen
05.08.2013 10:14:46
kultnoob
Hallo zusammen,
danke für die zahlreichen Infos. Werde mich gleich mal ans Werk machen.
@fcs...
Schande über mein Haupt. Du hast absolut recht. War ein Schreibfehler meinerseits. Als ich den Code in den Post eingefügt habe, war dies noch der Orginalcode. Habe diesen dann am Freitag, meine Gedanken waren schon im Wochenende, schnell angepasst.
Das Bestreiten meiner Aussage ist absolut korrekt. Der Fehler liegt diesbezüglich auf meiner Seite. Entschuldigung.
Werde eure Vorschläge gleich mal testen.
Vielen Dank. RM erfolgt umgehend.

Anzeige
AW: Diagrammdatenbereich per VBA bestimmen
05.08.2013 10:16:12
kultnoob
Ha wunderbar es funktioniert...
vielen Dank für die Info. Habe nun die Lösung von fcs genommen. Werde mir nun gleich noch die Lösung ohne VBA anschauen.
Vielen Dank für die Hilfe...

AW: Diagrammdatenbereich per VBA bestimmen
03.08.2013 09:07:27
Beverly
Hi,
weshalb musst du das per VBA lösen - mit definierten Namen kann man Diagramme völlig VBA-frei dynamisch an die vorhandene Datenanzahl anpassen. Schau dir dazu mal das Beispiel Dynamisches Diagramm1 auf meiner HP, Seite Diagramme an.


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige