Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern - automatisch Sonderzeichen wechseln

Speichern - automatisch Sonderzeichen wechseln
24.08.2006 20:27:15
Peter
Guten Abend
jemand aus dem Forum hat mir geholfen, nachfolgenden Code zwecks Speichern von Dateien zu schreiben.
Der Speichername wird jeweils der Variable varRetVal übergeben.
Nun tritt ab und zu das Problem auf, dass die Variable ein Sonderzeichen, i.d.R. "/" enthält, was sich ja in einem Dateinamen nicht verwenden lässt.
Ich suche daher nach einer Möglichkeit, wie ich dieses Sonderzeichen (oder allenfalls alle unpassenden Zeichen, durch ein _ ersetzen kann.
Im Weiteren ist mir nicht ganz klar, was ich am Code ändern muss, damit der Code beim Speichern durchläuft, also die Datei ohne Eingriffmöglichkeit unter dem definierten Namen speichert.
Kann mir da jemand weiterhelfen?
Danke, Peter

Sub save_as()
Application.StatusBar = "Überarbeitetes File unter anderem Namen speichern"
Dim varRetVal       As Variant
Dim strInitFileName As String
ChDir "\"
If Environ("Computername") = "NB200507" Then
ChDir "C:\Dokumente und Einstellungen\PS\Desktop\BIRS"
Else
ChDir "I:\Kunden\Wertschriften\TEAM PS\BIRS"
End If
strInitFileName = "JAB_2006_06_" & UCase(Left(Range("_L"), 2)) & "-" & Range("link").Value & "_V1"
varRetVal = Application.GetSaveAsFilename( _
InitialFileName:=strInitFileName, _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Datei speichern unter...")
If varRetVal = False Then Exit Sub
ActiveWorkbook.SaveAs varRetVal
End Sub

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

Betreff
Datum
Anwender
Anzeige
Sonderzeichen ersetzen
24.08.2006 20:34:50
{Boris}
Hi Peter,
zum Thema Sonderzeichen durch _ ersetzen:
Option Explicit

Sub test()
Dim varRetVal As String, arr As Variant, i As Integer
arr = Array("/", "\", "?", "*", "}") 'Hier alle Sonderzeichen aufnehmen
varRetVal = "Hier/sind\viele?Sonderzeichen*enthalten}"
For i = 0 To UBound(arr)
varRetVal = Replace(varRetVal, arr(i), "_")
Next i
MsgBox varRetVal, 64, "So sehe ich ohne Sonderzeichen aus"
End Sub

Frage 2 versteh ich nicht.
Grüße Boris
AW: Sonderzeichen ersetzen
24.08.2006 20:40:06
Peter
Hallo Boris
herzlichen Dank für die superschnelle Antwort.
Zur zweiten Frage:
Mit dem vorstehenden Code wird "Speichern unter" aufgerufen und gleich ein Name vorgeschlagen, der jedoch noch abgeändert werden kann. Der Makro läuft erst weiter, wenn ich den Namen akzeptiere oder allenfalls anpasse und dann ENTER drücke.
Ich möchte den Code so anpassen, dass die Speicherung erfolgt, ohne Änderungsmöglichkeit und ohne Notwendigkeit, dass mit ENTER bestätigt wird.
Freundlicher Gruss
Peter
Anzeige
AW: Sonderzeichen ersetzen
24.08.2006 20:55:15
ChrisL
Hallo Peter
Probier mal...
Sub save_as()
Dim strInitFileName As String
On Error GoTo ErrorHandler
If Environ("Computername") = "NB200507" Then
strInitFileName = "C:\Dokumente und Einstellungen\PS\Desktop\BIRS"
Else
strInitFileName = "I:\Kunden\Wertschriften\TEAM PS\BIRS"
End If
strInitFileName = strInitFileName & "JAB_2006_06_" & UCase(Left(Range("_L"), 2)) & "-" & Range("link").Value & "_V1"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs CleanString(strInitFileName)
Application.DisplayAlerts = True
Exit Sub
ErrorHandler:
Application.DisplayAlerts = True
MsgBox "Fehler: Die Datei wurde nicht gespeichert.", vbCritical, "Fehlermeldung"
End Sub

Private Function CleanString(strFileName As String) As String
Dim arr As Variant, i As Integer
arr = Array("/", "\", "?", "*", "}") 'Hier alle Sonderzeichen aufnehmen
For i = 0 To UBound(arr)
strFileName = Replace(strFileName, arr(i), "_")
Next i
CleanString = strFileName
End Function

Viel Spass
Chris
Anzeige
AW: Sonderzeichen ersetzen
24.08.2006 20:57:20
ChrisL
kleiner Überlegungsfehler, neuer Versuch :-)
Sub save_as()
Dim strInitFileName As String
On Error GoTo ErrorHandler
If Environ("Computername") = "NB200507" Then
strInitFileName = "C:\Dokumente und Einstellungen\PS\Desktop\BIRS"
Else
strInitFileName = "I:\Kunden\Wertschriften\TEAM PS\BIRS"
End If
strInitFileName = strInitFileName & CleanString("JAB_2006_06_" & UCase(Left(Range("_L"), 2)) & "-" & Range("link").Value & "_V1")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs strInitFileName
Application.DisplayAlerts = True
Exit Sub
ErrorHandler:
Application.DisplayAlerts = True
MsgBox "Fehler: Die Datei wurde nicht gespeichert.", vbCritical, "Fehlermeldung"
End Sub

Private Function CleanString(strFileName As String) As String
Dim arr As Variant, i As Integer
arr = Array("/", "\", "?", "*", "}") 'Hier alle Sonderzeichen aufnehmen
For i = 0 To UBound(arr)
strFileName = Replace(strFileName, arr(i), "_")
Next i
CleanString = strFileName
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige