Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Txt-Datei in Excel einlesen mit Wenn-Dann Abfrage!

Txt-Datei in Excel einlesen mit Wenn-Dann Abfrage!
01.03.2007 12:49:03
Till
Hallo Leute,
momentan lese ich in Excel mit folgendem VBA Code, Daten aus bestimmten Ordnern ein, deren Pfad dadurch beeinflusst wird, was ich vorher in einer Combox auf meiner Userform ausgewählt hab.
Option Explicit
Private Const cPath As String = "C:\My Autoscope\Polling Data\" 'Konstante Pfadvorgabe
Sub Strasse(ByVal SubFolder As String)
Dim strFile As String
Dim objName1_1 As Range
Dim rngF1_1 As Range
Dim rngK1_1 As Range
Dim rngUnion1_1 As Range
Dim MyWidth As Single, MyHeight As Single
Dim NumWide As Long
Dim iChtIx As Long, iChtCt As Long
Dim Zeile2 As Integer, MyList(2836, 8), r As Integer, wksListe As Worksheet
If Not ActiveWorkbook Is ThisWorkbook Then ActiveWorkbook.Close False
strFile = cPath & SubFolder & Format(ThisWorkbook.Sheets("Tabelle1").Range("a1"), "yyyymmdd") & "_0" & ".txt"
If Dir(strFile) = "" Then
MsgBox "Keine Messdaten zu diesem Datum vorhanden", vbInformation, " "
Exit Sub
End If
On Error GoTo ErrExit
GetMoreSpeed
Workbooks.OpenText _
Filename:=strFile, _
DataType:=xlDelimited, _
Semicolon:=True, _
FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1)), DecimalSeparator:=".", _
ThousandsSeparator:=",", TrailingMinusNumbers:=True
Ebenso muss ich vorher das Datum per DateTimePicker auswählen, so dass dieses dann in eine Zelle geschrieben wird, damit ich dann entsprechend dem Datum auch die richtige Datei einlese. Also z.B. für den 28.02.07 die Datei "20070228_0.txt".
Leider kann es vorkommen, dass anstatt der Datei "20070228_0.txt" z.B. eine Datei "20070228_1.txt" existiert.
Ich würde also gerne eine Art "Wenn-Dann" Abfrage in den VBA Code einbauen, dass wenn die Datei "20070228_0.txt" nicht existiert, dann automatisch die Datei "20070228_1.txt" geöffnet wird.
Lässt sich das in oben gezeigten Code einbauen?
Hoffe, Ihr könnt mir mal wieder helfen!
Danke schon mal!
Gruß Till

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfrage!
01.03.2007 17:53:38
stormy_weathers
Hallo Till,
versuchs doch mal mit einer Schleife.
for i=0 to 1
..."yyyymmdd") & "_" & i & " & ".txt"
Achtung, nicht geprüft, nur als Ansatz gedacht...
Gruß
stormy
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
01.03.2007 18:40:09
Till
Hallo Stormy,
cooler Ansatz,
wie genau würdest Du den denn in die Abfrage integrieren?
Hab's mal so versucht:


Option Explicit
Private Const cPath As String = "C:\My Autoscope\Polling Data\"   'Konstante Pfadvorgabe
Sub Strasse(ByVal SubFolder As String)
   Dim strFile As String
   Dim objName1_1 As Range
   Dim rngF1_1 As Range
   Dim rngK1_1 As Range
   Dim rngUnion1_1 As Range
   Dim MyWidth As Single, MyHeight As Single
   Dim NumWide As Long
   Dim iChtIx As Long, iChtCt As Long
   Dim Zeile2 As Integer, MyList(2836, 8), r As Integer, wksListe As Worksheet
   Dim i
   If Not ActiveWorkbook Is ThisWorkbook Then ActiveWorkbook.Close False
   For i = 0 To 1
      strFile = cPath & SubFolder & Format(ThisWorkbook.Sheets("Tabelle1").Range("a1"), "yyyymmdd") & "_" & i & ".txt"
   Next i
...


Aber dann findet er nur die Dateien mit der Endung "..._1.txt", nicht aber mehr die mit der Endung "..._0.txt", falls diese vorhanden war.
Hmm... passt also noch nicht so ganz!
Vielleicht hast Du noch ne andere Idee?
Gruß Till
Anzeige
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
01.03.2007 19:48:44
stormy_weathers
Hallo Till,
Du musst natürlich das next i ans Ende Deiner Bearbeitung stellen.
Im Moment macht Dein Code folgendes:
Du weist der Variablen strFile den Dateinamen1 zu und übernagelst ihn unmittelbar danach mit Dateinamen2. Dadurch erweckt es den anschein, dass er nur noch die Datei mit dem Dateinamen2 findet.
Also Variable zuweisen, abarbeiten, next i (variable das 2. mal zuweisen) nochmals abarbeiten.
Gruß
stormy
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
01.03.2007 23:50:00
Till
Hallo Stormy,
hast recht....das "next i" muss natürlich nach hinten.
Aber ich hatte noch einen kleinen Denkfehler.
Es kann natürlich auch der Fall eintreten, dass es beide Dateien gibt, also eine mit der Endung "..._1.txt" und eben auch die mit der Endung "..._0.txt".
In dem Fall würde ich dann NUR die mit der Endung "..._0.txt" einlesen wollen, ansonsten falls eine von beiden nicht existiert dann eben die andere!
Wie macht man denn das?
Gruß Till
Anzeige
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 06:26:24
stormy_weathers
Hallo Till,
hier würde ich dann versuchen abzufangen ob die ...0.txt vorhanden ist. Wenn ja abarbeiten und beenden, wenn nein next i dann abarbeiten und beenden.
Mir fällt gerade beim Schreiben noch was ein:
Ein anderer Ansatz wäre die Schleife anders herum aufzubauen (for I = 1 to 0). damit musst Du aber sicherstellen, dass du immer die ...0.txt (wenn vorhanden) verarbeiten möchtest.
Dann müsste es auch ohne "abfangen" gehen.
Gruß
stormy
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 08:43:00
Till
Hallo Stormy,
danke für die Idee...
Bin mit Schleifen aber noch nicht so firm...Kannst Du mir da evtl. ein Beispiel geben...
Wenn ich 'nur' "for i=0 to 1" in "for i=1 to 0" ändere, tut sich nämlich leider nichts mehr.
Gruß Till
Anzeige
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 09:43:20
Till
Hallo Stormy,
ich hab's versucht so zu lösen:
strFile = cPath & SubFolder & Format(ThisWorkbook.Sheets("Tabelle1").Range("a1"), "yyyymmdd") & "_0" & ".txt"
If Not Dir(strFile) = "" Then
GoTo Weiter
Else
strFile = cPath & SubFolder & Format(ThisWorkbook.Sheets("Tabelle1").Range("a1"), "yyyymmdd") & "_1" & ".txt"
End If
Weiter:
Kann das richtig funktionieren, oder hab ich da noch nen Denkfehler drin?
Gruß Till
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 10:09:29
stormy_weathers
Hallo Till,
versuchs doch einfach... Meiner Meinung nach müsste es funktionieren. Du mussst den Verweis auf "weiter" aber auch bei der ...1.txt mitgeben, sonst wird der Code (meiner Bescheidenen Meinung nach) nicht weiter arbeiten.
Aber auch so kannst Du immer nur 1 Datei verarbeiten (entweder die ...0.txt wenn vorhanden, oder die ...1.txt).
Gruß
stormy
Anzeige
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 10:35:00
Till
Hi Stormy,
ich hab's versucht, und so wie ich es vorhin geschrieben hatte, scheint es schon zu funktionieren:
Ich hab 3 verschiedene Szenarien durchgetestet:
1. nur "20070228_0.txt" vorhanden
= wird sauber geöffnet
2. nur "20070228_1.txt" vorhanden
= wird sauber geöffnet
3. "20070228_0.txt" und "20070228_1.txt" vorhanden
= nur "20070228_0.txt" wird geöffnet.
Den Verweis auf die Sprungmarke hab ich so gelassen... Weiß nicht ob das dann so richtig ist..
Gruß Till
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 12:40:25
stormy_weathers
Hallo Till,
ob das dann so richtig ist, kannst nur Du sagen... wir sehen die Daten ja nicht.
Gruß
stormy
Anzeige
AW: Txt-Datei in Excel einlesen mit Wenn-Dann Abfr
02.03.2007 14:36:00
Till
o.k dann dank ich dir erst mal für die hilfreichen Ideen.
Gruß Till

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige