simonec

Mehrere .xlsx Excel-Dateien zusammenführen - bestimmte Zellen auslesen - als .txt speichern - und das komplex

Hallo zusammen,
zäume das Pferd von hinten auf:

Am Ende soll eine .txt Datei mit folgendem Inhalt:geschrieben werden::

Datum, Zahl1, Zahl2, Zahl3, Zahl4
Datum, Zahl1, Zahl2, Zahl3, Zahl4
Datum, Zahl1, Zahl2, Zahl3, Zahl4
usw.

Über 1000 .xlsx, die in einem Ordner liegen, sind mit jeweils 2-3 Arbeitsblättern ausgestattet und sollen selektiv ausgelesen werden.

Datum:
Aus dem 2. Arbeitsblatt der jeweiligen Dateien soll das Datum, welches -wie soll es anders sein - je nach Datei in Zellen A2-A4 verstreut zu finden ist, ausgelesen werden. Allerdings hat Zelle A2 immer folgenden Inhalt: "Date: mm/dd/yy". Benötigt wird aber nur "mm/dd/yy". Falls es was bringt: im Dateinamen der jeweiligen Dateien ist auch das Datum enthalten. Der Dateiname sieht folgendermaßen aus: "berechnungen_yyyymmdd.xlsx" wobei y= Jahr, m =Monat und d=Tag.

Zahl1:
In irgend einer Zeile des 2. Arbeitsblattes steht ein Name Bsp: "Peter positiv" in Spalte D, welchem in Spalte J und Spalte K der jeweiligen Zeile Zahlen zugeordnet sind. Diese Spalte J soll
Zahl1 werden.

Zahl2:
Spalte K aus Zeile "Peter positiv" (s.Zahl1.) möchte Zahl2 werden.

Zahl3:
In irgend einer weiteren Zeile des 2. Arbeitsblattes steht ein weiterer Name Bsp: "Peter negativ" in Spalte D, welchem in Spalte J und Spalte K der jeweiligen Zeile Zahlen zugeordnet sind. Diese Spalte J soll Zahl3 werden.

Zahl4:
Spalte K aus Zeile "Peter negativv" (s.Zahl3) darf Zahl4 werden.
Habe schon mit folgendem Script rumgefummelt - kriegs aber einfach nicht hin. Bin absulte Laiin.
Bin für Eure Hilfe äußerst dankbar.


Code-Beispiel (gestestet mit VB6)

'
' Excel-Makro: Excel-Dateien selektiv auslesen
' >>> Erstellt eine neue Textdate <<<
' Autor: Peter_Punkt
' Version: 01 - 29.06.2010
' Hinweis: Verweis auf 'Microsoft Excel xx.x Object Library' notwendig
'

Sub ExcelZusammenFühren()

Const OrdnerPfad As String = "C:\$PP\$XLS\"

Dim xls_Mappe As Excel.Workbook ' Excel Arbeitsmappe
Dim xls_Blatt As Excel.Worksheet ' Excel Tabelle

Dim fso As Object ' FileSystemObject
Dim Dialog As Object ' Datei-Öffnen Dialog
Dim Textdatei As Object ' Ausgabedatei

Dim Zeile As Integer
Dim Spalte As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim Pos As Long

Set Dialog = CreateObject("MSComDlg.CommonDialog")
Dialog.InitDir = OrdnerPfad
Dialog.Filter = "*.xls (Excel)|*.xls" ' Nur Excel-Dateien anzeigen
Dialog.ShowOpen ' Dialog öffnen

If Dialog.FileName = "" Then Exit Sub ' Falls Abbruch

Dateiname = Dialog.FileName ' Dateiname mit Pfad
'MsgBox Dateiname

Set fso = CreateObject("Scripting.FileSystemObject")
Set xls_Mappe = Workbooks.Open(Dateiname)
Set xls_Blatt = xls_Mappe.Worksheets("Tabelle4")

Pos = InStrRev(Dateiname, ".") ' Dateiendung suchen
Set Textdatei = fso.CreateTextFile(Left$(Dateiname, Pos) & "txt", True) ' .txt
'MsgBox Left$(Dateiname, Pos) & "txt"

For Zeile = 1 To 11
If Zeile = 6 Or Zeile = 9 Then GoTo Weiter

xls_Blatt.Activate
xls_Blatt.Range("A" & Zeile).Select ' Aktive Zelle auswählen

Textzeile = ActiveCell.Value
For Spalte = 1 To 250 ' Maximal 250 Spalten pro Zeile untersuchen
If ActiveCell.Offset(0, Spalte).Value = "" Then
Exit For ' Ende der Zeile
End If
Textzeile = Textzeile & vbTab & ActiveCell.Offset(0, Spalte).Value
Next
Textdatei.Writeline (Textzeile) ' Zeile schreiben
Weiter:
Next

xls_Mappe.Close ' Excel-Datei schließen
Textdatei.Close ' Textdatei schließen

Set Textdatei = Nothing ' Resourcen wieder freigeben
Set Dialog = Nothing
Set fso = Nothing
Set xls_Blatt = Nothing
Set xls_Mappe = Nothing

End Sub
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 316349

Url: https://administrator.de/forum/mehrere-xlsx-excel-dateien-zusammenfuehren-bestimmte-zellen-auslesen-als-txt-speichern-und-das-komplex-316349.html

Ausgedruckt am: 19.07.2025 um 02:07 Uhr

StefanKittel
StefanKittel 27.09.2016 um 17:22:12 Uhr
Hallo,

sorry, aber was ist die Frage?
Du kannst sowas mit VBA programmieren oder programmieren lassen.

Stefan
simonec
simonec 28.09.2016 um 15:56:51 Uhr
Hallo Stefan, die Frage lautet, wie kann ich den geposteten Code auf meine Bedürfnisse anpassen. Ich habe versucht den Code zu verstehen und umzuwandeln, allerdings fehlt mir das Know-how, so dass ich um Hilfe bitte.