Excel Makro Kreisdiagramm für Fortgeschrittene
hallo zusammen,
habe mal wieder ein excel / makro problem
ich möchte ein kuchendiagramm / kreisdiagramm erstellen, das von allen vorhandenen sheets (mappen) immer 4 werte von A62:D62 liest und diese in das kuchendiagramm einordnet. bsp.:
werte sheet 1: werte sheet 2: werte sheet.......
52 61 34 70 42 20 59 23 33 67 55 43
das kuchendiagramm sollte in 5 bereich unterteilt / aufgebaut sein, die wie folgt agieren sollen.
die 4 werte (über die ganzen Sheets hinweg) die kleiner gleich 30 sind, sollen in das erste kuchenstück. alle werte die kleiner gleich 40, aber größer als 30 in das zweite kuchenstück. alle werte die kleiner gleich 50, aber größer als 40 in das dritte kuchenstück und so weiter.
man sollte dann ein kreisdiagramm bekommen, mit 5 kuchenstücken die wie folgt aussehen sollten:
( <=30, > 30 und <=40, >40 und <=50, >50 und <=60, >60) Das Diagramm soll die werte prozentual darstellt. d.h. bsp.:
- 20 Prozent der werte sind kleiner 30
- 10 Prozent der werte zwischen 30 und 40
- 40 Prozent der werte zwischen 40 und 50
- 10 Prozent der werte zwischen 50 und 60
- 20 Prozent der werte sind über 60
ist das arg kompliziert oder hat jemand da eine idee?
beste grüße
stefan
habe mal wieder ein excel / makro problem
ich möchte ein kuchendiagramm / kreisdiagramm erstellen, das von allen vorhandenen sheets (mappen) immer 4 werte von A62:D62 liest und diese in das kuchendiagramm einordnet. bsp.:
werte sheet 1: werte sheet 2: werte sheet.......
52 61 34 70 42 20 59 23 33 67 55 43
das kuchendiagramm sollte in 5 bereich unterteilt / aufgebaut sein, die wie folgt agieren sollen.
die 4 werte (über die ganzen Sheets hinweg) die kleiner gleich 30 sind, sollen in das erste kuchenstück. alle werte die kleiner gleich 40, aber größer als 30 in das zweite kuchenstück. alle werte die kleiner gleich 50, aber größer als 40 in das dritte kuchenstück und so weiter.
man sollte dann ein kreisdiagramm bekommen, mit 5 kuchenstücken die wie folgt aussehen sollten:
( <=30, > 30 und <=40, >40 und <=50, >50 und <=60, >60) Das Diagramm soll die werte prozentual darstellt. d.h. bsp.:
- 20 Prozent der werte sind kleiner 30
- 10 Prozent der werte zwischen 30 und 40
- 40 Prozent der werte zwischen 40 und 50
- 10 Prozent der werte zwischen 50 und 60
- 20 Prozent der werte sind über 60
ist das arg kompliziert oder hat jemand da eine idee?
beste grüße
stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 286472
Url: https://administrator.de/forum/excel-makro-kreisdiagramm-fuer-fortgeschrittene-286472.html
Ausgedruckt am: 16.05.2025 um 09:05 Uhr
3 Kommentare
Neuester Kommentar
Hallo Stefan,
hab dir mal ein Beispiel zusammengestellt: verteilung_kreisdiagramm_286472.xlsm
Einfach im Sheet "Auswertung" den Button "Auswerten" anklicken.
Grüße Uwe
hab dir mal ein Beispiel zusammengestellt: verteilung_kreisdiagramm_286472.xlsm
Einfach im Sheet "Auswertung" den Button "Auswerten" anklicken.
Grüße Uwe
Zitat von @StefanH:
vielen dank schonmal für das kreisdiagramm. habe nur ein problem und zwar: meine werte sind nicht direkt eingegebene zahlen, sondern errechnen sich aus anderen werten. d.h.. der befehl data / datarange wird nicht erkannt und die zahlen in dem auswertungs-sheet werden als #bezug angezeigt. wenn ich die erechneten Daten (J1+J2) ab ändere und zahlen reinschreibe funktioniert es.
vielen dank schonmal für das kreisdiagramm. habe nur ein problem und zwar: meine werte sind nicht direkt eingegebene zahlen, sondern errechnen sich aus anderen werten. d.h.. der befehl data / datarange wird nicht erkannt und die zahlen in dem auswertungs-sheet werden als #bezug angezeigt. wenn ich die erechneten Daten (J1+J2) ab ändere und zahlen reinschreibe funktioniert es.
Für die die es dann noch brauchen können:
Sub Auswertung()
Application.ScreenUpdating = False
With Sheets("Auswertung")
.Range("1:1").ClearContents
For i = 1 To Sheets.Count - 1
Sheets(i).Range("A62:D62").Copy
.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1).PasteSpecial Paste:=xlPasteValues
Next
ActiveWorkbook.Names("DataRange").RefersTo = "=" & .Range("B1", .Range("B1").End(xlToRight)).Address
End With
Application.ScreenUpdating = True
End Sub