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

Zeilen aus externen Dateien einlesen

Zeilen aus externen Dateien einlesen
09.12.2016 16:26:28
Blue
Servus,
mir hatte vor einer gewissen Zeit "ChrisL" bei einem Makro geholfen.
Welches den 3. Eintrag aus externen Dateien in Tabelle2 Spalte A einträgt.
Nun bräuchte ich noch den 4. Eintrag in Spalte B eingetragen.
Könnte mir da jemand helfen?
Hier mal das Makro was ich bis jetzt habe.
Sub F_Dateien_einlesen()
Dim spfad As String, sExt As String, sDatei As String
Dim wb1 As Workbook, WB2 As Workbook
Set wb1 = ThisWorkbook
spfad = Left(wb1.Path, InStrRev(wb1.Path, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\")) & "Ordner c\Ordner cb\"
sExt = "*.f"
sDatei = Dir(spfad & sExt)
Application.ScreenUpdating = False
wb1.Worksheets(2).Cells.Delete
Do While Len(sDatei) > 0
Set WB2 = Workbooks.Open(spfad & sDatei)
WB2.Worksheets(1).Rows(3).Copy wb1.Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
WB2.Close
sDatei = Dir()
Loop
End Sub

mfg Blue Bird

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen aus externen Dateien einlesen
09.12.2016 16:50:06
UweD
Hallo
ungeprüft...

Do While Len(sDatei) > 0
Set WB2 = Workbooks.Open(spfad & sDatei)
LR=Worksheets(2).Rows.Count, 1).End(xlUp)+1
WB2.Worksheets(1).cells(3, 1).Copy wb1.Worksheets(2).Cells(LR, 1)
WB2.Worksheets(1).cells(4, 1).Copy wb1.Worksheets(2).Cells(LR, 2)
WB2.Close
sDatei = Dir()
Loop

LG UweD
AW: Zeilen aus externen Dateien einlesen
09.12.2016 16:55:53
Blue
Servus Uwe,
bei folgender Zeile kommt "Syntaxfehler"
LR=Worksheets(2).Rows.Count, 1).End(xlUp)+1
mfg Blue Bird
AW: Zeilen aus externen Dateien einlesen
09.12.2016 22:46:52
Matthias
Hallo
Da könnte man aber auch selbst drauf kommen ;-)
Wenn Du Dir mal die Folgezeile dieser Zeile anschaust
LR=Worksheets(2).Rows.Count, 1).End(xlUp)+1

Hier gibts ja einmal Klammer zu ohne Klammer auf
Vermutlich sollte es so sein:
LR=Worksheets(2).cells(Rows.Count, 1).End(xlUp)+1
Gruß Matthias
Anzeige
AW: Zeilen aus externen Dateien einlesen
10.12.2016 11:16:52
Nepumuk
Hallo,
so:
With Worksheets(2)
LR=.Cells(.Rows.Count, 1).End(xlUp).Row + 1
End With

Gruß
Nepumuk
Ich weiß ...
10.12.2016 11:28:36
Matthias
Hallo,
... nur darum ging es in meiner Antwort nicht.
Ich wollte klar machen das eine Klammer fehlte und er das
selbst hätte bemerken müssen.
Gruß Matthias
AW: Ich weiß ...
12.12.2016 08:12:11
Blue
Servus,
danke schonmal für eure Hilfe, das da was mir der Klammer sein muss konnte ich mir denken aber ich habe es einfach nicht richtig hinbekommen.
Habe jetzt mal eure ganzen Lösungen probiert, aber irgendwie komm ich da nicht auf das richtige Ergebniss.
Bin bis jetzt so weit, das mit dem Vorschlag von Nepumuk bekomme ich garnicht hin.
Sub F_Dateien_einlesen()
Dim spfad As String, sExt As String, sDatei As String
Dim wb1 As Workbook, WB2 As Workbook
Set wb1 = ThisWorkbook
spfad = Left(wb1.Path, InStrRev(wb1.Path, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\")) & "Ordner c\Ordner cb\"
sExt = "*.f"
sDatei = Dir(spfad & sExt)
Application.ScreenUpdating = False
wb1.Worksheets(2).Cells.Delete
Do While Len(sDatei) > 0
Set WB2 = Workbooks.Open(spfad & sDatei)
LR=Worksheets(2).cells(Rows.Count, 1).End(xlUp)+1
WB2.Worksheets(1).cells(3, 1).Copy wb1.Worksheets(2).Cells(LR, 1)
WB2.Worksheets(1).cells(4, 1).Copy wb1.Worksheets(2).Cells(LR, 2)
WB2.Close
sDatei = Dir()
Loop
End Sub
Vlt. könnte mir jemmand das Makro final richtig schreiben, das wäre voll nett von euch.
mfg Blue Bird
Anzeige
Bitte um hilfe von Nepumuk
13.12.2016 13:53:10
Nepumuk
Servus Nepumuk,
könntest du mir vlt nochmal erklären wo ich deine Korrektur zu meinem Makro einpflegen muss.
Bekomme es leider selber nicht hin, das es funktioniert.
In meinem letzten Eintrag habe ich nochmal das komplette Makro dargstellt.
mfg Blue Bird
AW: Bitte um hilfe von Nepumuk
13.12.2016 14:37:33
Nepumuk
Hallo nochmal
ich baue selten Musterdateien nach, deshalb hier eine weitere Mutmassung

Sub F_Dateien_einlesen()
Dim spfad As String, sExt As String, sDatei As String
Dim wb1 As Workbook, WB2 As Workbook
Set wb1 = ThisWorkbook
spfad = Left(wb1.Path, InStrRev(wb1.Path, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\") - 1)
spfad = Left(spfad, InStrRev(spfad, "\")) & "Ordner c\Ordner cb\"
sExt = "*.f"
sDatei = Dir(spfad & sExt)
Application.ScreenUpdating = False
wb1.Worksheets(2).Cells.Delete
Do While Len(sDatei) > 0
Set WB2 = Workbooks.Open(spfad & sDatei)
LR=Worksheets(2).cells(Worksheets(2).Rows.Count, 1).End(xlUp)+ _
1
WB2.Worksheets(1).cells(3, 1).Copy wb1.Worksheets(2).Cells(LR, 1)
WB2.Worksheets(1).cells(4, 1).Copy wb1.Worksheets(2).Cells(LR, 2)
WB2.Close
sDatei = Dir()
Loop

vor den ,rows fehlt die Tabellenblatt- Angabe
LG UweD
Anzeige
AW: Bitte um hilfe von Nepumuk
13.12.2016 15:23:26
Nepumuk
Servus Uwe,
ich bekomme bei folgender Zeile immer noch folgenden Fehler.
LR = Worksheets(2).Cells(Worksheets(2).Rows.Count, 1).End(xlUp) + 1
"Laufzeitfehler´9´: Index außerhalb des gültigen Bereichs"
Was mach ich den falsch?
mfg Blue Bird
AW: Bitte um hilfe von Nepumuk
13.12.2016 16:32:22
Nepumuk
Hallo,
teste mal:
Sub F_Dateien_einlesen()
    
    Dim spfad As String, sExt As String, sDatei As String
    Dim wb1 As Workbook, WB2 As Workbook
    
    Set wb1 = ThisWorkbook
    spfad = Left(wb1.Path, InStrRev(wb1.Path, "\") - 1)
    spfad = Left(spfad, InStrRev(spfad, "\") - 1)
    spfad = Left(spfad, InStrRev(spfad, "\") - 1)
    spfad = Left(spfad, InStrRev(spfad, "\")) & "Ordner c\Ordner cb\"
    sExt = "*.f"
    sDatei = Dir$(spfad & sExt)
    
    Application.ScreenUpdating = False
    wb1.Worksheets(2).Cells.Delete
    
    
    Do Until sDatei = vbNullString
        Set WB2 = Workbooks.Open(spfad & sDatei)
        With wb1.Worksheets(2)
            LR = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        End With
        WB2.Worksheets(1).Cells(3, 1).Copy wb1.Worksheets(2).Cells(LR, 1)
        WB2.Worksheets(1).Cells(4, 1).Copy wb1.Worksheets(2).Cells(LR, 2)
        WB2.Close False
        sDatei = Dir$()
    Loop
End Sub

Gruß
Nepumuk
Anzeige
Top, vielen dank
13.12.2016 16:57:05
Blue
Servus Nepumuk,
jetzt funktioniert es!!!
Danke dir vielmals und natürlich auch an alle die mit geholfen haben!
mfg Blue Bird

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige