Excel - mehrere Mappen in einer

djbergo

Erfahrenes Mitglied
Hallo zusammen,

ich weiß nicht, ob ich hier richtig bin aber ich denke mal schon, da man ja bei Excel mit Makros (VB) arbeitet.
*** Kurze Informationen zu meiner Arbeitsoberfläche: MS Win XP / Office 2000 Business***

Ich versuche seit längerem vergebens eine Lösung zu finden automatisch Excel Tabellen (Eigenständige Mappen, die Automatisch in einem Verzeichnis gespeichert werden) in eine Mappe als je ein eigenes Blatt importieren zu lassen.
Jede Tabelle enthält eigene Makros, die ich deaktivieren kann, wenns notwendig ist.

Ist es möglich? Wenn ja, könnt ihr mir da weiterhelfen?
 
Sowas?

Visual Basic:
'Referenz auf 'Microsoft Scripting Runtime' muss gesetzt sein
Public Function importWs(Optional sourceFolderPath As String = "C:\temp\excelmap\data")
    Dim fso As New FileSystemObject
    Dim sourceWb As Workbook
    Dim targetWb As Workbook
    Dim myFile As File
On Error GoTo err_handler

    Set targetWb = ActiveWorkbook
    
    For Each myFile In fso.GetFolder(sourceFolderPath).Files
        Set sourceWb = Workbooks.Open(myFile.path)
        Call sourceWb.Worksheets(1).Copy(after:=targetWb.Sheets(targetWb.Sheets.Count))
        Call sourceWb.Close
    Next
    
exit_handeler:
    Set sourceWb = Nothing
    Set targetWb = Nothing
    Set myFile = Nothing
    Set fso = Nothing
    Exit Function
err_handler:
    Call msgbox(Err.Description)
    GoSub exit_handler
End Function
 
Wie kann ich die Funktion jetzt einbinden, sodass beim Öffnen der Tabelle die Excel Daten automatisch eingebunden werden?
 
Gehst in den VB-Editor.
Wählst dein Workbook aus.
Im grossen Fenster direkt oberhalb des Textbereiches gibt es 2 Dropdowns. Im Ersten steht '(Generals)' (oder halt was deutsches), im 2ten '(Declarations)'.
Klick auf '(Generals)' und wähle 'Workbook' aus.
Das generiert dir einen Code. Da rein kannst du jetzt den Aufruf setzen
Visual Basic:
Private Sub Workbook_Open()
    Call importWs("C:/Mein/Ordner/Pfad")
End Sub
 
Zurück