Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

String in Dateinamen suchen, dann erster Buchstabe groß

Forumthread: String in Dateinamen suchen, dann erster Buchstabe groß

String in Dateinamen suchen, dann erster Buchstabe groß
20.08.2025 16:35:17
Chris
Hallo Forum,

ich möchte in einem Ordner voller Word-Dateien die jeweiligen Dateinamen nach dem String "_" durchsuchen.
Teilweise ist der Unterstrich mehrere Male in einem Dateinamen vorhanden.

Wenn der String "_" gefunden wurde, soll der erste Buchstabe danach in einen Großbuchstaben umgewandelt werden und der Rest des Dateinamens erhalten bleiben.

Bsp.:
Von: das_ist_ein_Test
Nach: Das_Ist_Ein_Test

Wie löst man dies per VBA?

Gruß
Chris

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String in Dateinamen suchen, dann erster Buchstabe groß
20.08.2025 17:14:33
daniel
HI

probier mal das:

Sub xxx()

Dim NameAlt As String
Dim Pfad As String

Pfad = "C:\Test\...\"

NameAlt = Dir(Pfad & "*_*.docx")

Do Until NameAlt = ""
Name Pfad & NameAlt As Pfad & WorksheetFunction.Proper(NameAlt)
NameAlt = Dir
Loop

End Sub


es verwendet die Funktion GROSS2 (Proper) aus Excel, welche jedes Wort im Text am Anfang groß schreibt.

wenn es auch andere Worttrennzeichen gibt, nach denen nicht groß geschrieben werden soll, dann so:

Sub xxx()

Dim NameAlt As String
Dim Pfad As String
Dim NameNeu As String
Dim i As Long

Pfad = "C:\Test\...\"

NameAlt = Dir(Pfad & "*_*.docx")

Do Until NameAlt = ""
NameNeu = Left(NameAlt, 1)
For i = 2 To Len(NameAlt)
If Mid(NameAlt, i - 1, 1) = "_" Then
NameNeu = NameNeu & UCase(Mid(NameAlt, i, 1))
Else
NameNeu = NameNeu & Mid(NameAlt, i, 1)
End If
Next
Name Pfad & NameAlt As Pfad & NameNeu
NameAlt = DIR
Loop

End Sub

Gruß Daniel
Anzeige
AW: String in Dateinamen suchen, dann erster Buchstabe groß
20.08.2025 17:21:32
Piet
Hallo

probiere es bitte mal damit. Wenn dein Text in Zelle A2 anfängt bitte Range auf A2 ändern.
Steht der Text in einer anderen Spalte bitte den Spalten Buchstaben anpassen.

mfg Piet

Sub Buchstabe_gross()

Dim AC As Range, lz1 As Long, Txt As String
lz1 = Cells(Rows.Count, 1).End(xlUp).Row
For Each AC In Range("A1:A" & lz1)
Txt = UCase(Left(AC, 1))
AC.Value = Txt & Mid(AC, 2)
Next AC
End Sub
Anzeige
AW: String in Dateinamen suchen, dann erster Buchstabe groß
20.08.2025 23:26:40
Ulf
Hi,
so kannst du in VBA und innerhalb GUI arbeiten:
Option Explicit


Public Function ErsteBuchstabenGross(ByVal strIn As String, Optional strTrenner As String = "_") As String
Dim varTeile As Variant
Dim lngTeil As Long
Dim lngTeile As Long
Dim strOut As String
varTeile = Split(strIn, strTrenner, , vbTextCompare)
lngTeile = UBound(varTeile)
For lngTeil = 0 To lngTeile
If lngTeil > 0 Then
strOut = strOut & strTrenner & StrConv(varTeile(lngTeil), vbProperCase)
Else
strOut = StrConv(varTeile(lngTeil), vbProperCase)
End If
Next
ErsteBuchstabenGross = strOut
End Function

Public Sub test()
Dim strIst As String
Dim strSoll As String
strIst = "das_ist_ein_Test"
strSoll = ErsteBuchstabenGross(strIst)
MsgBox strSoll
End Sub

hth
Ulf
Anzeige
AW: String in Dateinamen suchen, dann erster Buchstabe groß
21.08.2025 00:41:08
Uduuh
Hallo,
Daniel und Ulf vereinigt;
Sub xxx()

Dim NameAlt As String
Dim Pfad As String

Pfad = "C:\Test\...\"

NameAlt = Dir(Pfad & "*_*.docx")

Do Until NameAlt = ""
Name Pfad & NameAlt As Pfad & ErsteBuchstabenGross(NameAlt, "_")
NameAlt = Dir
Loop

End Sub

Public Function ErsteBuchstabenGross(ByVal strIn As String, strTrenner As String) As String
Dim varTeile As Variant
Dim lngTeil As Long
Dim lngTeile As Long
Dim strOut As String
varTeile = Split(strIn, strTrenner, , vbTextCompare)
lngTeile = UBound(varTeile)
For lngTeil = 0 To lngTeile
varTeile(lngTeil) = WorksheetFunction.Proper(varTeile(lngTeil))
Next
ErsteBuchstabenGross = Join(varTeile, strTrenner)
End Function

Gruß aus'm Pott
Udo
Anzeige
AW: String in Dateinamen suchen, dann erster Buchstabe groß
21.08.2025 17:45:10
Chris
Hallo zusammen,

vielen Dank, das sind eine ganze Menge Vorschläge. Ich denke ich nehme den von Uduuh bzw. daniel, beides erfüllt seinen Zweck, den Rest kann ich anpassen.

Chris
AW: String in Dateinamen suchen, dann erster Buchstabe groß
21.08.2025 02:31:07
daniel
Wenn du Proper (Gross2) verwendest, kannst du dir das Split eigentlich sparen. proper macht die Buchstaben nach vielen Satz- und Zwischenzeichen groß, so dass du das auch gleich auf den ganzen Text anwenden kannst.

Sollte nur nach dem vorgegeben Zeichen großgeschrieben werden, darfst du proper aus diesem Grund auch nicht einsetzen.

Gruß Daniel
Anzeige
Anzeige
Anzeige