Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateien auslesen zusammenfassen

Forumthread: Dateien auslesen zusammenfassen

Dateien auslesen zusammenfassen
05.02.2019 17:58:52
Stefan
Hallo zusammen
ich fasse mit dem Macro gleiche Tabellenblätter aus unterscheidlichen Dateien an sich erfolgreich zusammen.
Einziges Problem es müßte bei fehlen des gesuchten Tabellenblattes in einer Datei
(im vorliegenden Fall Tabellenblatt "Mo")das Macro abgefangen werden und einfach mit der nächsten ausgewählten Datei fortgefahren werden.
Wie müßte ich das u.g.Macro hierfür ergänzen ?
Sub Merge_All()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sh As Worksheet
Dim I As Long, k As Long, CountFiles As Long, J As Long, strData, _
kDS As Long, xKorr As Integer
files = Application.GetOpenFilename(, , , , True)
If VarType(files) = vbBoolean Then Exit Sub
Set sh = Sheets("Master")
For k = LBound(files) To UBound(files)
'Anzahl der Datensätze in der ausgewählten DAtei ermitteln
kDS = lastRowClosedFile(files(k), "Tabelle1", "A:A")
'ADODB-Connection erstellen
Set cnn = GetConnXLS(files(k))
If cnn Is Nothing Then
MsgBox "Check lai co so du lieu file: " & files(k)
Exit Sub
End If
'Select-Befehl zusammenstellen
strData = "SELECT * From [Mo$B:x" & kDS & "];"
'Recordset öffnen auf der Grundlage der Connection & Select-Befehl
Set rst = cnn.Execute(strData)
CountFiles = CountFiles + 1
If CountFiles = 1 Then
For J = 0 To rst.Fields.Count - 1
sh.Cells(3, J + 1).Value = rst.Fields(J).Name
Next J
End If
If k = 1 Then
xKorr = 1
Else
xKorr = 0
End If
sh.Range("I" & 4 + I - xKorr).Value = files(k)
I = I + sh.Range("A" & 4 + I).CopyFromRecordset(rst)
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
Next k
End Sub
LG
Stefan
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien auslesen zusammenfassen
05.02.2019 22:38:46
Piet
Hallo Stefan
da gibt es vielleicht eine ganz simple "blööde" Lösung, aber wenn sie funktioniert ...?
Setze VOR die For Next Schleife den Befehl:- On Error Goto Weiter
und VOR Next K das Label - Weiter: - (mit Doppelpunkt!) - das sollte ausreichen!
mfg Piet
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige