1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[Excel] Tabellen zusammenführen Code ändern

Dieses Thema im Forum "Office-Anwendungen" wurde erstellt von Thor_sten, 8. August 2017.

  1. Thor_sten

    Thor_sten Grünschnabel

    Hallo liebe Forumsgemeinde, ich hab mal wieder eine Frage.:rolleyes:

    Ich benutze momentan folgenden Code um alle Tabellen aus einen bestimmten Ordner in einer neuen Datei zusammenzufassen.

    Code (Text):
    1. Sub MWTabellenAusMehrerenDateienEinlesen()
    2.    Dim oTargetSheet As Object
    3.    Dim oSourceBook As Object
    4.    Dim sPfad As String
    5.    Dim sDatei As String
    6.    Dim lErgebnisZeile As Long
    7.    Dim s As Long
    8.    Dim z As Long
    9.  
    10.      Application.ScreenUpdating = False 'Das "Flackern" ausstellen
    11.    
    12.      'Schritt 1: Neues Arbeitsblatt für die Ergebnisse erstellen
    13.      Set oTargetSheet = ActiveWorkbook.ActiveSheet
    14.      lErgebnisZeile = 1 'Ergebnisse eintragen ab Zeile 1
    15.    
    16.      'Schritt 2: Schleife über alle Excel Dateien in einem Verzeichnis
    17.      sPfad = "C:\test3\"
    18.      sDatei = Dir(CStr(sPfad & "*.xl*")) 'Alle Excel Dateien
    19.    
    20.      Do While sDatei <> ""
    21.    
    22.          'Schritt 3: öffnen der Datei und Datenübertragung
    23.          Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True) 'nur lesend öffnen
    24.        
    25.          'Datenübertragung alle genutzten Zeilen und Spalten
    26.          For z = 1 To oSourceBook.Sheets("Tabelle1").UsedRange.Rows.Count
    27.              'Keine Leerzeilen verarbeiten
    28.              If Trim(CStr(oSourceBook.Sheets("Tabelle1").Cells(z, 1).Value)) <> "" Then
    29.                  For s = 1 To oSourceBook.Sheets("Tabelle1").UsedRange.Columns.Count
    30.                      'Spalte 2 bis n - Tabelleninhalte des Arbeitsblattes "Tabelle1"
    31.                      oTargetSheet.Cells(lErgebnisZeile, s).Value = _
    32.                          oSourceBook.Sheets("Tabelle1").Cells(z, s).Value
    33.                  Next s
    34.                  lErgebnisZeile = lErgebnisZeile + 1
    35.              End If
    36.          Next z
    37.        
    38.          'Schritt 4: Datei wieder zu machen und nächste Schleifenrunde
    39.          oSourceBook.Close False 'nicht speichern
    40.        
    41.          'Nächste Datei
    42.          sDatei = Dir()
    43.      Loop
    44.    
    45.      Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
    46.    
    47.      'Variablen aufräumen
    48.      Set oTargetSheet = Nothing
    49.      Set oSourceBook = Nothing
    50. End Sub
    Der aktuelle Code kopiert die Tabellen ab Zeile 1 und fügt alle zusammengefasst in Zeile 1 im neuen Dokument zusammen.
    Die zu importierenden Dateien sollen ab Zeile 2 kopiert werden und ab Zeile 2 eingefügt werden, da ich in dem zusammengeführten Dokument mit einer Wiederholungszeile arbeite.

    Und ob und falls ja, wie es möglich ist, die zu importierenden Daten aus dem Ordner auszuwählen, anstatt gleich alle zu importieren?

    Vielleicht hat ja einer eine Idee oder eine Lösung dazu.


    Viele Grüße

    Thorsten
     
Die Seite wird geladen...