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

Files öffnen - Dateiname ohne Zeitstempel verfügba

Files öffnen - Dateiname ohne Zeitstempel verfügba
27.05.2013 13:05:57
Peter
Guten Tag
Ich habe in Range("_pfade") verschiedene Pfade und in Range("_fwpFiles") verschiedene Filenamen.
Da ich nicht weiss, ob diese Files möglicherweise bereits offen sind und wenn nicht, in welchen der möglichen Pfade sich diese befinden, brauche ich zwei Schlauffen, um dies abarbeiten zu können. Meines Erachtens müsste unter diesen Voraussetzungen mein nachfolgender Code laufen.
Nun habe ich das Problem, dass die Filenamen nicht vollständig sind, sie sind mit einem Zeitstempel ergänzt.
Beispiel:
in Range ("_fwpFiles") steht z.B. "XX_URI_CCC_ABD_20130523_"
das wirkliche File heisst jedoch "XX_URI_CCC_ABD_20130523_20130524155541.csv"
Es gibt also 14 weitere Stellen (20130524155541) sowie der Punkt und die Dateierweiterung (immer ".csv")
Ich habe zwei Fragen:
A) Wie muss ich meinen Code anpassen, damit die Files mit dem Zeitstempel erkannt und geöffnet werden
meiner Meinung nach betrifft dies die Codezeile
Workbooks.Open (Rng1.Text & Rng2.Text)
B) Die csv-Files sind Komma-separated - wie kann ich diese öffnen, damit die Spalteninhalte korrekt dargestellt werden?
Danke für jeden Hinweis.
Gruss, Peter
ReDim vntOpen(0)
For Each Rng1 In Range("_pfade")
For Each Rng2 In Range("_fwpFiles") 'Sheets("Cockpit").Range(G26:P26)
If Rng2 <> "" Then
bolOpen = False
If Dir(Rng1.Text & Rng2.Text, vbNormal) <> "" Then
For Each objWB In Application.Workbooks
intNotFullPathAndName = Len(UCase(Rng1.Text & Rng2.Text))
If Left(UCase(objWB.FullName), intNotFullPathAndName) _
= UCase(Rng1.Text & Rng2.Text) Then
bolOpen = True
Exit For
End If
Next
If Not bolOpen Then
If IsError(Application.Match(Rng1 & Rng2.Text, vntOpen, 0)) Then
ReDim Preserve vntOpen(lngIndex)
vntOpen(lngIndex) = Rng1.Text & Rng2.Text
lngIndex = lngIndex + 1
Workbooks.Open (Rng1.Text & Rng2.Text)
End If
End If
End If
End If
Next
Next
'"Betroffene" _fwpFiles schliessen, sofern diese geschlossen waren
If lngIndex > 0 Then
For Each objWB In Application.Workbooks
If Not IsError(Application.Match(Left(objWB.FullName, _
Len(objWB.FullName) - 18), vntOpen, 0)) Then '' 18 = Zeitstempel 14 + ".csv"
objWB.Close , False
End If
Next
End If
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ich weiß nix, also immer noch wer anders...
27.05.2013 13:14:19
Oberschlumpf
...bitte
Hallo Peter
nur für dich der kleine Tipp, zeig doch eine Bsp-Datei, in der alle wichtigen Daten + Beschreibung, was geschehen soll, enthalten ist.
Ciao
Thorsten

AW: Files öffnen - Dateiname ohne Zeitstempel verfügba
27.05.2013 13:17:51
MatthiasG
Hallo Peter,
zu A)
den exakten Dateinamen bekommst du mit der Dir()-Funktion.
Beispiel:

Sub test()
rng1 = "c:\tmp\"
rng2 = "XX_URI_CCC_ABD_20130523_?.csv"
Debug.Print rng1 & Dir(rng1 & rng2)
End Sub

Gruß Matthias

AW: Files öffnen - Dateiname ohne Zeitstempel verfügba
27.05.2013 13:20:22
Rudi
Hallo,
ungetestet:
Sub aaa()
ReDim vntOpen(0)
Dim objWB As Workbook
Dim sFile As String
For Each Rng1 In Range("_pfade")
For Each Rng2 In Range("_fwpFiles") 'Sheets("Cockpit").Range(G26:P26)
If Rng2  "" Then
bolOpen = False
sFile = Dir(Rng1.Text & Rng2.Text & "*.csv", vbNormal)
If sFile  "" Then
For Each objWB In Application.Workbooks
If objWB.Name = sFile Then
bolOpen = True
Exit For
End If
Next
If Not bolOpen Then
If IsError(Application.Match(Rng1.Text & sFile, vntOpen, 0)) Then
ReDim Preserve vntOpen(lngIndex)
vntOpen(lngIndex) = Rng1.Text & sFile
lngIndex = lngIndex + 1
Workbooks.Open (Rng1.Text & sFile)
End If
End If
End If
End If
Next
Next
'"Betroffene" _fwpFiles schliessen, sofern diese geschlossen waren
If lngIndex > 0 Then
For Each objWB In Application.Workbooks
If Not IsError(Application.Match(objWB.FullName, vntOpen, 0)) Then
objWB.Close , False
End If
Next
End If
End Sub

Gruß
Rudi

Anzeige
AW: Files öffnen - Dateiname ohne Zeitstempel verfügba
27.05.2013 15:34:41
Peter
Hallo Zusammen
Das habe ich so hingekriegt, wie das Rudi vorgeschlagen hat.
Das File csv-Delimited öffne ich wie folgt:
Workbooks.Open Filename:=Rng1.Text & strFile, Format:=xlDelimited, Delimiter:=","
Vielen Dank und Gruss, Peter

AW: Files öffnen - Dateiname ohne Zeitstempel verfügba
27.05.2013 17:55:43
Peter
Hallo zusammen
Im Code, den mir Rudi gepostet hat, gibt die Abfrage
sFile = Dir(Rng1.Text & Rng2.Text & "*.csv", vbNormal)
möglichwerweise mehrere Resultate.
Wie kann ich diese alle abarbeiten
Anstelle von if sFile <> "" then
...
End if
versuchte ich mit
do while Len(strFile) > 0
...
Loop
Doch das gibt anscheinend eine Endlosschlaufe. Was muss ich da ändern?
Gruss, Peter

Anzeige
AW: Files öffnen - Dateiname ohne Zeitstempel verfügba
27.05.2013 19:46:35
Uduuh
Hallo,
teste mal:
Sub aaa()
Dim Rng1 As Range, Rng2 As Range, lngIndex As Long
Dim vntOpen()
Dim objWB As Workbook
Dim sFile As String, bolOpen As Boolean
For Each Rng1 In Range("_pfade")
For Each Rng2 In Range("_fwpFiles") 'Sheets("Cockpit").Range(G26:P26)
If Rng2  "" Then
sFile = Dir(Rng1.Text & Rng2.Text & "*.csv", vbNormal)
Do While sFile  ""
bolOpen = False
For Each objWB In Application.Workbooks
If objWB.Name = sFile Then
bolOpen = True
Exit For
End If
Next
If Not bolOpen Then
If IsError(Application.Match(Rng1.Text & sFile, vntOpen, 0)) Then
ReDim Preserve vntOpen(lngIndex)
vntOpen(lngIndex) = Rng1.Text & sFile
lngIndex = lngIndex + 1
Workbooks.Open (Rng1.Text & sFile)
End If
End If
sFile = Dir
Loop
End If
Next
Next
'"Betroffene" _fwpFiles schliessen, sofern diese geschlossen waren
If lngIndex > 0 Then
For Each objWB In Application.Workbooks
If Not IsError(Application.Match(objWB.FullName, vntOpen, 0)) Then
objWB.Close , False
End If
Next
End If
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: Vielen Dank - klappt jetzt - owT
28.05.2013 10:25:09
Peter

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige