Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Dateien mittels Makro importieren |
19.04.2020 15:19:24 |
John Doe |
|
|
|
19.04.2020 15:47:35 |
X-Post |
|
|
|
19.04.2020 17:34:44 |
Gast73166 |
|
|
Von:
John Doe |
Datum:
19.04.2020 15:19:24 |
Views:
1022 |
Rating:
|
Antwort:
|
Thema:
Dateien mittels Makro importieren |
Hallo liebe VBA-Community,
habe folgendes Problem und hoffe es kann mir jemand weiterhelfen, da ich schon kurz vorm verzweifeln bin ;)
Ausgangssituation:
Ich habe eine Excel-Hauptdatei (anbei eine abgespeckte Beispieldatei: TEST.xlsm) mit einem Tabellenblatt Importliste. Per Makro sollen nun aus einem definierten Hauptverzeichnis der Inhalt angeführten Dateien im Tabellenblatt Importliste (Spalte A --> die zu importierenden Dateien sind alle gleich aufgebaut und haben immer nur 1 Tabellenblatt mit Daten)) in definierte Tabellenblätter (Spalte B) ab einer gewissen Zeile (Spalte C) importiert werden. Zusätzlich sollen die vorhandenen Daten in den Tabellenblätter-bevor die neuen importiert- gelöscht werden.
Ich brauche deshalb eine Makro-Lösung, da täglich ca. 50 Einzeldateien in einem Ordner abgespeichert werden und aus diesen ein standardiesierter Bericht in der Excel Hauptdatei erzeugt wird.
Anbei habe ich eine entsprechende Test-Datei (TEST_V2.xlsm) mit Musteraufbau und Makro angefügt.
Leider weiß ich nicht was in meinem Makro nicht passt.
Ich hoffe ihr könnt mir weiterhelfen BIIIIITTTTEEEE ;)
MAKRO:
Sub IMPORTIERE()
'Das ist die Importtaste in der Tabelle IMPORTLISTE mit der alle Quelldateien ausgelesen und
'in die betreffenden Zieltabellen eingefügt werden
Dim DATEI As String 'Quelldateiname
Dim PFAD As String 'Quelldateipfad
Dim I As Long
Dim T As Integer
Dim s As Integer
Dim WERT
Dim ZIELTABELLE As String 'Name der Zieltabelle
Dim BEREICH As String 'der zu kopierende Zellbereich der Quelldatei
Dim SPALTE As Integer
Dim ZEILE As Integer
Dim ERSTEZEILE As Integer
Dim ZEILENDIFFERENZ As Integer 'wieviel höher die Zieltabellenzeilen sind als die _
Quelltabellenzeilen
Dim AKTUELLEDATEI
Dim LETZTEZELLE
'Quellpfad um \ erweitern
If Right(Sheets("Importliste").Range("F7"), 1) <> "\" Then Sheets("Importliste").Range("F7") = _
_
Sheets("Importliste").Range("F7") & "\"
'ChDrive (Left(Sheets("Importliste").Range("F7"), 1))
'ChDir (Sheets("Importliste").Range("F7"))
AKTUELLEDATEI = ActiveWorkbook.Name
On Error GoTo DATEI_NICHT_GEFUNDEN
'Schleife durch alle Dateien in der Tabelle IMPORTLISTE
For s = 2 To LETZTEZELLE(Worksheets("Importliste")).Row
PFAD = Sheets("Importliste").Range("F7")
DATEI = Sheets("Importliste").Range("A" & s).Text
ZIELTABELLE = Sheets("Importliste").Range("B" & s).Text
BEREICH = "A" & Sheets("Importliste").Range("B" & s) & ":IU60000"
ERSTEZEILE = Sheets("Importliste").Range("C" & s).Text
Sheets(ZIELTABELLE).Range("A1:IV65000").ClearContents
Application.ScreenUpdating = False 'Bild nicht aktualisieren
Workbooks.Open PFAD & DATEI
ZEILENDIFFERENZ = ERSTEZEILE - 1
For ZEILE = ERSTEZEILE To LETZTEZELLE(Workbooks(DATEI).Worksheets(1)).Row
For SPALTE = 1 To LETZTEZELLE(Workbooks(DATEI).Worksheets(1)).Column
Workbooks(AKTUELLEDATEI).Sheets(ZIELTABELLE).Cells(ZEILE - ZEILENDIFFERENZ, SPALTE) = _
Workbooks(DATEI).Worksheets(1).Cells(ZEILE, SPALTE)
Next SPALTE
Next ZEILE
Workbooks(DATEI).Close
Application.ScreenUpdating = True
Next s
Exit Sub
DATEI_NICHT_GEFUNDEN:
MsgBox "Die Datei ’" & DATEI & "’ konnte nicht im Verzeichnis ’" & PFAD & "’ gefunden werden." & _
_
vbCrLf & vbCrLf & _
"Stellen Sie sicher, dass die Datei im angegebenen Verzeichnis existiert oder ändern Sie die _
Einstellungen hier in der Tabelle ’Importliste’."
End Sub
Beispieldatei:
Vielen Dank schon jetzt für die Rückmeldungen ;)
lg JD
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Dateien mittels Makro importieren |
19.04.2020 15:19:24 |
John Doe |
|
|
|
19.04.2020 15:47:35 |
X-Post |
|
|
|
19.04.2020 17:34:44 |
Gast73166 |
|
|