Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Programmcode vereinfachen

Begonnen von Gockel67, Mai 15, 2026, 17:49:21

⏪ vorheriges - nächstes ⏩

Gockel67

Moin Gemeinde,

es geht darum einen Dateinamen zu verändern.Dazu habe ich mir aus verschiedenen Quellen im Internet den Programmcode zusammengesucht.
Der Dateiname steht in einem Textfeld und hat folgendes Muster:

\Anlagen\Karten Bilder\LS 001\LS 001 - 00001.jpg

Die Zahl wird ersetzt und die Dateiendung bleibt erhalten.

Hier jetzt der Code dazu der auch funkitioniert:

Dim QuellText As String
Dim ZielText As String
Dim Suche As Integer
Dim Position As Integer
Dim Ergebnis As String

QuellText = BildpfadNeu
Position = InStrRev(QuellText, ".")
Ergebnis = Mid(QuellText, Position)
Suche = InStr(QuellText, "-") ' Findet die Position des Punktes

ZielText = Left(QuellText, Suche - 1) & "- " & Eingabe & Ergebnis
MsgBox ZielText

 QuellText und Eingabe sind jeweils Textfelder.

Meine Frage: Lässt sich dieser Programmcode vereinfachen?

Wünsche allen ein schönes Wochenende
Jörg

Köbi

Hallo Jörg
Ich verstehe dein Anliegen nicht ganz. Und ich glaube, der gepostete Code ist nicht vollständig. Kannst du nicht den ganzen Code zeigen?
Und was soll das Ergebnis sein? Eine MsgBox mit dem Zieltext kann ja nicht der Schluss sein.

Gruss, Köbi

Gockel67

Hallo Köbi,

doch, das ist der ganze Code der im Klickereignis eines Button steht. Die Zahl im String soll ausgetauscht werden.

Das ist ja vorläufig nur ein Test. Später sollen Daten in einer Tabelle ausgetauscht werden.
Schönes Wochenende
Jörg

Debus

hallo Jörg,  der Code kann nicht vollständig sein.

Aber Skizziere doch bitte einfach mal Dein komplettes anliegen und nicht jetzt einen Teil, der nachher aber anders sein soll bzw. erweitert.

Sag einfach mal was das Endergebnis sein soll und woher genau welche Daten kommen (für den Namen) und wie er aufgebaut werden soll.

Gruß
Holger

Debus

Hallo Jörg,
schreibe doch bitte mal in dem Thread ob der nun erledigt ist.
Weil Du nicht mehr gentwortet hattest ob Du mit den Vorschlägen klar gekommen bist oder ob das auch noch weiterhin eine offene Baustelle ist.



Holger

Knobbi38

Hallo Jörg,

wenn die Zahl immer 5-stellig ist, dann könnte man das so machen:
  Dim strEingabe As String
  Dim strFilename As String
  Dim lngPos As Long
 
  Const FNAME As String = "\Anlagen\Karten Bilder\LS 001\LS 001 - 00001.jpg"
  Const FMASK As String = "00000"
     
  strEingabe = "127"
 
  lngPos = InStrRev(FNAME, ".") - Len(FMASK)
  strFilename = FNAME
  Mid$(strFilename, lngPos, Len(FMASK)) = Format$(strEingabe, FMASK)
 
  Debug.Print "[" & strFilename & "]"

Knobbi38

Gockel67

Hallo Knobi,

ganz dicken Dank an dich. Ja, die Zahl ist immer 5-Stellig.
Werde deinen Code nachher ausprobieren.

Wünsche allen ein schönes Wochenende
Jörg

Gockel67

Hallo Knobi,

hat bestens geklappt. Vielen Dank

Wünsche dir ein schönes Wochenende
Jörg