Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datei öffnen via VB





Frage

Liebe Liste, gibt es eigentlich eine Möglichkeit per VB eine Datei aufzurufen, bei der lediglich der Namensanfang und das Format bekannt sind? Beispiel: In einem Verzeichnis liegen Dateien, die man vor allem durch Ihren Dateinamenanfang auseinanderhalten kann, z.B.: A_xxxxx.txt A_xxxxx.doc B_xxxxx.txt B_xxxxx.doc u.s.w. Die xxxxx können dabei sehr variieren. Wenn VB nun die Datei A_xxxxx.txt in Excel öffnen möchte und xxxxx unbekannt ist habe ich ein Problem. Gibt es nicht so etwas wie A_*.txt ? Würde mich über einen Tip sehr freuen. Grüße Chrisnelly

Antwort 1 von piano

Hallo
Die Antwort ist relativ einfach!
Gegenfrage: Gibt es ein Windows-(DOS-) Statement mit dem man Dateien über Matchcode öffnen kann ?
AFAIK - nein!
Wenn Du an einer VBA-Lösung interessiert bist, die einen Pfad nach bestimmten Dateien untersucht und in Excel öffnet, kann ich Dir helfen. Melde Dich (aber rasch: bin dann länger auf Urlaub)

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -



Antwort 2 von Chrisnelly

Hallo piano,
ich habe zwar leider keine Ahnung wo von Du sprichst,
aber eines ist ganz sicher: Ich bin an einer Lösung interessiert.

Du hast recht. Man könnte es auch so ausdrücken: Ich suche eine Lösung, die einen Pfad nach bestimmten Dateien untersucht und dann in Excel öffnet ...
Allerdings arbeite ich mit MAC OS-X.
Hoffentlich erwische ich Dich noch vor Deinem Urlaub.
Grüße
Chrisnelly

Antwort 3 von piano

Hallo Chrisnelly
Hab zwar keine Ahnung, ob MAC OS-X VBA versteht, aber dennoch der Code:
Public Sub DateiAuswählen()
On Error Resume Next
Dim Verz, DateiName, ret
Dim i  As Integer, posBeg As Integer

Verz = InputBox("Verzeichnis eingeben:")
If Verz = "" Then Exit Sub
If Right(Verz, 1) <> "\" Then
 Verz = Verz & "\"
End If
With Application.FileSearch
    .NewSearch
    .LookIn = Verz
    .SearchSubFolders = False
    .FileType = msoFileTypeExcelWorkbooks
    .Execute
    posBeg = 1
    For i = 1 To .FoundFiles.Count
        DateiName = .FoundFiles(i)
        ret = DateienÖffnen(DateiName)
    Next i
End With
End Sub

Public Function DateienÖffnen(DateiName)
    Workbooks.OpenText Filename:= _
        DateiName _
        , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
        True, Comma:=False, Space:=False, Other:=False, 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))
        ', TrailingMinusNumbers:=True 'Office 97
End Function

Gruß piano


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: