Hallo, ich bin neu hier.
Ich habe angefangen für ein Projekt was zu programmieren einen Makro in VBA. Habe mir dafür ein Muster Makro gesucht ..leider klappt es nicht.
Mein Gedankengang war: Excel öffnen und makro auswählen--> Datei auswählen mit Tabellen.--> Letztes Sheet soll das Diagramm sein. -->Funktion makro: mehrere Sheets mit mit Tabellen.--> es sollen immer spalten A und E in das Diagramm, diese sind variabel... Alles aber in ein Diagramm.
Kann mir jemand bitte Tipps bzw. eine Verbesserung geben. Bekomme das mit der Programmierung für die mehreren Sheets nicht ihn
Danke.
Sub DiagrammErstellen()
Dim i, lastrow, X, Y, spalten, cht, l, r, datei
datei = Application.GetOpenFilename()
If datei = False Then Exit Sub
Workbooks.Open datei
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
X = "A2:A" & lastrow
Y = "F2:F" & lastrow
ActiveSheet.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
neuname = InputBox("Diagramm")
ActiveSheet.Name = Diagramm
cht.Chart.ChartType = xlXYScatter
cht.Chart.SetSourceData Source:=Sheets(*).Range(X & "," & Y)
cht.Chart.SeriesCollection(1).Name = "='" & ActiveSheet.Name & "'!$" & spalten(i) & "$1"
cht.Width = 180 'Breite des Diagramms
cht.Height = 150 'Höhe
If i Mod 2 = 0 Then
cht.Left = Range("O2").Left 'O2 linke obere Ecke der Diagramme aus Spalte E
cht.Top = Range("O2").Offset(l * 14, 0).Top
l = l + 1
Else
cht.Left = Range("S2").Left 'S2 linke obere Ecke der Diagramme aus Spalte C/G/K
cht.Top = Range("S2").Offset(r * 14, 0).Top
r = r + 1
End If
'ActiveWorkbook.Close True
End Sub
Danke.
Er würde mir reichen, wenn er aus dem Anderen sheets nur die F Tabelle nimmt
Hier als Beispiel für 3..Benötige aber Vaiable anzahl von Sheets und von Zeilen.
Sub Diagramm2()
' Diagramm2 Makro
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("F1:F161")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""Force2"""
ActiveChart.SeriesCollection(2).XValues = "='Sheet1 (2)'!$A$2:$A$161"
ActiveChart.SeriesCollection(2).Values = "='Sheet1 (2)'!$F$2:$F$161"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Name = "=""Force3"""
ActiveChart.SeriesCollection(3).XValues = "='Sheet1 (3)'!$A$2:$A$161"
ActiveChart.SeriesCollection(3).Values = "='Sheet1 (3)'!$F$2:$F$161"
End
Sub