05.09.2016, 20:09 (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2016, 14:06 von Rabe.
Bearbeitungsgrund: redundante Zeilenumbrüche entfernt
)
Hallo,
ich will einen Marko erstellen, wo ich mehrere Exceldateien in eine Exceldatei packen will.
Jede Datei soll einen Tab bekommen und dann will ich aus allen Tabs .. Spalte A und E in ein Diagramm.
Kann mir jemand Tipps bzw.Vorschläge geben.
Spaß beiseite, mir ist schon klar, dass du ein Makro meinst. Mit Makros kann ich dir leider nicht helfen - mein Wissen/Können ist hier nur sehr rudimentär. Aber allgemein: Zeichne mit dem Makrorekorder mal einen Vorgang auf und stelle dann das Makro hier vor. Die Spezialistenwerden dir den Code dann verallgemeinern. Sinnvoll wäre es auch, genauer zu beschreiben, wo du was automatisiert haben möchtest.
Achte auch auf die Nomenklatur. Willst du wirklich mehrere Dateien in eine andere Datei(!) packen? Oder meinst du, dass du Tabellenblätter in eine andere Datei kopieren willst?
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
06.09.2016, 06:32 (Dieser Beitrag wurde zuletzt bearbeitet: 06.09.2016, 06:36 von WillWissen.
Bearbeitungsgrund: Makro in Codetags gesetzt
)
Code:
Option Explicit
Sub zustel()
Dim strDatnam As String
Dim wb As Workbook
Dim ws As Worksheet
strDatnam = Dir("C:\Users\MARMUE4\Desktop\STD\*.xlsx")
Do While Len(strDatnam)
Set wb = Workbooks.Open(strDatnam)
Set ws = ThisWorkbook.Sheets.Add
ws.Name = Split(strDatnam, Application.PathSeparator)(UBound(Split(strDatnam, Application.PathSeparator)))
wb.Sheets(1).Cells.Copy Destination:=ws.Cells
wb.Close savechanges:=False
strDatnam = Dir
Loop
Set ws = Nothing
Set wb = Nothing
End Sub
Sub DiaErstellen()
Dim wksTab As Worksheet
With Worksheets("Diagramm").ChartObjects.Add(0, 0, 450, 300).Chart
.ChartType = xlXYScatterSmoothNoMarkers
For Each wksTab In Worksheets
If wksTab.Name <> "Diagramm" Then
With .SeriesCollection.NewSeries
.XValues = wksTab.Range("A")
.Values = wksTab.Range("E")
.Name = wksTab.Range("H2")
End With
End If
Next wksTab
End With
End Sub
End Sub
Das ist das was ich bis jetzt habe.
Also der Makro soll aus einem Ordner mit Exceldatein alle entnehmen und in eine Exceldatei packen. In den vielen Dateien ist jeweils nur die 1 Tabelle belegt und die soll weine Tabelle in der einen Exceldatei bekommen ...d.h. 10 Dateien --> in Exceldatei 10 Tabellen. Aus diesen Tabellen sollen die Spalte A und E in ein Diagramm gebraucht werden. Dabei ist a die x- Achse. Danke.
Sub zustel()
Dim strDatnam As String
Dim wb As Workbook
Dim ws As Worksheet
strDatnam = Dir("C:\Users\MARMUE4\Desktop\STD\*.xlsx")
Do While Len(strDatnam)
If strDatnam <> ThisWorkbook.Name Then
Set wb = Workbooks.Open(strDatnam)
Set ws = ThisWorkbook.Sheets.Add
ws.Name = strDatnam
wb.Sheets(1).Cells.Copy Destination:=ws.Cells
wb.Close savechanges:=False
strDatnam = Dir
End If
Loop
Set ws = Nothing
Set wb = Nothing
End Sub
Sub DiaErstellen()
Dim wksTab As Worksheet
With Worksheets("Diagramm").ChartObjects.Add(0, 0, 450, 300).Chart
.ChartType = xlXYScatterSmoothNoMarkers
For Each wksTab In Worksheets
If wksTab.Name <> "Diagramm" Then
With .SeriesCollection.NewSeries
.XValues = wksTab.Range("A:A")
.Values = wksTab.Range("E:E")
.Name = wksTab.Range("H2")
End With
End If
Next wksTab
End With
End Sub
Du musst schon sagen, um welches Makro es geht und wo genau es "hängt". Klicke in dem gezeigten Meldungsfenster auf Debuggen. Dann wird die Codezeile gelb markiert.
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • Markus.Jens