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

Bestimmte Zellen aus verschiedenen CSV-Dateien auslesen

Bestimmte Zellen aus verschiedenen CSV-Dateien auslesen
27.07.2023 11:50:56
David
Guten Tag zusammen,

bezüglich meinem konkreten Vorhaben, habe ich nichts genaueres im Forum gefunden und erhoffe mir hier etwas Hilfe. Falls ich falsch liege bitte den Post entfernen.

Aber nun zu meiner Aufgabe. Ich bin ziemlich neu im VBA und möchte das auslesen meiner Berechnungsergebnisse automatisieren:

Ich habe einen Ordern in dem sämtliche CSV-Dateien mit unterschiedlichen Dateinamen abgelegt werden (automatisiert vom Berechnungsprogramm).

Die Dateien werden folgendermassen vom Berechnungsprogramm im Ordner abgelegt:
- AVA_TZ-AB_V1_2023-07_1400-110_B-dq0pc_RB-C_R250_u105_aq1.csv
- AVA_TZ-AB_V1_2023-07_1400-120_B-dq0pc_RB-C_R45_u78_aq1.csv

- AVA_TZ-AB_V1_2023-07_2400-110_B-dq0pc_RB-C_R250_u105_aq1.csv
- AVA_TZ-AB_V1_2023-07_5400-110_B-dq0pc_RB-C_R250_u105_aq1.csv


In dem Beispiel ist der SimCode unterschiedliche (1400-110 und 1400-120 usw). Die

Nun möchte ich aus diesen CSV-Dateien zum Beispiel die Zelle B114 in mein Ergebnisfile (der untenstehende Code Zeigt einen Ausschnitt aus meinem Ergebnisfile) einlesen.
https://www.herber.de/bbs/user/162054.jpg" border="0" width="700" height="80" alt="Userbild">

Und zwar soll aus der ersten CSV Datei die Zelle B114 in die Zeile mit dem SimCode1400-110 und aus der zweiten CSV Datei die Zelle B114 in die Zeile mit dem SimCode 1400-120 usw. eingelesen werden. Das soll automatisiert über einen Button (CSV-Ergebnisse importieren) passieren.

Ich hoffe ich habe mich verständlich ausgedrückt. Ist dies überhaupt ohne weiteres möglich?

Besten Dank vorab für die Unterstützung und Hilfe

Liebe Grüsse
David

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zellen aus verschiedenen CSV-Dateien auslesen
27.07.2023 13:28:26
UweD
Hallo

ich hab mal eine Datei nachgebaut (die solltest du eigentlich hochladen)

Ich wähle die Datei über den Präfix, den Monat aus Spalte B und den Namen aus W aus
Dann wird eine Formel mit dem Bezug auf B114 reingeschrieben und anschließend die Formel in den Wert umgewandelt.
Ich hab alles variabel gestaltet und du kannst es im Kopf an deine Tabelle anpassen.
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHIJKLMNOPQRSTUVWXYZAAAB
1Tara Luftfeder                           
2LDG1 (A) Messung                   Messung    Ziel
3LDG1 (A) Messung                   Messung     
4LDG1 (A)2023-071641-11010010533 50,320,32        1,555V1400-11025010579,91.00 
5LDG1 (A)2023-07                 1,555V1400-12025010579,91.00 
6LDG1 (A)2023-07                 1,555V1400-130     
7LDG1 (A)2023-07                 1,555V      
8LDG1 (A)2023-07                          

Der Code sieht so aus.

Sub David()
Dim Pfad As String, Datei As String, Ext As String, Prä As String, Dat As String
Dim SpD As Integer, SpS As Integer, SpZ As Integer
Dim LR As Long, Z1 As Integer, i As Long
Dim Rng As String, Zeile As Long, Spalte As Integer

Pfad = "E:\Excel\Temp\Test\" 'mit \ am Ende
Ext = ".csv"
Prä = "AVA_TZ-AB_V1_" ' Präfix vom Dateinamen

Rng = "B114" 'Die Zelle, aus der gelesen werden soll

Zeile = Range(Rng).Row
Spalte = Range(Rng).Column

Z1 = 4 'erste Zeile mit Daten

SpD = 2 ' Spalte mit Datum
SpS = 23 ' Spalte mit Simcode; In meinem Beispiel in W
SpZ = 28 ' Zielspalte

LR = Cells(Rows.Count, SpS).End(xlUp).Row 'letzte Zeile der Spalte

For i = Z1 To LR
Dat = Cells(i, SpD) & "_"
Datei = Prä & Dat & Cells(i, SpS) & "_*" & Ext

Datei = Dir(Pfad & Datei) ' Datei vorhanden?
If Datei > "" Then
With Cells(i, SpZ)
.FormulaR1C1 = _
"='" & Pfad & "[" & Datei & "]" & Left(Datei, 31) & "'!R" & Zeile & "C" & Spalte
'beim speichern einer CSV Datei gibt es nur ein Blatt,
'was so heißt wie der Dateiname, aber auf 31 zeichen begrenzt
.Value = .Value
End With
Else
Cells(i, SpZ) = "--"
End If
Next

End Sub


LG UweD
Anzeige
AW: Bestimmte Zellen aus verschiedenen CSV-Dateien auslesen
27.07.2023 16:49:58
David
Guten Tag Uwe,

vielen Dank für die schnelle und ausführliche Antwort.Entschuldige Bitte, dass ich das Excel-File nicht gleich hochgeladen habe. Bin seit heute neu hier im Forum und kenne die Arbeitsweise noch nicht so genau.

Bezüglich deinem Code: Mir ist nicht klar wo im Code zwischen den SimCodes unterschieden wird. Passiert dies in der For-Schleife?

Des Weiteren ist mir auch nicht klar wie bzw. wo im Code vorgegeben wird, dass zb die Zelle B114 von der CSV-Datei mit SimCode 24100-110 auch in die richtige Zeile des Ergebnisfiles eingetragen wird.

Ich habe eine ausführliche Tabelle erstellt, so wie ich es mit vorstelle und deinen Code angepasst. Als Ergebnis [s] in Spalte AD,werden die Felder mit #BEZUG! gekennzeichnet oder rot markiert.

https://www.herber.de/bbs/user/162057.xlsm (Ergebnisfile)



Sub David()
Dim Pfad As String, Datei As String, Ext As String, Prä As String, Dat As String
Dim SpD As Integer, SpS As Integer, SpZ As Integer
Dim LR As Long, Z1 As Integer, i As Long
Dim Rng As String, Zeile As Long, Spalte As Integer

Pfad = "N:\SIMPACK\Models\STAG-T1_TW\AVA_ABe4-8\05_Bogenfahrten\output\" 'mit \ am Ende
Ext = ".csv"
Prä = "AVA_TZ-AB_V1_" ' Präfix vom Dateinamen

Rng = "B114" 'Die Zelle, aus der gelesen werden soll

Zeile = Range(Rng).Row
Spalte = Range(Rng).Column

Z1 = 14 'erste Zeile mit Daten

SpD = 4 ' Spalte mit Datum
SpS = 25 ' Spalte mit Simcode
SpZ = 30 ' Zielspalte

LR = Cells(Rows.Count, SpS).End(xlUp).Row 'letzte Zeile der Spalte

For i = Z1 To LR
Dat = Cells(i, SpD) & "_"
Datei = Prä & Dat & Cells(i, SpS) & "_*" & Ext

Datei = Dir(Pfad & Datei) ' Datei vorhanden?
If Datei > "" Then
With Cells(i, SpZ)
.FormulaR1C1 = _
"='" & Pfad & "[" & Datei & "]" & Left(Datei, 31) & "'!R" & Zeile & "C" & Spalte
'beim speichern einer CSV Datei gibt es nur ein Blatt,
'was so heißt wie der Dateiname, aber auf 31 zeichen begrenzt
.Value = .Value
End With
Else
Cells(i, SpZ) = "--"
End If
Next

End Sub


Besten Dank

Beste Grüsse
David
Anzeige
AW: Bestimmte Zellen aus verschiedenen CSV-Dateien auslesen
28.07.2023 10:35:43
Herbert Grom
Hallo David,

ein Tipp von mir: Du solltest deine Datei mal in eine neue Mappe übertragen, denn deine jetzige wurde erstmals erstellt am 06.09.2004. Wenn eine Datei über einen so langen Zeitraum verwendet wird, kann sich durchaus einiges an Datenmüll im Hintergrund ansammeln und möglicherweise zu Abstürzen o. ä. führen.

Servus
AW: und warum ein Bild? Besser wäre eine Beispielmappe oT
27.07.2023 12:57:10
JoWE
...

295 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige