Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
776to780
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
776to780
776to780
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Charts ohne Nullwerte

Charts ohne Nullwerte
28.06.2006 11:11:44
Olaf
Hallo Leute wollte hier nur die Lösung meines Problems posten:
ich wollte Charts erstellen, bei dem keine Nullwerte ausgegeben werden. Sonst hat man (vor allem bei Kuchendiagrammen) immer so ekelige Striche und die Kategoriebezeichnung wird auch eingeblendet. Das hat zur Folge, daß man bei vielen Merkmalen den Überblick verliert.
Ihr benötigt für das Skript ein Tabellenblatt mit dem Namen "Ablage". Hier werden Zwischenwerte gespeichert. Könnt ihr ja ausblenden.
Also nun der Code:
Public

Sub diag_ohne_null()
Dim i, j As Integer
Dim x As Integer
Dim namespalte As Range
Dim namen(), werte(), rng As Range
Dim aktuellesblatt As Worksheet
Set aktuellesblatt = ActiveSheet
i = -1
WerteBox_marker:
Set wertebox = Application.InputBox(prompt:="Bitte den Datenbereich wählen", Title:="Datenbereich", Type:=8)
If wertebox Is Nothing Then
fehler = MsgBox("Kein Bereich gewählt. Abbrechen?", vbYesNo, "Fehler!")
If fehler = vbYes Then
Exit Sub
Else
GoTo WerteBox_marker
End If
End If
SpalteBox_marker:
Set spaltebox = Application.InputBox(prompt:="Bitte die Beschriftung wählen", Title:="Beschriftungsbereich", Type:=8)
If spaltebox Is Nothing Then
fehler = MsgBox("Keinen Bereich angegeben. Abbrechen?", vbYesNo, "Fehler!")
If fehler = vbYes Then
Exit Sub
Else
GoTo SpalteBox_marker
End If
End If
x = spaltebox.Column - wertebox.Column
For Each rng In wertebox
If rng.Value <> 0 Then
i = i + 1
'rng.Activate
ReDim Preserve werte(i)
ReDim Preserve namen(i)
Set werte(i) = rng
Set namen(i) = rng.Offset(0, x)
Else
End If
Next rng
Worksheets("Ablage").Activate
ActiveSheet.UsedRange.Delete
Range("a1").Activate
For i = 0 To UBound(werte)
ActiveCell.Offset(0, 1).Value = werte(i)
ActiveCell.Value = namen(i)
ActiveCell.Offset(1, 0).Select
Next i
ActiveSheet.UsedRange.Select
Charts.Add
ActiveChart.ChartType = xl3DPieExploded
ActiveChart.Location Where:=xlLocationAsObject, Name:="Nutzungsarten"
ActiveChart.HasTitle = False
ActiveChart.HasLegend = False
ActiveChart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:= _
False, HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:= _
True, ShowValue:=True, ShowPercentage:=False, ShowBubbleSize:=False
End Sub

anstelle des xl3DPieExploded kann selbstredend jeder DiagTyp stehen.
Greetz
Olzo

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Charts ohne Nullwerte
28.06.2006 15:44:49
Hubert
Hi,
setzen 5, Code mit Goto und select ist undiskutabel.
mfg Hubert
AW: Charts ohne Nullwerte
30.06.2006 14:27:24
Olaf
Erstens: Es heißt indiskutabel.
Zweitens: Tolle Zensur hier. Hatte schon geanwortet, war wohl nicht kindertauglich oder so... Was passt Dir an dem Code nicht? Hast Du leider nicht erklärt. Bitte weihe mich doch ein, wie ich es anders machen soll als mit Select und goto
Thx
Olaf
AW: Charts ohne Nullwerte
30.06.2006 15:27:14
Olaf
Ok habs glaub ich gecheked.
Die Kunst ist das ganze per Direktverweisen zu finden und abzulagern und nicht mit select rumzusuchen und sich dann die Verweise abzuspeichern.
Der Kommentar hat ein bisschen in mir gearbeitet, bis ich wirklich verstanden habe wie es gemeint war.
Danke dafür, wird sicher mein Coding auf ein neues Level bringen.
Greetz
Olzo
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige