Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

makro Diagramm
#1
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 B/F/G
 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. :20:
Antworten Top
#2
Er würde mir reichen, wenn er aus dem Anderen sheets nur die F Tabelle nimmt
Antworten Top
#3
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
Antworten Top
#4
Ich würde es mit einer Schleife über alle Sheets (ohne das Diagramm-Sheet) und über eine Variable, die die letzte belegte Zeile in F ermittelt, lösen. Den zweiten Punkt hast Du ja schon im ersten Makro mit dem "lastrow".
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste