![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 22.06.2006
Beiträge: 17
|
![]() Ich habe ein Formular, wo per Makro aus einem (oder mehreren) Textfeld(ern) gleich beim abspeichern der Dateiname erzeugt wird.
Der Code lautet: Sub FileSave() If ActiveDocument.Path = "" Then 'Falls Dokument noch nie gespeichert wurde FileSaveAs Exit Sub End If ActiveDocument.Save End Sub Sub FileSaveAs() With Dialogs(wdDialogFileSaveAs) 'Beispiel: 2008_01_28_KO_4220_102360_Toner PC75A.doc .Name = ActiveDocument.FormFields("datum").Result & "_KO_" & _ ActiveDocument.FormFields("werk").Result & "_" & _ ActiveDocument.FormFields("lieferant").Result & "_" & _ ActiveDocument.FormFields("artikel").Result .Show End With End Sub Funktioniert auch wunderbar, solange nicht bestimmte Zeichen ("/", "\" , "",...) in diesen Formularfeldern vorkommen - wird mir natürlich nicht als Dateiname akzeptiert. Wie kann ich jetzt per VB diese "Sonderzeichen" in ein "_" umwandeln, damit das Dokument ohne Fehler abgespeichert werden kann?? Vielen Dank schon mal für Eure Hilfe ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() |
![]() Wie wäre es mit ersetzen?
Warum ersetzt du die ungewünschten Zeichen nicht einfach? (2 Schleifen + mid) pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
#3 |
Senior Member
![]() |
![]() Hi
ich hab mal so was in der art machen müssen und habs über ascii gemacht sprich alles auf klein formatiert und dann: jedes zeichen überprüft ob der wert von asc() in einen gewünsten bereich liegt ich glaube (a = 24 und b = 25 usw) und wenns nicht in dem bereich war dann eben mit _ ersetzten.. wichtig ist dabei dasst nicht vergisst alles klein oder groß zu machen weil a und A haben zB verschieden werte.. |
![]() |
![]() |
![]() |
#4 |
Newbie
![]() Registriert seit: 22.06.2006
Beiträge: 17
|
![]() Vielen Dank für für Eure Hilfe
|
![]() |
![]() |
![]() |
#5 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Wenn du ein bestimmtes Zeichen (oder auch mehere) ersetzen willst, bietet sich die VB-Funktion Replace an. Wenn du nur bestimmte Zeichen erlauben willst, mach es über den ASCII-Code. Farkarich hat das ja schon beschrieben. 48 bis 57, 65 bis 90, 97 bis 122 (Buchstabe groß und klein oder Zahl). Eventuell solltest du aber auch noch weitere Zeichen erlauben (z. B. - _ .) mfg WB |
![]() |
![]() |
![]() |
#6 |
Senior Member
![]() |
![]() @ wbendl
hi ganz genau, und danach es bei der problemstellung geht dass man keine "sonderzeichen" festlegt finde ich wär eben die lösung mit dem asci am einfachsten, weil sonst hast eben probleme festzulegen welche zeichen müssen alle replaced werden, mit meiner lösung wird einfach nur der bereich angegeben der erlaubt ist und der rest is ausgeschlossen.. mfg Bernd |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|