Herbers Excel-Forum - das Archiv
Umwandlung/Prüfung String in Exceldatei
Betrifft: Umwandlung/Prüfung String in Exceldatei
von: MikeS
Geschrieben am: 17.03.2005 15:50:48
Hallo,
kennt jemand eine Prüfroutine, mit der ich die Namenskonventionen
für Excel-Dateinamen überprüfen kann?
Ich erhalte den String aus einem Textfeld, welches vom User gefüllt
wird. Ich ergänze dann das Datum und die Endung .xls.
Eingabe User: "Testdatei" Dateiname = "Testdatei_17032004.xls"
Ich möchte solche Zeichen wie - oder / usw. abfangen.
Vielen Dank.
MikeS
Betrifft: so geht's
von: Labossa
Geschrieben am: 17.03.2005 16:27:23
Sub forum2()
name1 = "xyt.rt-m/yetc."
'abfragen auf bestimmte Zeichen:
posx = InStr(name1, "-")
If posx > 0 Then MsgBox (name1 & vbCrLf _
& "falsches Zeichen: " & """ - """ & vbCrLf _
& "an Position: " & posx)
'etc., kann mann auch in eine Schleife packen und die Zeichen als Variablen
'weitergeben
'oder falsche Zeichen direkt löschen:
name2 = Replace(name1, "-", "")
End Sub
Betrifft: AW: so geht's
von: Frank Domke
Geschrieben am: 17.03.2005 16:44:33
Hallo Mike,
habe im Internet etwas gefunden und modifiziert. Leider habe ich keine weiteren Informationen zu RegExp gefunden, trotzdem es funktioniert.
Wichtig ist der Verweis auf Microsoft VBScript Regular Expression 5.5!
Probier es mal so:
Sub TestCheckFileName()
CheckFileName "ABCDE.DEF"
CheckFileName "\ABCDE.DEF"
End Sub
Function CheckFileName(strName As String) As Boolean
Dim oRegExp As RegExp
CheckFileName = False
Set oRegExp = New RegExp
oRegExp.Pattern = "[\\\/\:\*\?\" & Chr(34) & "\<\>\|]"
Set oMatches = oRegExp.Execute(strName)
If oMatches.Count = 0 Then
MsgBox "Dateiname i.O.!", vbInformation
CheckFileName = True
Else
MsgBox "Dateiname ist ungültig!", vbCritical
End If
End Function
Viel Erfolg
Frank.
Betrifft: AW: so geht's
von: MikeS
Geschrieben am: 17.03.2005 17:06:05
Ich danke Euch. Hab es mit ner Schleife wie folgt gelößt.
Private Sub txtDateiname_Change()
' Nicht zulässige Zeichen im Dateinamen löschen:
' "/", "\", ">", "<", "*", "?", """, "|", ":", ";"
Dim i%, Zeichen, Pos%, AlterDateiname$
Zeichen = Array("/", "\", ">", "<", "*", "?", "|", ":", ";")
With Me
AlterDateiname = Left(.txtDateiname.Text, Len(.txtDateiname.Text) - 1)
For i = 0 To 8
Pos = InStr(1, .txtDateiname.Text, Zeichen(i))
If Pos > 0 Then
.txtDateiname.Text = AlterDateiname
.lblDateiname.Caption = AlterDateiname & "_" & Date & ".xls"
Exit Sub
End If
Next i
If .txtDateiname.Text = "" Then
.lblDateiname.Caption = "Es wurde noch kein Dateinamen eingegeben!"
.lblDateiname.ForeColor = RGB(255, 0, 0)
Else
.lblDateiname.Caption = .txtDateiname.Text & "_" & Date & ".xls"
.lblDateiname.ForeColor = RGB(0, 0, 100)
End If
End With
End Sub
Ciao Mike