Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1820to1824
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
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

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

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

Anzeige
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

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige