Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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
Dateinamen bearbeiten
14.11.2012 11:54:01
Rainer
Hallo zusammen,
ich benötige Hilfe für folgendes Problem:
Ein externes Messgerät generiert nach der Messung eine Datei, Analyse_(Datum_Uhrzeit).lims, diese Datei wird auf ein externes Laufwerk gespeichert.
Die Datei soll mit Excel geladen und ausgewertet werden. Über eine Zeitschleife schaue ich alle 2 sec. ob eine *.lims Datei vorhanden ist.
Bisland hatten wir ein anderes Messgerät eingesetzt, welches eine Datei ohne Datum und Uhrzeit generierte (immer gleicher Name).
Funktioniert jetzt nun leider nicht mehr weil das neue Messgerät Datum und Uhrzeit im Dateinamen einfügt.
Was habe ich jetzt für Möglichkeiten, den Dateinamen über VBA bearbeiten oder Datum und Uhrzeit zu ignorieren.
Wäre schön wenn mir bei dieser Problemstellung helfen könnte.
Danke und Gruß
Rainer

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen bearbeiten
14.11.2012 12:50:40
Rudi
Hallo,
mit Dir("Analyse_*.lims") nachschauen, ob es eine Datei gibt, auswerten und z.B. in X_Analyse_Datum_Zeit.lims umbenennen.
Sub aaa()
Dim sFile As String
Const sPfad As String = "c:\temp\"
sFile = Dir(sPfad & "Analyse_*.lims")
If sFile  "" Then
'mach was
Name sPfad & sFile As sPfad & "X_" & sFile
End If
End Sub

Gruß
Rudi

AW: Dateinamen bearbeiten
14.11.2012 13:54:12
Rainer
Hallo Rudi,
vielen Dank für die schnelle Antwort,
aber das löst mein Problem nicht:
ich habe nach der Messung eine Datei vorliegen, Name = "Analyse_20121114_134518.lims".
jetzt brauche ich einen Code der mir das Datum und die Zeit wegschneidet also den Dateinamen auf dem Laufwerk ändert in "Analyse_.lims", oder einen Code der die Zahlen ignoriert.
Übrigens lösche ich die Datei nach dem auslesen.
Gruß
Rainer

Anzeige
AW: Dateinamen bearbeiten
14.11.2012 14:41:35
Rudi
Hallo,
oder einen Code der die Zahlen ignoriert
genau das macht Dir(sPfad & "Analyse_*.lims")
Sub aaa()
Dim sFile As String
Const sPfad As String = "c:\temp\"
sFile = Dir(sPfad & "Analyse_*.lims")
If sFile  "" Then
'mach was mit der Datei
Kill sPfad & sFile
End If
End Sub

AW: Dateinamen bearbeiten
14.11.2012 15:09:25
Rainer
Hallo Rudi,
hier ist der Code den ich verwenden will:
Schau da mal bitte rüber wo ich was verändern muß.
Vielen Dank für deine Hilfe.
Gruß Rainer
Option Explicit
Dim Pfad As String
Dim Dateiname As String
Sub auto_open()
Pfad = "C:\Export"
Dateiname = "Analyse_.lims"
Application.OnTime Now + TimeValue("00:00:00"), "Alle_5_Sekunden"
End Sub

Sub Alle_5_Sekunden()
If Dir(Pfad & Dateiname)  "" Then
Application.OnTime Now + TimeValue("00:03:59"), "AusTextDatei"
Else
Application.OnTime Now + TimeValue("00:00:05"), "Alle_5_Sekunden"
End If
End Sub
Sub AusTextDatei()
Sheets("ausgelesene_Daten").Select
Dim intRow As Integer, intCol As Integer
Dim strTxt As String
Dim sFile As String
sFile = "C:\Export\analyse_.lims"
Range("A1:da5").Select
Selection.ClearContents
Range("A1").CurrentRegion.ClearContents
If Dir(sFile) = "" Then
MsgBox "Kann Mess - Datei nicht finden -" _
& Chr(13) & "bitte Excel neu starten" _
& Chr(13) & "und Messung wiederholen"
Exit Sub
Else
Open "C:\Export\analyse_.lims" For Input As #1
End If
Do Until EOF(1)
intRow = intRow + 1
intCol = 0
Line Input #1, strTxt
Do Until InStr(strTxt, ";") = 0
intCol = intCol + 1
Cells(intRow, intCol) = Left(strTxt, InStr(strTxt, ";") - 1)
strTxt = Right(strTxt, Len(strTxt) - InStr(strTxt, ";"))
Loop
Cells(intRow, intCol + 1) = strTxt
Loop
Close
Sheets("ausgelesene_Daten").Select
Range("a1").Select
Kill "C:\Export\analyse_.lims"
Call ausdruck
Call auto_open
End Sub

Sub ausdruck()
Sheets("Ausdruck").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("ausgelesene_Daten").Select
End Sub

Anzeige
AW: Dateinamen bearbeiten
14.11.2012 15:27:12
Rudi
Hallo,
das ist ja schon aufschlussreicher.
Option Explicit
Dim sPfad As String, dateiName As String, sFile As String
Sub auto_open()
sPfad = "C:\Export\"
dateiName = "Analyse_*.lims"
Application.OnTime Now + TimeValue("00:00:00"), "Alle_5_Sekunden"
End Sub
Sub Alle_5_Sekunden()
sFile = Dir(sPfad & dateiName)
If sFile  "" Then
Application.OnTime Now + TimeValue("00:03:59"), "AusTextDatei"
Else
Application.OnTime Now + TimeValue("00:00:05"), "Alle_5_Sekunden"
End If
End Sub
Sub AusTextDatei()
Dim intRow As Integer
Dim strTxt As String, arrTmp
Sheets("ausgelesene_Daten").Select
Range("A1:da5").Select
Selection.ClearContents
Range("A1").CurrentRegion.ClearContents
Open sPfad & sFile For Input As #1
Do Until EOF(1)
intRow = intRow + 1
'intCol = 0
Line Input #1, strTxt
arrTmp = Split(strTxt, ";")
Cells(intRow, 1).Resize(, UBound(arrTmp) + 1) = arrTmp
'      Do Until InStr(strTxt, ";") = 0
'         intCol = intCol + 1
'         Cells(intRow, intCol) = Left(strTxt, InStr(strTxt, ";") - 1)
'         strTxt = Right(strTxt, Len(strTxt) - InStr(strTxt, ";"))
'      Loop
'      Cells(intRow, intCol + 1) = strTxt
Loop
Close #1
Kill sPfad & sFile
Sheets("ausgelesene_Daten").Select
Range("a1").Select
Call ausdruck
Call auto_open
End Sub
Sub ausdruck()
Sheets("Ausdruck").PrintOut Copies:=1, Collate:=True
End Sub

Gruß
Rudi

Anzeige
AW: Dateinamen bearbeiten
14.11.2012 16:16:41
Rainer
Hallo Rudi,
bekomme jetzt einen Laufzeitfehler Nr. 75
Fehler beim Zugriff auf Pfad/Datei bei
Open sPfad & sFile For Input As #1
Pfade habbe ich jetzt schon mehrfach überprüft, habe ich etwas übersehen?
Gruß
Rainer

AW: Dateinamen bearbeiten
14.11.2012 16:29:54
Rudi
Hallo,
welche Werte werden dir denn angezeigt, wenn du im Debugger mit der Maus auf die Variablen gehst?
Gruß
Rudi

AW: Dateinamen bearbeiten
15.11.2012 07:51:26
Rainer
Hallo Rudi,
er zeigt mir unter "sPfad" den entsprechenden Pfad an,
unter Dateiname = Analyse_*.lims, obwohl der ja noch garnicht existiert.
Unter sFile ="", hier müßte doch der Dateiname mit Datum und Uhrzeit("Analyse_20121114_153829_lims") stehen oder?.
Er läuft aber durch bis zur Zeile:
Open sPfad & sFile For Input As #1.
Da er aber unter sFile keinen Inhalt hat stoppt er.
Gruß Rainer

Anzeige
AW: Dateinamen bearbeiten
15.11.2012 11:18:18
Rainer
Hallo zusammen,
kann mir sonst noch jemand bei meinem Problem helfen?
Gruß
Rainer

AW: Dateinamen bearbeiten
15.11.2012 12:35:27
Rainer
Hallo Rudi,
kannst du mir bitte hier noch weiterhelfen?
Gruß
Rainer

AW: Dateinamen bearbeiten
15.11.2012 16:39:12
Rudi
Hallo,
er zeigt mir unter "sPfad" den entsprechenden Pfad an,
mit \ am Ende oder hast du den vergessen?
sFile = Dir(sPfad & dateiName)schaut nach, ob es in dem Ordner eine Datei gibt, die mit 'Analyse_' beginnt und mit '.lims' endet. Der Rest ist egal (*). Wenn es die nicht gibt, ist sFile ="".
Ist sFile "" (also 'Analyse_JJJJMMTT_hhmmss.lims'), dann wird nach 4 Minuten 'AusTextDatei' aufgerufen. Wozu eigentlich die Wartezeit?
In dem Ordner darf es keine andere Datei geben, die dem Suchmuster entspricht! Also auch keine 'Analyse_abcd.lims'. Das geht dann schief. Zur Sicherheit kann man noch DateiName genauer spezifizieren.
DateiName= "Analyse_?_?.lims"
Gruß
Rudi

Anzeige
AW: Dateinamen bearbeiten
16.11.2012 08:31:49
Rainer
Hallo Rudi,
einfach genial, vielen Dank für deine Unterstützung.
hatte doch tatsächlich diesen dummen Fehler gemacht und nicht gesehen.......
Die Wartezeit resultiert noch aus der Steuerung von unserem alten Messgerät, das legte die Datei zum Beginn der Messung an und vervollständigte diese nach Abschluss der Messung (kleiner als 4 Minuten).
.....und genau hier habe ich jetzt noch ein Problem, die zweite Zeitschleife sollte bei nicht vorhandener Analyse_*.lims alle 5 sec nachschauen ob die Datei vorhanden ist, wenn nicht, sich selbst wieder aufrufen. Macht sie aber nicht, sondern startet das Markro zum auslesen der Datei, da diese aber nicht immer verfügbar ist läuft es auf einen Fehler und startet den Debugger.
Vielleicht kannst du mir hierzu noch einen tipp geben wo der Fehler liegt?
Sub auto_open()
sPfad = "C:\Export\"
DateiName = "Analyse_*.lims"
Application.OnTime Now + TimeValue("00:00:00"), "Alle_5_Sekunden"
End Sub

Sub Alle_5_Sekunden()
sFile = Dir(sPfad & DateiName)
If DateiName  "" Then
Application.OnTime Now + TimeValue("00:00:20"), "AusTextDatei"
Else
Application.OnTime Now + TimeValue("00:00:05"), "Alle_5_Sekunden"
End If
End Sub
Gruß
Rainer

Anzeige
Datei auslesen
16.11.2012 12:40:15
Rudi
Hallo,
was machst du für nen Quatsch?
If DateiName "" Then
Das hab ich nicht geschrieben. DateiName ist garantiert "", da in auto_open auf "Analyse_*.lims" gesetzt.
If sFile "" Then!!!
Gruß
Rudi

AW: Datei auslesen
16.11.2012 12:50:15
Rainer
Hallo Rudi,
hatte ich schon selbst gefunden, läuft jetzt auch durch.
Nochmals vielen dank für deine freundliche Unterstützung.
Gruß
Rainer

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige