Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
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

Tabellenblätter in neuer Mappe zusammenführen

Tabellenblätter in neuer Mappe zusammenführen
Peter
Hallo,
in einem sonst leeren Verzeichnis habe ich x Excel Dateien (Mappen). In jeder Mappe enthält nur das erste Tabellenblatt Daten.
Ich möchte jetzt im gleichen Verzeichnis eine neue Excel Datei anlegen, in die der Reihe nach aus jeder der vorhandenen Dateien jeweils nur das erste Tabellenblatt 1:1 kopiert wird. Das Tabellenblatt erhält dabei genau den Namen der Datei, aus der es kopiert wurde (ohne .xls).
Am Schluss hat also die neue Excel Dateien genau so viele Tabellenblätter, wie vorher Excel Dateien in diesem Verzeichnis waren.
Idealerweise benötige ich ein Makro, dass unter Excel2011 funktioniert.
Wer kann helfen?
Peter

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabellenblätter in neuer Mappe zusammenführen
22.01.2012 13:57:03
Josef

Hallo Peter,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub importSheets()
  Dim objWB As Workbook
  Dim strPath As String, strFile As String
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  strPath = "E:\Forum" 'Verzeichnis - Anpassen!
  
  If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
  
  strFile = Dir(strPath & "*.xls*", vbNormal)
  
  Do While strFile <> ""
    If strFile <> ThisWorkbook.Name Then
      Set objWB = Workbooks.Open(strPath & strFile, UpdateLinks:=False)
      With ThisWorkbook
        objWB.Worksheets(1).Copy After:=.Sheets(.Sheets.Count)
        .Sheets(.Sheets.Count).Name = Left(strFile, InStrRev(strFile, ".") - 1)
      End With
      objWB.Close False
    End If
    strFile = Dir
  Loop
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'importSheets'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Modul - Modul1"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
  End With
  
  Set objWB = Nothing
End Sub



« Gruß Sepp »

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige