Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Aus mehreren Excel Arbeitsblättern eines machen

Betrifft: Aus mehreren Excel Arbeitsblättern eines machen von: Alois
Geschrieben am: 10.03.2016 15:54:22

Guten Tag zusammen,

ich habe ca. 60 einzelne Excel Dateien, die als Excel Arbeitsblatt mit Makros gespeichert sind. Jede Datei enthält ein oder zwei Bilder sowie einen Textteil. Alles ist als eine A4 Seite in einer Tabelle enthalten.
Ich möchte nun aus den einzelnen Dateien eine einzige machen, damit ich durchscrollen kann und nicht mehr jede einzeln öffnen muss. Kann mir damit jemand helfen? Ansonsten muss ich das per copy/paste erledigen, was mühsam ist.

Vielen Dank für jede Hilfe!

  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines von: Michael (migre)
Geschrieben am: 10.03.2016 16:17:35

Hallo Alois!

Weil ich heute schon eine ähnliche Geschichte als PDF-Zusammenfassung hier im Forum eingestellt habe, hier für .xlsm-Dateien: in ein allgemeines Modul

Sub MappenZusammenfassen()

    Dim SuchDialog As FileDialog
    Dim Pfad As String
    Dim Datei As String
    Dim QuellMappe As Workbook
    Dim ZielMappe As Workbook
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Set ZielMappe = Workbooks.Add
    
    'Auswahl-Dialog für durchsuchtes Verzeichnis
    Set SuchDialog = Application.FileDialog(msoFileDialogFolderPicker)
    With SuchDialog
        .Title = "Bitte Verzeichnis wählen"
        .AllowMultiSelect = False
        If .Show <> -1 Then
            MsgBox "Vorgang abgebrochen", vbInformation
            Exit Sub
        Else: Pfad = .SelectedItems(1) & "\"
        End If
    End With
    
    'Durchlaufen der .xlsm-Dateien im o.a. Verzeichnis
    Datei = Dir(Pfad & "*.xlsm", vbDirectory)
    
    'Abbruch wenn keine .xlsm-Dateien im o.a. Verzeichnis sind
    If Len(Datei) = 0 Then
        MsgBox "Keine Excel-Datei vorhanden. Abbruch!"
        Exit Sub
    End If

    'Mappen in ausgewählten Verzeichnis nacheinander öffnen
    'Jeweils erstes Blatt in neue Mappe kopieren
    Do While Len(Datei) > 0
        Set QuellMappe = Workbooks.Open(Filename:=Pfad & Datei)
        With QuellMappe
            .Worksheets(1).Copy _
                after:=ZielMappe.Worksheets(ZielMappe.Worksheets.Count)
            .Close savechanges:=False
        End With
        Datei = Dir
    Loop

    'Neue Mappe im o.a. Pfad speichern
    With ZielMappe
        .Worksheets(1).Delete
        .SaveAs Filename:=Pfad & "Zusammen", FileFormat:=52
        .Close savechanges:=False
    End With
    
    'Aufräumen
    Set QuellMappe = Nothing
    Set ZielMappe = Nothing
    Set SuchDialog = Nothing
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub
Damit erhältst Du eine Pfad-Auswahl, alle .xlsm-Dateien in dem Pfad werden durchgegangen und deren jeweils erstes Blatt in eine neue Mappe kopiert. Diese Mappe wird dann in den angegebenen Pfad als "Zusammenfassung.xlsm" gespeichert.

LG
Michael


  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines machen von: Fennek
Geschrieben am: 10.03.2016 16:34:41

Hallo Alois,

da ich den Code nicht austesten kann und einige Angaben, z.b. Sheet-Namen unklar sind, hier ein Gerüst. Der Code setzt voraus, dass alle auszulesenden Dateien in einem Ordner liegen, aber nicht die Datei, die alles zusammenträgt. Sofern jeweils nur ein Sheet vorliegt, sollte es klappen.

Sub Alois()
Dim WBZ as workbook 'Ziel
Dim WBQ as workbook 'Quelle
Set wbz = thisworkbook
sPfad = "c:\temp\"  'anpassen
sFile = dir(sPfad & "*.xlsm")
Do until sFile = ""
Set wbq = workbooks.open(sPfad & sFile)
wbq.sheets(1).copy after:=wbz.sheets(wbz.sheets.count)
Wbq.close 0
sFile = dir
Loop
Wbz.save
End sub

Bis das läuft, hast du noch eine Menge debughing-Arbeit zu leisten.

Mfg


  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines machen von: Alois
Geschrieben am: 16.03.2016 12:15:07

Vielen Dank für die Antworten! das zusammenfügen klappt wunderbar.

Jedoch habe ich in den einzelnen Arbeitsblättern Bilder, welche ich über ein Makro mit Verknüpfung eingefügt habe. Ursprünglich habe ich mir eine Vorlage erstellt, aus der dann 60 individuelle Dateien mit Bildern geweporden sind (wie oben beschrieben).

Beim zusammenfügen werden die Bilder nicht "mitgenommen". Das heißt, ich bekomme die Meldung: " das Bildelement mit der Bez.-rId1 wurde in der Datei nicht gefunden". Weiterhin habe ich auch unser Firmenlogo in der Vorlage platziert, welches nun auch die gleiche Fehlermeldung aufwirft.

Gibt es eine Lösung für das Problem, damit die Bilder "erscheinen" ?

Vielen Dank für jede Hilfe!


  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines von: Michael (migre)
Geschrieben am: 16.03.2016 13:08:32

Hallo Alois!

Du meldest Dich erst nach sechs Tagen wieder, nur um dann Deine ursprüngliche Frage mit neuen Anforderungen zu ergänzen? Das finde ich ganz schön dreist.

Arbeitsblättern Bilder, welche ich über ein Makro mit Verknüpfung eingefügt habe
Das ist mir nicht ganz klar; was hast Du da wie eingefügt? Meinst Du damit Tabellenbereich als verknüpfte Grafik?

LG
Michael


  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines von: Alois
Geschrieben am: 16.03.2016 14:50:22

Hallo Michael,

danke für deine Antwort. Ich bin leider nicht dazu gekommen mich um dieses Projekt zu kümmern, deshalb die späte Reaktion. Ich habe in die jeweiligen Dateien einen "Platzhalter" eingefügt, den ich mir aus dem Internet heruntergeladen habe, um schneller Bilder in der passenden Größe einfügen zu können (siehe Anhänge). Ich kann es leider nicht näher erklären, da ich mich mit der Materie nicht auskenne.
Vielleicht kannst du mein Problem anhand der Anhänge nachvollziehen.

Vielen Dank für deine Mühen.

Grüsse, Alois


  

Betrifft: "Anhänge"/Dateien fehlen noch! owT von: Michael (migre)
Geschrieben am: 16.03.2016 14:55:54




  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines von: Alois
Geschrieben am: 16.03.2016 14:59:31

https://www.herber.de/bbs/user/104379.xlsm

https://www.herber.de/bbs/user/104380.xlsm


  

Betrifft: OK, schau ich mir morgen an! owT von: Michael (migre)
Geschrieben am: 16.03.2016 16:17:13




  

Betrifft: AW: Aus mehreren Excel Arbeitsblättern eines von: Strolz
Geschrieben am: 20.03.2016 10:05:42

Hallo Michael,

hattest du inzwischen Zeit dir meine Belange anzusehen?

Grüße und einen schönen Sonntag.

Alois


 

Beiträge aus den Excel-Beispielen zum Thema "Aus mehreren Excel Arbeitsblättern eines machen"