Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

860to864: makro verallgemeinern

makro verallgemeinern
11.04.2007 14:24:04
humesit

hallo
ahbe ein makro aufgenommen, dass beim erstellen von diagrammen hilft. es ist in der persönlichenarbeitsmappe gespeichert.
leider sthet im code der dateiname ("Summary Report 1")aus der tabelle, aus der ich das aufgenommen habe.
wie kann ich denn das makro einfach auf eine beliebige tabelle beziehen aus der ich es aufgerufen habe?
ActiveChart.SetSourceData Source:=Sheets("Summary Report 1"). _
Range(ywerte.Address), PlotBy:=xlColumns
mfg christian

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro verallgemeinern
11.04.2007 14:35:44
Ceci
Hallo Christian,
versuche
ActiveChart.SetSourceData Source:=ActiveSheet _
Range(ywerte.Address), PlotBy:=xlColumns
mfg ceci
AW: makro verallgemeinern
11.04.2007 14:53:09
humesit
funtkioniert leider nicht...
AW: makro verallgemeinern
11.04.2007 14:55:58
humesit
also jetzt mit frage ist noch offen... mal schaun was passiert
AW: makro verallgemeinern
11.04.2007 14:57:53
Ceci
Hallo,
ich weiß nicht ob du bemerkt hast, dass ich einen Punkt vergessen habe. Es muss so aussehen:
ActiveChart.SetSourceData Source:=Activesheet._
Range(ywerte.Address), PlotBy:=xlColumns
mfg Ceci
AW: makro verallgemeinern
11.04.2007 15:18:08
humesit
ja hab ich bemerkt und gleich ausgebessert. leider hilft mir die online hilfe hier nicht weiter....:
hab nochmal den ganzen code (ohne die variablendekl) zugefügt.
Charts.Add
ActiveChart.ChartType = xlColumnClustered
'ywerte
ActiveChart.SetSourceData Source:=Sheets("Summary Report 1"). _
Range(ywerte.Address), PlotBy:=xlColumns
'xwerte
ActiveChart.SeriesCollection(1).XValues = xwerte
ActiveChart.Location Where:=xlLocationAsNewSheet
Anzeige
AW: makro verallgemeinern
12.04.2007 06:43:32
Ceci
Hallo Christian,
ich habe hier mal meinen Code für die Diagrammerstellung für dich:

Sub Diagramm_Gesamt_erstellen()
Dim WSDia           As Worksheet
Dim chtChart        As Chart
Dim ChtChartArea    As ChartArea
Dim ChtAxis         As Axis
Dim Jahr            As String
Dim ch              As ChartObject
Set WSDia = Worksheets("Diagramm_Gesamt") 'Hier: set wsdia=ActivesSheet
'im Vorfeld ein evtl. vorhandenes Diagramm löschen!
On Error Resume Next
Application.DisplayAlerts = False
For Each ch In Sheets("Diagramm_Gesamt").ChartObjects
ch.Delete
Next ch
Application.DisplayAlerts = True
'Diagramm einfügen
WSDia.ChartObjects.Add Left:=0, Top:=265, Width:=355, Height:=170
WSDia.ChartObjects(1).Name = "Dia_Gesamt"
'Datentyp und Range bestimmen
Set chtChart = WSDia.ChartObjects(1).Chart
chtChart.ChartType = xlXYScatter
chtChart.SetSourceData Source:=WSDia.Range("B13:E13")
'Legende "Reihe 1" löschen
ActiveSheet.ChartObjects("Dia_Gesamt").Activate
ActiveChart.Legend.Select
Selection.Delete
'Farben im Diagramm
Set ChtChartArea = chtChart.ChartArea
With ChtChartArea
.Border.ColorIndex = RGB(192, 192, 192)
.Interior.Color = RGB(255, 255, 128)
.Font.Name = "Arial"
End With
Set ChtChartArea = Nothing
'Achsenformatierung
'ActiveSheet.ChartObjects.Activate
ActiveSheet.ChartObjects("Dia_Gesamt").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = 1
.MaximumScale = 4
.MinorUnit = 0.1
.Crosses = xlCustom
.CrossesAt = 0
.ReversePlotOrder = True
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
'Achsenbeschriftung
Set ChtAxis = chtChart.Axes(xlCategory) 'y-Achse
On Error Resume Next
With ChtAxis
.HasTitle = True
.CategoryNames = WSDia.Range("B12:E12")
.HasMajorGridlines = False
.HasMinorGridlines = True
.AxisTitle.Text = "Quartale/ quarters"
.AxisTitle.Font.Bold = True
.AxisTitle.Font.Underline = True
.AxisTitle.Font.Size = "12"
End With
Set ChtAxis = chtChart.Axes(xlValue) 'x-Achse
With ChtAxis
.HasTitle = True
.AxisTitle.Text = "Benotung/ grading"
End With
End Sub

Anzeige
aufgenommenes makro verallgemeinern
12.04.2007 14:31:48
humesit
würde den code nur ungern komplett umändern...ausserdem hab ich dieses problem bei mehren Makros, dass ich das makro gerne auf beliebige dateien anwenden würde?
active sheet ist laut meinem kompendium der richtige befehl, so wie du es erst vorgeschlagen hast,aber er funzt nicht...
AW: aufgenommenes makro verallgemeinern
13.04.2007 07:27:03
Ceci
Sorry, dann kann ich dir auch nicht weiterhelfen, bei mir funzt es so...
mfg Ceci

AW: makro verallgemeinern
14.04.2007 14:39:29
Gerd L
Hallo Christian,
das Problem mit dem Sheet ist, dass nach dem Chart.add das eingefügte Diagrammblatt das aktive Blatt
ist. Die beiden Range für die Achsenwerte wirst selbst hinkriegen. Oder?


Sub test2()
Dim sh As Object
Set sh = ActiveWorkbook.ActiveSheet
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
'ywerte
.SetSourceData Source:=sh.Range("A1:A4"), PlotBy:=xlColumns
'xwerte
.SeriesCollection(1).XValues = sh.Range("B1:B3")
.Location Where:=xlLocationAsNewSheet
End With
End Sub


Gruß
Gerd

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige