Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per VBA Diagramm erstellen lassen

Per VBA Diagramm erstellen lassen
16.03.2021 12:59:10
Peter
Hallo,
ich habe ein Makro welches mir ein Diagramm erstellen soll aufgezeichnet nun soll das aber auf 130 Tabellenblätter durch laufen, allerdings nimmt er immer nur die Daten vom Tabellenblatt 1 (Schreiner) und kopiert die 130 mal? Was muss ich bitte wo ändern damit er die Daten vom jeweiligen Tabellenblatt nimmt?
Besten Dank
Dim WsTab As Worksheet
For Each WsTab In Sheets
WsTab.Activate
Range("A1:M2").Select
ActiveSheet.Shapes.AddChart2(332, xlLineMarkersStacked).Select
ActiveChart.SetSourceData Source:=Range("Schreiner!$A$1:$M$2")
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -532.1249606299
ActiveSheet.Shapes("Diagramm 1").IncrementTop -190.5
Range("G10").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveSheet.Shapes("Diagramm 1").ScaleWidth 2.2708333333, msoFalse, _
msoScaleFromTopLeft
ActiveChart.SetElement (msoElementDataLabelTop)
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartTitle.Select
With Selection.Format.TextFrame2.TextRange.Font
.NameComplexScript = "Arial"
.NameFarEast = "Arial"
.Name = "Arial"
End With
Selection.Format.TextFrame2.TextRange.Font.Size = 28
Selection.Format.TextFrame2.TextRange.Font.Bold = msoTrue
Selection.Format.TextFrame2.TextRange.Font.UnderlineStyle = _
msoUnderlineSingleLine
ActiveChart.ChartTitle.Text = "Schreiner"
Range("A1").Select
Next WsTab

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Diagramm erstellen lassen
16.03.2021 13:13:31
peterk
Hallo
Statt:
ActiveChart.SetSourceData Source:=Range("Schreiner!$A$1:$M$2")
ActiveChart.SetSourceData Source:=Range(WsTab.Name & "!$A$1:$M$2")
Peter

AW: Per VBA Diagramm erstellen lassen
16.03.2021 13:37:26
Peter
Hallo Peter, vielen Dank für deine Hilfe
irgendwie geht das leider nicht, bekomme immer Laufzeitfehler 1004 Methode unterstütze Range _Global nicht? Genau an der stelle wo ich es von dir geändert habe..
Range("A1:M2").Select
ActiveSheet.Shapes.AddChart2(332, xlLineMarkersStacked).Select
ActiveChart.SetSourceData Source:=Range(WsTab.Name & "!$A$1:$M$2")
ActiveChart.SetElement (msoElementDataLabelTop)
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -532.1249606299
ActiveSheet.Shapes("Diagramm 1").IncrementTop -190.5
ActiveSheet.Shapes("Diagramm 1").ScaleWidth 2.2729166667, msoFalse, _
msoScaleFromTopLeft
ActiveChart.ChartTitle.Select
With Selection.Format.TextFrame2.TextRange.Font
.NameComplexScript = "Arial"
.NameFarEast = "Arial"
.Name = "Arial"
End With
Selection.Format.TextFrame2.TextRange.Font.Size = 18
Selection.Format.TextFrame2.TextRange.Font.Bold = msoTrue
Selection.Format.TextFrame2.TextRange.Font.Italic = msoTrue
Selection.Format.TextFrame2.TextRange.Font.UnderlineStyle = _
msoUnderlineSingleLine

Anzeige
AW: Per VBA Diagramm erstellen lassen
16.03.2021 14:19:20
Beverly
Hi Peter,
ich nehme an, der Diagrammtitel soll ebenfalls immer der Name des Tabellenblattes sein? Dann versuche es mal so:
For Each WsTab In Sheets
With WsTab.Shapes.AddChart2(332, xlLineMarkersStacked)
.Top = WsTab.Range("A1")
.Left = WsTab.Columns(1).Left
.Width = WsTab.Columns("A:N").Width
.Height = WsTab.Rows("1:17").Height
With .Chart
.SetSourceData Source:=WsTab.Range("$A$1:$M$2")
.SetElement (msoElementDataLabelTop)
.HasTitle = True
With .ChartTitle
With .Format.TextFrame2.TextRange.Font
.Name = "Arial"
.Size = 28
.Bold = msoTrue
.UnderlineStyle = msoUnderlineSingleLine
End With
.Text = WsTab.Name
End With
End With
End With
Next WsTab

Beverly's Excel - Inn

Anzeige
AW: Per VBA Diagramm erstellen lassen
16.03.2021 14:27:00
Peter
..Vielen Dank, es kommt leider Laufzeitfehler 13, Typen unverträglich?
.Top = WsTab.Range("A1")
Grüße
Peter

AW: Per VBA Diagramm erstellen lassen
16.03.2021 14:37:59
Beverly
Hi Peter,
da fehlt etwas: WsTab.Range("A1").Top - das ist mir nicht aufgefallen weil bei mir komischerweise keine Fehlermeldung kommt.

Beverly's Excel - Inn

Anzeige
AW: Per VBA Diagramm erstellen lassen
16.03.2021 15:13:14
Peter
Vielen Dank erst mal,
mhhh jetzt läuft es ohne Fehler aber es kommt kein Ergebnis, hängt ohne Fehlermeldung? nur weiser Bildschirm...
Grüße
Peter

AW: Per VBA Diagramm erstellen lassen
16.03.2021 15:32:00
Peter
vielen Dank ist alles erledigt, war mein Fehler.. läuft wie Uhrwerk jetzt!!
Grüße
Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige