Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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
Inhaltsverzeichnis

Excell-Dateien in eine Datei als Sheet

Excell-Dateien in eine Datei als Sheet
02.09.2015 15:22:09
Hans
Hallo erstmal,
ich bin noch ein ziemlicher Anfänger was VBA anbelangt und habe sehr wenig Ahnung und Erfahrung.
Mein Problem. Ich will mehrere Excel-Dateien in eine Excel-Datei als Sheets überführen.
Habe das auch erfolgreich geschafft jedoch Kriege ich immer nur den ersten Sheet der Excel-Dateien eingefügt.
Habe mich jetzt bisschen daran Versucht und bin zu diesem Ergebnis gekommen.
Option Explicit

Public Sub zustel()
Dim strDatnam As Variant
Dim wb As Workbook
Dim ws As Worksheet
Dim wa As Worksheet
Dim i As Integer
Dim j As Integer
Dim Anzahl As Long
strDatnam = Application.GetOpenFilename("Datei (*.*),*.*", False, "Bitte gewünschte Datei(en)   _
_
markieren", False, True)
For i = LBound(strDatnam) To UBound(strDatnam)
Set wb = Workbooks.Open(strDatnam(i))
For j = 1 To ActiveWorkbook.Worksheets.Count
Set ws = ThisWorkbook.Worksheets(j)
ws.Name = "Table" & i & j 'Split(strDatnam(i), Application.PathSeparator)(UBound(Split( _
strDatnam(i), Application.PathSeparator))) & j
wb.Sheets(j).Cells.Copy Destination:=ws.Cells
wb.Close savechanges:=False
Next
Next
Set ws = Nothing
Set wb = Nothing
End Sub

Kopiert wird immernoch nur der Erste Sheet.
Vielen Dank für Eure Hilfe
Grüße
Hans

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excell-Dateien in eine Datei als Sheet
03.09.2015 03:06:01
fcs
Hallo Hans,
probiere mal die folgenden Versionen.
Eigentlich sollte was passendes dabei sein.
Gru0
Franz
Public Sub zustel()
'Tabellen einzeln kopieren
Dim strDatnam As Variant
Dim wb As Workbook, wbZiel As Workbook
Dim ws As Worksheet
Dim i As Integer
Dim j As Integer
Dim Anzahl As Long
Set wbZiel = ActiveWorkbook
strDatnam = Application.GetOpenFilename("Datei (*.xl*),*.xl*", False, _
"Bitte gewünschte Datei(en) markieren ", False, True)
If Not IsArray(strDatnam) Then Exit Sub
Set wbZiel = ActiveWorkbook
Application.ScreenUpdating = False
For i = LBound(strDatnam) To UBound(strDatnam)
Set wb = Workbooks.Open(strDatnam(i), ReadOnly:=True)
For j = 1 To ActiveWorkbook.Worksheets.Count
Set ws = wb.Worksheets(j)
With wbZiel
ws.Copy After:=.Sheets(.Sheets.Count)
.Sheets(.Sheets.Count).Name = _
"Table" & Format(i, "0_") & Format(j, "0") 'wb.Name & j
End With
Next
wb.Close savechanges:=False
Next
Application.ScreenUpdating = True
Set ws = Nothing
Set wb = Nothing: Set wbZiel = Nothing
End Sub
Public Sub zustel_02()
'Tabellen jeweils als Gruppe kopieren
Dim strDatnam As Variant
Dim wb As Workbook, wbZiel As Workbook
Dim i As Integer
Dim j As Integer
Dim Anzahl As Long
Set wbZiel = ActiveWorkbook
strDatnam = Application.GetOpenFilename("Datei (*.xl*),*.xl*", False, _
"Bitte gewünschte Datei(en) markieren ", False, True)
If Not IsArray(strDatnam) Then Exit Sub
Set wbZiel = ActiveWorkbook
Application.ScreenUpdating = False
For i = LBound(strDatnam) To UBound(strDatnam)
Set wb = Workbooks.Open(strDatnam(i), ReadOnly:=True)
For j = 1 To ActiveWorkbook.Worksheets.Count
wb.Worksheets(j).Name = "Table" & Format(i, "0_") & Format(j, "0")  'wb.Name & j
Next
With wbZiel
wb.Worksheets.Copy After:=.Sheets(.Sheets.Count)
End With
wb.Close savechanges:=False
Next
Application.ScreenUpdating = True
Set ws = Nothing
Set wb = Nothing: Set wbZiel = Nothing
End Sub
Public Sub zustel_03()
'Tabellenbereiche jeweils in neues Tabellenblatt in Zielmappe kopieren
Dim strDatnam As Variant
Dim wb As Workbook, wbZiel As Workbook
Dim ws As Worksheet
Dim i As Integer
Dim j As Integer
Dim Zei As Long, Spa As Long
Dim Anzahl As Long
Set wbZiel = ActiveWorkbook
strDatnam = Application.GetOpenFilename("Datei (*.xl*),*.xl*", False, _
"Bitte gewünschte Datei(en) markieren ", False, True)
If Not IsArray(strDatnam) Then Exit Sub
Set wbZiel = ActiveWorkbook
Application.ScreenUpdating = False
For i = LBound(strDatnam) To UBound(strDatnam)
Set wb = Workbooks.Open(strDatnam(i), ReadOnly:=True)
For j = 1 To ActiveWorkbook.Worksheets.Count
With wbZiel
.Worksheets.Add After:=.Sheets(.Sheets.Count)
.Sheets(.Sheets.Count).Name = _
"Table" & Format(i, "0_") & Format(j, "0") 'wb.Name & j
End With
Set ws = wb.Worksheets(j)
With ws
With .UsedRange
Spa = .Column + .Columns.Count - 1
Zei = .Row + .Rows.Count - 1
End With
.Range(.Cells(1, 1), .Cells(Zei, Spa)).Copy
End With
With wbZiel
With .Sheets(.Sheets.Count)
.Cells(1, 1).PasteSpecial Paste:=xlPasteColumnWidths
.Cells(1, 1).PasteSpecial Paste:=xlPasteAll
End With
End With
Application.CutCopyMode = False
Next
wb.Close savechanges:=False
Next
Application.ScreenUpdating = True
Set ws = Nothing
Set wb = Nothing: Set wbZiel = Nothing
End Sub

Anzeige
AW: Excell-Dateien in eine Datei als Sheet
08.09.2015 10:34:46
Hans
Vielen Dank

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige