802 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo in die Runde..

folgendes Problem:

Ich möchte in einem Ordner mit mehreren Dateien eine bestimmte passende per VBA finden.

Meine Hürde dabei ist, das ich mit nachfolgendem Code immer nur die erste Datei checken kann.

Sub Asuch()
' ####### Es wird nur die erste Datei im Verzeichniss betrachtet ########
' ################# funktioniert so nicht!!! ###################
    Dim strPfad As String
    Dim strDatei As String
    strPfad = Sheets("Zuordnung").Cells(5, 2)
    strDatei = Dir(strPfad & "*.txt")
      Datname = strDatei
      If Datname <> "" Then
        If InStr(Datname, PC_ID) Then
        Pling
        Fg = ""
        End If
      Else
        Fg = "N"
'      MsgBox "Keine Daten"
      End If
End Sub

Wie bekomme ich eine Schleife, in der ich alle Dateinamen im Ordner prüfen kann?

Für einen 'Schubs' in die richtige Richtung wäre ich dankbar..

Gruß

Andreas (Kauz)

3 Antworten

+1 Punkt
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Andreas,

wenn du eine ganz bestimmte Datei prüfen willst, muss dir doch der Name bekannt sein - oder sehe ich das falsch? Dann reicht doch dieses Prinzip:

    Dim strPfad As String
    strPfad = Sheets("Zuordnung").Cells(5, 2)
    If Dir(strPfad & "NameDerMappe.txt") <> "" Then
        MsgBox "Mappe vorhanden"
    Else
        MsgBox "Mappe nicht vorhanden"
    End If

Bis später, Karin

0 Punkte
Beantwortet von
Hallo Karin,

berechtigter Hinweis!

Ich probiere deinen Gedankenansatz mal aus...

Habe vielleicht zu kompliziert gedacht...

Danke erstmal...

melde mich wieder

Gruß

Andreas
0 Punkte
Beantwortet von
Hallo Karin,

es geht !!!

Lösung sieht so aus:

Sub Asuch()
  Dim strPfad As String
  Dim strDatei As String
    strPfad = Sheets("Zuordnung").Cells(5, 2)
' -------------- ausstehende Aufräge ermitteln -----------
  i = 11
  Do Until Sheets("Auftrag").Cells(i, 2) = ""
    If Sheets("Auftrag").Cells(i, 15) = "" Then
    strDatei = Sheets("Auftrag").Cells(i, 3) & "-" & Sheets("Auftrag").Cells(i, 2) & ".txt"
' --------------------------------------------------------
      If Dir(strPfad & strDatei) <> "" Then
        Datname = strDatei
        Pling
        Fg = ""
        Exit Sub
      Else
        Fg = "N"
      End If
    End If
    i = i + 1
  Loop
End Sub

Ich suche in meiner Tabelle die  noch ausstehenden Dateinamen heraus, und prüfe, ob sich diese Dateien in dem Ordner befinden.

Danke für den anderen Ansatz..

Gruß

Andreas
...