aktuellste Mappe öffnen



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: aktuellste Mappe öffnen
von: Hans-Jörg
Geschrieben am: 18.06.2002 - 12:49:56

Hallo,
wer kann mir sagen wie ich meinen Codee aufbauen muss .
Ich habe einen Dateinamen und möchte die aktuellste Datei öffnen.
Der Name ist : APP_SM-Auflösungsdaten_180302.xls
zur prüfung, steckt der fragliche Monat in der Variable "strMonat".

Ich möchte nur von Rechts nach links den Dateiname Prüfen.
und die aktuellste öffnen.
Wenn das Jahr und der Monat stimmt dann den höchsten Tag

Hans-Jörg

nach oben   nach unten

Re: aktuellste Mappe öffnen
von: Hans W. Herber
Geschrieben am: 19.06.2002 - 08:01:42

Hallo Hans-Jörg,

folgende Syntax bei Dateinamen mit Datumswerten sollte immer beachtet werden: JJMMTT
Hierdurch erreicht man, dass sich die Dateien von selbst sortieren.

Für Deine Dateinamensyntax folgender Code:


Sub OpenLast()
   Dim fs As FileSearch
   Dim arrDate() As Long
   Dim iCounter As Integer, iAct As Integer
   Dim sDate As String
   Set fs = Application.FileSearch
   With fs
      .Filename = "c:\tmp\APP_SM-Auflösungsdaten_*.xls"
      .Execute
      For iCounter = 1 To .FoundFiles.Count
         sDate Right(.FoundFiles(iCounter), 10)
         sDate Left(sDate, 6)
         sDate Right(sDate, 2) & Mid(sDate, 3, 2) & _
            Left(sDate, 2)
         iAct = iAct + 1
         ReDim Preserve arrDate(iAct)
         arrDate(iAct) = CLng(sDate)
      Next iCounter
   End With
   arrDate = SlowSort(arrDate)
   sDate Format(arrDate(UBound(arrDate)), "000000")
   sDate Right(sDate, 2) & Mid(sDate, 3, 2) & Left(sDate, 2)
   Workbooks.Open "c:\tmp\APP_SM-Auflösungsdaten_" & _
      sDate & ".xls"
End Sub

Function SlowSort(arr As Variant) As Variant
   Dim lngCounter As Long, lngCount As Long, lngTmp As Long
   For lngCounter = 1 To UBound(arr)
      For lngCount = lngCounter + 1 To UBound(arr)
         If arr(lngCounter) > arr(lngCount) Then
            lngTmp = arr(lngCounter)
            arr(lngCounter) = arr(lngCount)
            arr(lngCount) = lngTmp
         End If
      Next lngCount
   Next lngCounter
   SlowSort = arr
End Function

hans

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Tabellen über Makro füllen und fortschreiben"