Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

nächste datei

Betrifft: nächste datei von: Petra
Geschrieben am: 17.09.2004 09:05:09

hallo leute,

ich muss hier an einer datenbank arbeiten kenne mich mit vba aber noch nicht so gut aus, vielleicht könnt ihr mir da weiterhelfen.
also ich mochte in jede datei hereinschauen, die sich in einen ordner befindet. öffnen klappt soweit ganz gut mit dem open befehl, aber wie schreibe ich das, das er zur nächsten datei springen soll, also das ganze in einer schleife, wenn ich nicht jede datei einzeln ansprechen moechte.

danke und grüsse,
petra

  


Betrifft: AW: nächste datei von: Dr.
Geschrieben am: 17.09.2004 09:07:13

Wie so oft: kommt drauf an. Sind die Dateien in einer logischen Folge benannt?


  


Betrifft: AW: nächste datei von: petra
Geschrieben am: 17.09.2004 09:16:48

nein, sind sie leider nicht..
vielleicht jeder datei eine zahl zuweisen, und dann durchzählen? vielleicht mit der methode setAttr... aber hier ist als parameter auch der pfad notwendig, was uns wieder an den anfang des problems bringt
gibt den den so eine methode nach der art "next file in directory"

danke,
petra


  


Betrifft: AW: nächste datei von: Dr.
Geschrieben am: 17.09.2004 09:18:43

Vielleicht hilft Dir das weiter?

https://www.herber.de/index.html?https://www.herber.de/mailing/005997h.htm


  


Betrifft: AW: nächste datei von: Petra
Geschrieben am: 17.09.2004 11:01:21

Hi Dr.,
danke für die Antwort. Habe es jetzt mal eingbaut, scheint aber nicht zu funktionieren.
Interpretiere ich die Zeilen richtig:

sfile = DIR(sPath & "*.xls")
Do While sFile <> ""

Suche im sPath nach *.xls und tue dies solange sFile = ""(was keinen file mehr entspricht, also bis zum ende)


  


Betrifft: AW: nächste datei von: Petra
Geschrieben am: 17.09.2004 11:17:42

Der Befehl DIR gibt mir immer nur die erste alphabetisch geordnete Datei..
Ich moechte aber alle haben, geht das? und wie?


  


Betrifft: AW: nächste datei von: Reinhard
Geschrieben am: 17.09.2004 11:25:43

Hi petra,
was gefällt dir an meiner Lösung nicht?
Gruß
Reinhard


  


Betrifft: AW: nächste datei von: Petra
Geschrieben am: 17.09.2004 13:05:35

Hallo Reinhard,

entschuldige, ich hatte mich erst total auf Dr. Antwort versteift..
Diese Moeglichkeit sieht vielversprechend aus. Nur habe ich wieder ein kleines Problem damit. ich möchte nämlich keine workbooks auslesen, sondern direkt .ext dateien. und die muesste ich doch dann anstatt dem wb als parameter eingeben. Diese dateien koennen aber nicht die .foundfiles methode aufrufen, die bei dir im parameter steht. oder bin ich auf der falschen spur?

viele grüße,
petra


  


Betrifft: AW: nächste datei von: Reinhard
Geschrieben am: 17.09.2004 13:26:26

Hallo Petra,
kenne keine .ext-Dateien, kann Excel die öffnen und importieren, oder nur auslesen,
also auslesen mit
open xyz.ext for input as #1
?
Gruß
Reinhard


  


Betrifft: AW: nächste datei von: petra
Geschrieben am: 17.09.2004 13:33:59

Hi Reinhard,

ja, ist ein etwas exotisches file.
Aber mit genau der methode, die du genannt hast kann man die files auslesen..

Gruss,
Petra


  


Betrifft: AW: nächste datei von: Reinhard
Geschrieben am: 17.09.2004 13:59:45

Hi Petra,
Sub tt()
With Application.FileSearch
    .NewSearch
    .LookIn = "C:\temp"
    .SearchSubFolders = False
    .Filename = "*.ext"
    If .Execute() > 0 Then
        For i = 1 To .FoundFiles.Count
            Call offen(.FoundFiles(i))
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With
End Sub

Sub offen(Datei)
Close
zei = Cells(65536, 1).End(xlUp).Row + 1
Open Datei For Input As #1
While Not EOF(1)
    Input #1, satz
    Cells(zei, 1) = satz
    zei = zei + 1
Wend
Close #1
End Sub


Gruß
Reinhard


  


Betrifft: AW: nächste datei von: Reinhard
Geschrieben am: 17.09.2004 09:23:03

Hi Petra,
Sub tt()
With Application.FileSearch
    .NewSearch
    .LookIn = "C:\temp"
    .SearchSubFolders = False
    .FileType = msoFileTypeExcelWorkbooks
    If .Execute() > 0 Then
        For i = 1 To .FoundFiles.Count
            Call offen(.FoundFiles(i))
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With
End Sub

Sub offen(wb)
Workbooks.Open wb

'hier dann dein Code

End Sub

Gruß
Reinhard