Supportnet / Forum / Tabellenkalkulation
Diagramm in Excel mit Makro erstellen
Frage
Hallo Leute,
ich hoffe, dass mir trotz Weihnachtstress jemand Zeit hat mir kurz zu helfen. Ich habe Probleme mit der Nomenklatur.
Ziel des Makros:
Ein Diagramm erstellen und entsprechend des Namens des aktiven Tabellenblatts benennen.
Problem für mich:
Ich schaff es nicht das Makro so umzubauen, dass statt "Tabelle1" die Variable s = Name des aktiven Tabellenblatts verwerndet wird.
Hier das Makro:
[code]Sub Diagramm_Auto()
Dim s As String
s = ActiveSheet.Name
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("Tabelle1"). _
Range("C11:F11,C21:F23,C26:F28"), PlotBy:=xlRows
ActiveChart.SeriesCollection(1).Name = "=""Calcium"""
ActiveChart.SeriesCollection(2).Name = "=""Magnesium"""
ActiveChart.SeriesCollection(3).Name = "=""Natrium"""
ActiveChart.SeriesCollection(4).Name = "=""Chlorid"""
ActiveChart.SeriesCollection(5).Name = "=""Sulfat"""
ActiveChart.SeriesCollection(6).Name = "=""Nitrat"""
ActiveChart.Location Where:=xlLocationAsObject, Name:=s
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = s
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Datum"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "mg/l"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.HasDataTable = False
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(7).Values = _
"=´Tabelle1´!R17C3:R17C6"
ActiveChart.SeriesCollection(7).Name = "=""Elek. Leitfähigkeit bei 25°C"""
ActiveChart.SeriesCollection(7).Select
ActiveChart.SeriesCollection(7).AxisGroup = 2
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlValue, xlSecondary).Select
ActiveChart.ChartArea.Select
With ActiveChart
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "µS/cm"
End With
End Sub
[/code]
Froh Weihnachten schon mal und ich warte auf ein kleines "Infogeschenk" ;-) von Euch
Eleve
Antwort 1 von Eleve
p.s.
Das ganze sieht schlimmer aus als es ist.
Es geht wirklich nur um die richtige Nomenklatur.
Kurz wie muss ich die Variable einsetzen, damit in dieser Zeile
Tabelle1 durch den Namen des aktiven Tabellenblatts ersetzt wird.
Danke schon mal für Eure Mühe
Eleve
Das ganze sieht schlimmer aus als es ist.
Es geht wirklich nur um die richtige Nomenklatur.
Kurz wie muss ich die Variable einsetzen, damit in dieser Zeile
ActiveChart.SeriesCollection(7).Values = _
"=´Tabelle1´!R17C3:R17C6"Tabelle1 durch den Namen des aktiven Tabellenblatts ersetzt wird.
Danke schon mal für Eure Mühe
Eleve
Antwort 2 von coros
Hi Eleve,
mal ungetestet, müsste der Befehl dann folgendermaßen laute:
ActiveChart.SeriesCollection(7).Values = _
"=´" & ActiveSheet.Name & "´!R17C3:R17C6"
Das Unterstrichene in dem Code ist die Änderung. Wobei ich jetzt nicht wirklich weiß, ob die Hochkommas, die in Deinem alten Befehl vor und hinter dem Text "Tabelle1" sein müssen. Aber ansonsten müsste es funktionieren, hoffe ich jedenfalls. Wenn nicht, melde Dich noch mal, dann versuche ich mal eben, Dein Diagramm nachzubauen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
mal ungetestet, müsste der Befehl dann folgendermaßen laute:
ActiveChart.SeriesCollection(7).Values = _
"=´" & ActiveSheet.Name & "´!R17C3:R17C6"
Das Unterstrichene in dem Code ist die Änderung. Wobei ich jetzt nicht wirklich weiß, ob die Hochkommas, die in Deinem alten Befehl vor und hinter dem Text "Tabelle1" sein müssen. Aber ansonsten müsste es funktionieren, hoffe ich jedenfalls. Wenn nicht, melde Dich noch mal, dann versuche ich mal eben, Dein Diagramm nachzubauen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von Eleve
Hallo coros
vielen Dank! Wie immer superschnelle und kompetente Hilfe. Makro läuft nach Wunsch.
alles Gute
Michael
vielen Dank! Wie immer superschnelle und kompetente Hilfe. Makro läuft nach Wunsch.
alles Gute
Michael

