Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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
Makro-Diagramm aus mehreren sheets
08.09.2016 15:50:21
Hans

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


		

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro-Diagramm aus mehreren sheets
08.09.2016 19:19:22
Beverly
Hi Hans,
lade eine Beispielmappe hoch.


AW: Makro-Diagramm aus mehreren sheets
09.09.2016 10:20:12
Hans
Hallo, habe die Beispiel Datei schon hochgeladen. Der makro läd alle Sheets rein und dann brauche ich auf Tabellenblatt 1 ein Diagramm mit Kurven aus der Spalte a und f. Dabei sind aber Sheets und Zeilenanzahl Variabel. Vielen Vielen Dank. Jetzt schon für die Hilfe.
AW: Makro-Diagramm aus mehreren sheets
09.09.2016 16:27:40
Beverly
Hi,
Sub DiagrammErstellen()
Dim chrDia As Chart
Dim lngReihe As Long
Dim wksTab As Worksheet
Dim lngLetzte As Long
Set chrDia = Worksheets(1).ChartObjects.Add(0, 0, 0, 0).Chart
With chrDia
.ChartType = xlXYScatterLines
If .SeriesCollection.Count > 0 Then
For lngReihe = .SeriesCollection.Count To 1 Step -1
.SeriesCollection(lngReihe).Delete
Next lngReihe
End If
For Each wksTab In Worksheets
lngLetzte = IIf(IsEmpty(wksTab.Cells(wksTab.Rows.Count, 1)), _
wksTab.Cells(wksTab.Rows.Count, 1).End(xlUp).Row, wksTab.Rows.Count)
With .SeriesCollection.NewSeries
.XValues = wksTab.Range(wksTab.Cells(2, 1), wksTab.Cells(lngLetzte, 1))
.Values = wksTab.Range(wksTab.Cells(2, 5), wksTab.Cells(lngLetzte, 5))
End With
Next wksTab
.HasLegend = False
.Parent.Top = Range("O2").Top
.Parent.Left = Range("O2").Left
.Parent.Height = 150
.Parent.Width = 180
End With
Set chrDia = Nothing
End Sub


Anzeige
AW: Makro-Diagramm aus mehreren sheets
12.09.2016 08:47:47
Hans
Hallo, Vielen dank für die Hilfe sieht Klasse aus und Funktioniert. Nur ein Anliegen noch die Spalten sind Variabele, d.h. ich habe Werte von 160 bis 460 Wertepaaren , bei der Datei geht es leider nur bis 160 . Gruß Markus
AW: Makro-Diagramm aus mehreren sheets
12.09.2016 10:03:12
Hans
Danke. Geht doch super. sorry.Vergiss das davor. Ich danke dir . Vielen Dank.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige