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

CSV Dateien durchsuchen und Werte extrahieren

CSV Dateien durchsuchen und Werte extrahieren
Torsten
Hallo zusammen,
ich hab nen super Sonderwusch... ;-)
Ich möchte gerne eine Ordnerstruktur durchsuchen, die an bestimmten Stellen CSV-Dateien enthält und aus diesen, in einer Spalte, den höchsten Wert finden. Dieser soll dann zusammen mit dem Wert der in der gleichen Zeile, aber eine Spalte weiter steht, in eine neue Exceltabelle geschrieben werden. Erschwert wird das ganze noch, da zu den Werte noch der Name fehlt. Dieser steht nur als Ordnername zur verfügung.
Die Ordnerstruktur sieht wie folgt aus:
D:\Daten\100226\999999-001-LCMS-ROH.D\Analysis.csv
(100226 = Datum; 999999-001 = Name)
Das Script müsste also nach dem zu durchsuchendem Ordner unter D:\Daten fragen (also welches Datum) und die Extrahierten Werte aus der CSV-Datei mit den ersten zehn Stellen des Ordnernamens, über der CSV-Datei, kombinieren.
Die CSV ist wie folgt aufgebaut: (Komma getrennt)
#, RT [min], Area, Area Frac. %, Max. MW
1, 1.0, 11.3321, 0.7,
2, 1.2, 7.1489, 0.4,
3, 1.6, 30.0803, 1.8,
4, 1.8, 20.6700, 1.2,
5, 2.2, 8.8774, 0.5,
6, 2.2, 13.8220, 0.8,
7, 2.6, 11.8489, 0.7,
8, 2.8, 13.4342, 0.8,
9, 3.1, 5.6406, 0.3,
10, 3.3, 10.5907, 0.6,
11, 3.5, 10.2234, 0.6,
12, 3.8, 5.1625, 0.3,
13, 3.9, 13.2446, 0.8,
14, 4.2, 7.9869, 0.5,
15, 4.4, 5.6218, 0.3,
16, 4.6, 6.7800, 0.4,
17, 5.0, 25.7402, 1.5,
18, 6.8, 21.8434, 1.3,
19, 7.1, 28.1166, 1.7,
20, 7.5, 19.9014, 1.2,
21, 7.7, 11.9164, 0.7,
22, 7.9, 20.9286, 1.3,
23, 7.9, 21.5836, 1.3,
24, 8.2, 27.8813, 1.7,
25, 8.3, 5.1414, 0.3,
26, 8.4, 5.5113, 0.3,
27, 8.5, 4.0094, 0.2,
28, 8.7, 12.2723, 0.7,
29, 8.9, 616.1431, 36.9, 3913.897
30, 9.1, 602.2250, 36.0, 3913.909
31, 9.4, 9.7369, 0.6,
32, 9.6, 10.3611, 0.6,
33, 9.8, 3.2295, 0.2,
34, 10.0, 3.5003, 0.2,
35, 10.1, 3.8462, 0.2,
36, 10.3, 34.1941, 2.0,
Hier sollte der Wert "36,9" aus der Spalte "Area Frac. %" gefunden werden und zusammen mit dem "Max. MW" "3913,897" ausgegeben werden.
Das Ergebniss sollte dann so aussehen:
A B C
1 Name Area Frac. % Max. MW
2 999999-001 36,9 3913,897
3
4
Unter D:\Daten\[Datum]\ können zwischen 1 und mehr als 100 Unterordner sein, die dann alle in einer neuen Tabelle gelistet werden sollen und z.B. unter dem Datumsordner gespeichert werden. Die CSV-Dateien haben immer den gleichen Namen.
Ist das Möglich? Ich würde mich über eure Hilfe sehr freuen!
Grüsse
Torsten

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: CSV Dateien durchsuchen und Werte extrahieren
26.02.2010 14:10:29
Torsten
Ich habe das hier gefunden. Wäre schon mal ein Ansatz...
Aber warum funktioniert das Makro nicht? Ich bekomme immer ne Fehlermeldung:

Sub oder 

Function nicht definiert.

Sub Makro4()
'Pfad anpassen!
Const Pfad As String = "D:\Eigene Dateien\Dein Ordner"
Dim i As Integer
With Application.FileSearch
.LookIn = Pfad
.Filename = "*.csv"
.SearchSubFolders = True 'Unterordner mit einbeziehen
.Execute
For i = 1 To .FoundFiles.Count
Call Dein_Makro(.FoundFiles(i))
Next i
End With
End Sub

Anzeige
AW: CSV Dateien durchsuchen und Werte extrahieren
26.02.2010 14:39:26
CM
Hallo Torsten,
im Code wird ein weiteres Makro mit dem Namen "Dein_Makro" und dem Parameter ".FoundFiles(i)" aufgerufen: Call Dein_Makro(.FoundFiles(i))
Dieses muss natürlich existieren.
Gruß
Christian
AW: CSV Dateien durchsuchen und Werte extrahieren
26.02.2010 14:48:21
fcs
Hallo Torsten,
hier eine Steuerdatei mit der entsprechenden Funktionalität.
Das Verzeichnis und das Datum im Blatt Steuerung muss du anpassen.
Gruß
Franz
https://www.herber.de/bbs/user/68261.xls
AW: CSV Dateien durchsuchen und Werte extrahieren
01.03.2010 08:18:42
Torsten
Hallo Franz,
besser als ich gehoft hätte! Das scheint wunderbar zu funktionieren. Werde es noch ausgiebig test, aber ich denke so wirds gemacht...
An alle anderen ebenfall vielen vielen Dank für eure sicher nicht unerheblichen Mühen!
Grüsse
Torsten
Anzeige
AW: CSV Dateien durchsuchen und Werte extrahieren
26.02.2010 15:09:50
IngGi
Hallo Torsten,
ich hätte auch noch eine Variante anzubieten:
Sub Analysis()
Const FOR_READING = 1
Dim objFSO As Object
Dim objFolder As Object
Dim objSubFolder As Object
Dim objFile As Object
Dim arrZeile As Variant
Dim dblFrac As Double
Dim strMW As String
Dim objShell As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Bitte den Datumsordner auswählen", 64, "D:\Daten")
If objFolder Is Nothing Then
MsgBox "Keinen Ordner ausgewählt!" & vbCrLf & vbCrLf & "Vorgang wird abgebrochen."
Exit Sub
Else
Set objFolder = objFolder.Self
Set objFolder = objFSO.GetFolder(objFolder.Path)
End If
With Tabelle1
.Range("A1") = "Name"
.Range("B1") = "Area Frac. %"
.Range("C1") = "Max MW"
End With
For Each objSubFolder In objFolder.SubFolders
If objFSO.FileExists(objSubFolder.Path & "\Analysis.csv") Then
Set objFile = objFSO.OpenTextFile(objSubFolder.Path & "\Analysis.csv", FOR_READING)
objFile.SkipLine
Do Until objFile.AtEndOfStream
arrZeile = Split(objFile.ReadLine(), ",")
If CDbl(Replace(arrZeile(3), ".", ",")) > dblFrac Then
dblFrac = CDbl(Replace(arrZeile(3), ".", ","))
strMW = arrZeile(4)
End If
Loop
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Left(objSubFolder.Name, 10)
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = dblFrac
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(0, 2) = CDbl(Replace(strMW, ".", ","))
dblFrac = 0
strMW = ""
Else
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Left(objSubFolder.Name, 10)
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = "Datei nicht gefunden !!!"
End If
Next 'objSubFolder
End Sub
Gruß Ingolf
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge