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

Datei mit höchster Nummer ermitteln?

Datei mit höchster Nummer ermitteln?
10.06.2020 21:33:07
Sergej
Hallo Leute,
wie kann ich bitte per VBA überprüfen, ob im Verzeichnis "D:\Daten\Projekte\1231234\OUT\"
überhaupt Datei "Liste*.ini" existiert? Falls mehrere Dateien vorhanden sind, dann möchte ich die Liste mit höchster Nummer in einem MsgBox ausgeben.
Beispiele:
"D:\Daten\Projekte\1231234\OUT\Liste10.ini"
"D:\Daten\Projekte\1231234\OUT\Liste15.ini"
"D:\Daten\Projekte\1231234\OUT\Liste18.ini"
"D:\Daten\Projekte\1231234\OUT\Liste20.ini"
Ergebnis:
Liste20.ini
Beste Grüße,
Sergej

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei mit höchster Nummer ermitteln?
10.06.2020 23:05:02
Rob
Hi Sergej,
das ist schon komplizierter. Ich würde mit FileSystemObject (Verweis auf Microsoft Scripting Runtime) die Dateien durchschleifen und über die Funktion 'Dir' checken ob eine Liste*.ini dabei ist. Wenn das der Fall ist, kannst Du den Namen der Datei in ein Array packen und das Array anschließend wiederrum durch-loopen, um die höchste Nummer zu ermitteln. Es gibt z.B. die Funktion 'Mid' mit der das zu bewerkstelligen wäre.
Hoffe das hilft weiter.
Grüße, Rob
AW: Datei mit höchster Nummer ermitteln?
10.06.2020 23:58:53
volti
Hallo Sergej,
teste mal folgendes Makro:

Option Explicit
Sub Test()
 Dim sFile As String, Nr As Integer, OldNr As Integer, i As Integer
 sFile = Dir$("D:\Daten\Projekte\1231234\OUT\Liste*.ini")
 Do While sFile <> ""
  sFile = Split(sFile, ".")(0)
  For i = Len(sFile) To 1 Step -1
    If Not Mid$(sFile, i, 1) Like "#" Then Exit For
  Next i
  Nr = Val(Mid$(sFile, i + 1, Len(sFile) - i))
  If Nr > OldNr Then OldNr = Nr
  sFile = Dir$
 Loop
 If OldNr <> 0 Then Debug.Print "Liste" & OldNr & ".Ini"
End Sub
viele Grüße
Karl-Heinz

Anzeige
AW: Datei mit höchster Nummer ermitteln?
11.06.2020 09:05:46
Sergej
Hallo Karl-Heinz,
vielen herzlichen Dank!
Beste Grüße,
Sergej
AW: Datei mit höchster Nummer ermitteln?
11.06.2020 09:15:14
Rob
Hi Karl-Heinz,
schön gelöst, auch ohne die FSO-Klasse! Vllt eine Anmerkung, wenn Du erlaubst: Dein Code ist wirklich effizient == kurz aber dadurch muss man Abstriche bei der Lesbarkeit machen. Mit Verlaub; die ist ne mittlere Katastrophe. Z.B. die Variable sFile: der Name ist absolut nichtssagend. Oder auch die Variable 'Nr'.
Und auch gerne mal nen Absatz machen, z.B. nach der Deklaration der Variablen. Was für nen Brief-Text gilt, gilt auch für nen Programm-Code. Gerade wenn man mit Visual Basic coded, was ja sehr textlastig ist. In anderen Sprachen wie Java oder C++, C# etc ist das weniger ein Problem. Trotzdem wird selbst dort mit Absätzen gearbeitet.
Ach so; warum verwendest Du jedes Mal das $ Zeichen bei Deinen Methoden? Output sollte jedes Mal Variant sein und das passt doch. Der einzige Vorteil, dass Du String als Output haben möchtest, ist ein Performance-Vorteil aber bei der länge dieses Moduls darf man zugunsten der Lesbarkeit darauf verzichten.
Bitte nicht als Kritik als vielmehr als Anregung verstehen. Ich weiß, viele Programmierer nehmen sowas sehr persönlich und natürlich lässt sich über vieles diskutieren.
LG, Rob
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige