Ordner auswählen - xlsDateien darin auslesen - in neue Tabelle einfügen
mit VBA möglich?
Hallo,
komme aus der Java-Fraktion und kenne mich mit VBA kaum aus, doch VBA scheint für diese Lösung geeigneter zu sein.
Ich möchte folgendes lösen:
(Info: xls-Dateien haben unterschiedlich viele Zeilen. Spalten bleiben konstant)
1. Via Auswahlfenster ein Ordner auswählen
2. Ordnerauswahl in Variable speichern
3. bestimmte Zellen in der Zeile/Zeilen sollen aus allen xls-Dateien in dem Ordner (und evtl. Unterordner) kopiert werden und ->
4. in eine neu generierte Datei hintereinander eingefügt werden
Dachte das sei "mal eben" programmiert, aber ist nicht so trivial wie ich dachte.
Gibt es vielleicht Anregungen oder Lösungen, damit ich das Rad nicht neu erfinden brauche?
Thx.
Simone
Hallo,
komme aus der Java-Fraktion und kenne mich mit VBA kaum aus, doch VBA scheint für diese Lösung geeigneter zu sein.
Ich möchte folgendes lösen:
(Info: xls-Dateien haben unterschiedlich viele Zeilen. Spalten bleiben konstant)
1. Via Auswahlfenster ein Ordner auswählen
2. Ordnerauswahl in Variable speichern
3. bestimmte Zellen in der Zeile/Zeilen sollen aus allen xls-Dateien in dem Ordner (und evtl. Unterordner) kopiert werden und ->
4. in eine neu generierte Datei hintereinander eingefügt werden
Dachte das sei "mal eben" programmiert, aber ist nicht so trivial wie ich dachte.
Gibt es vielleicht Anregungen oder Lösungen, damit ich das Rad nicht neu erfinden brauche?
Thx.
Simone
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78221
Url: https://administrator.de/forum/ordner-auswaehlen-xlsdateien-darin-auslesen-in-neue-tabelle-einfuegen-78221.html
Ausgedruckt am: 04.04.2025 um 21:04 Uhr
1 Kommentar
das kannst du recht einfach lösen.
Form erstellen direlement drauf setzen fielelemet drauf setzen.
in der direlemt.path setz du dirkt den pfad wo du hinwillst. In der Fileelement siehst du dann die Files in der Ordnerstruktur.
Dann muss du nur noch die xls öffnen nach den parametern suchen diese auslesen und in eine Datei wegschrieben. Dies machst du mit dem File System Objekt.
Das war es. Wenn du hier ein komplette Lösung willst wird dir die keiner geben.
Als Ansatz Folgendes:
So damit hast du eigentlich fast alles was die Ordner und Filestruktur angeht nun noch eine kleine Hilfe zm FSO
Dies istz ein Beispiel fürs Lesen einer datei. Zum schreiben musst du halt appending oder write nehmen. Wenn du in eine Exceldatei schreiben willst kannst du auch direkt in spalten und zeilen schreiben.
Gruß
Sven
Form erstellen direlement drauf setzen fielelemet drauf setzen.
in der direlemt.path setz du dirkt den pfad wo du hinwillst. In der Fileelement siehst du dann die Files in der Ordnerstruktur.
Dann muss du nur noch die xls öffnen nach den parametern suchen diese auslesen und in eine Datei wegschrieben. Dies machst du mit dem File System Objekt.
Das war es. Wenn du hier ein komplette Lösung willst wird dir die keiner geben.
Als Ansatz Folgendes:
'****************************************************
'Benötigt eine Form, ein label, zwei Buttons, ein Dirlist und ein Filelist
'****************************************************
Option Explicit
'****************************************************
'Globale Variable auf die man ausserhalb der Form direkt zugreifen kann. Diese enthält
'in diesem Fall den Dateinamen
'****************************************************
Private filename As String
'****************************************************
'Form entladen
'****************************************************
Private Sub button_cancel_Click()
Unload Me
End Sub
'****************************************************
'Setzen der Globalen Variablen
'****************************************************
Private Sub button_dataselect_Click()
Call setfilename(Me.Label1)
End Sub
'****************************************************
'Setzen des Labels auf den String der Datei die per Doppelklick ausgewählt wurde
'****************************************************
Private Sub File1_dblClick()
Dim dateiname As String
dateiname = File1.filename
Me.Label1 = dateiname
End Sub
'****************************************************
'Laden der Form
'****************************************************
Private Sub Form_Load()
'****************************************************
'Direlement Path auf c:\ als standard setzen
'****************************************************
dir_auflistung.Path = "C:\"
'****************************************************
'Filepath auf gleichen Pfad setzen wie direlement
'****************************************************
File1.Path = dir_auflistung.Path
End Sub
Private Sub dir_auflistung_change()
'****************************************************
'sollte der User einen anderen Ordner auswählen fileelemnt auch auf diesen Pfad setzen
'****************************************************
dir_auflistung.Refresh
File1.Path = dir_auflistung.Path
End Sub
'****************************************************
'Gewohnheit bracuht man nciht da man die globale Variable überall heraus ansprechen kann.
'****************************************************
'****************************************************
'Funktion zum setzen der Globalen varibale
'****************************************************
Public Function setfilename(tempfilename As String)
filename = tempfilename
End Function
'****************************************************
'Funktion zum holen der globalen variable
'****************************************************
Public Function getfilename() As String
getfilename = filename
End Function
So damit hast du eigentlich fast alles was die Ordner und Filestruktur angeht nun noch eine kleine Hilfe zm FSO
Option Explicit
Public Function dateilesen()
Dim datei As String
Dim fso, source, retstring
Dim computername As String, benutzername As String, ipnummer As String, logon As String, logoff As String, status As Boolean
'Konstanten für den Modes des FSO
Const ForReading = 1, ForWriting = 2, ForAppending = 8
'Definition der benötigten internen Variablen
'***********************************************************
'Hier der Teil um direkt aus den Textfiles die Daten zu lesen
' Dieses Textfile wird zum füllen der DB genutzt.
'***********************************************************
'Erzeugen des FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
'Zuweisung der Quelldatei
datei = "C:\0109.txt"
Set source = fso.opentextfile(datei, ForReading, False)
Do While source.AtEndOfStream <> True
retstring = source.readline
Dim arrayretstring
arrayretstring = Split(retstring, ";")
computername = arrayretstring(0)
'Hier kann man dann mit dem >Index das array qweiteren variablen zuweisen
Loop
MsgBox (arrayretstring(1))
End Function
Dies istz ein Beispiel fürs Lesen einer datei. Zum schreiben musst du halt appending oder write nehmen. Wenn du in eine Exceldatei schreiben willst kannst du auch direkt in spalten und zeilen schreiben.
Gruß
Sven