stacko22
Goto Top

Wie mehrere Zellen aus mehreren Excel-Dateien auslesen und in eine neue Datei untereinander einfügen?

Hallo liebes Forum,

Ich möchte ein Excel Makro basteln, das in eine Datei Zeileninhalte aus mehreren Excel-Dateien einfügt. Nach langem Probieren und Abgleichen mit vorhandenen Makros habe ich noch keine Lösung gefunden... Ich hoffe hier kann mir jemand helfen.

Die einzelnen Excel-Dateien sehen so aus, dass sie Werte von H7 bis H24, einen Wert in C5 und evtl Werte von J7 bis unbestimmt haben.
Diese Werte sollen dann in einer neuen Tabelle jeweils untereinander aufgelistet werden ab Zeile 3.
Wenn möglich die Werte von Spalte H in Spalte A, die Werte von Spalte C in Spalte B und die Werte von Spalte J in Spalte C anzeigen lassen.

Für eure Unterstützung wäre ich euch sehr sehr dankbar!

Vielen Dank!

Grüße
Stacko22

Content-Key: 562636

Url: https://administrator.de/contentid/562636

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: 143728
Lösung 143728 02.04.2020, aktualisiert am 06.04.2020 um 12:16:56 Uhr
Goto Top
Kein Thema das man groß diskutieren müsste face-smile.
Sub Kopiere_von_Mappen()
    On Error GoTo Failure
    Const QUELLE = "D:\quelle"  

    Set wsTarget = Sheets(1)

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
    
    file = Dir(QUELLE & "\*.xlsx")  
    While file <> ""  
        With GetObject(QUELLE & "\" & file).Sheets(1)  
            .Range("H7:H24").Copy  
            wsTarget.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats  
            .Range("C5").Copy  
            wsTarget.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats  
            set rngEnd = .Cells(Rows.Count, "J").End(xlUp)  
            if rngEnd.Row > 6 then 
                .Range("J7",rngEnd).Copy  
                wsTarget.Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats  
             End if
            .Parent.Close False
        End With
        file = Dir
    Wend
    
Failure:
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
    If Err.Number <> 0 Then
        MsgBox "Error: " & Err.Description & " | " & Err.Source  
    End If
End Sub
Fertig.

Nach langem Probieren und Abgleichen mit vorhandenen Makros
Vielleicht wäre es besser VBA gleich vernünftig zu erlernen, statt sich nen Wurm zu suchen, dann erübrigen sich auch zukünftige Suchorgien weil man es beherrscht face-smile.
Mitglied: stacko22
stacko22 06.04.2020 um 10:46:28 Uhr
Goto Top
Hallo cabrinha,

vielen Dank für die Antwort! Makro funktioniert super!

Im Wertebereich H7:H24 und J7:J24 variiert die Zeilenanzahl ab und zu. Also manchmal hab ich Werte von H7 bis H24 und manchmal nur von H7 bis H23 oder weniger! Gibt es eine Möglichkeit auch leere Wertebereiche einfach auszulassen und mit der nächsten Tabelle weiterzumachen?

Über eine weitere Hilfe wäre ich sehr dankbar!

Grüße
Stacko22
Mitglied: 143728
143728 06.04.2020 aktualisiert um 11:26:25 Uhr
Goto Top
Zitat von @stacko22:

Hallo cabrinha,

vielen Dank für die Antwort! Makro funktioniert super!

Im Wertebereich H7:H24 und J7:J24 variiert die Zeilenanzahl ab und zu. Also manchmal hab ich Werte von H7 bis H24 und manchmal nur von H7 bis H23 oder weniger! Gibt es eine Möglichkeit auch leere Wertebereiche einfach auszulassen und mit der nächsten Tabelle weiterzumachen?
Macht das Skript doch schon face-smile. Es ermittelt die letzte belegte Zelle in diesen Spalten und übernimmt nur die den Bereich bis zur letzten belegten Zelle. Wir wissen ja nicht wie deine Tabellen sonst aussehen.
Mitglied: stacko22
stacko22 06.04.2020 um 12:09:57 Uhr
Goto Top
Ja das stimmt schon, aber manchmal steht in J7 bis J24 garnichts drin! Wird dieser Wertebereich in einer Tabellen dann einfach übersprungen?

Entschuldigung für die vielen Fragen!
Mitglied: 143728
143728 06.04.2020 aktualisiert um 12:21:02 Uhr
Goto Top
Zitat von @stacko22:

Ja das stimmt schon, aber manchmal steht in J7 bis J24 garnichts drin! Wird dieser Wertebereich in einer Tabellen dann einfach übersprungen?
Jepp!