Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
460to464
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
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Datei speichern - VBA
29.07.2004 14:26:51
Hendrik
Moin,
folgender Code will nicht so recht und ich hab keine Ahnung warum:

Sub Speichern()
Dim Dateiname As String
Dateiname = Application.InputBox(prompt:="Bitte Dateinamen eingeben:")
If Dateiname = False Then
Application.DisplayAlert = False
ActiveWorkbook.Close
Else
ActiveWorkbook.SaveAs Filename:="G:\" & Dateiname
ActiveWorkbook.Close
End If
Application.DisplayAlerts = True
End Sub

Er soll nach nem Dateinamen fragen (tut er), bei Klick auf Abbrechen soll er die Datei meldungslos schliessen (tut er nich), Bei Klick auf OK unter dem angegebenem Dateinamen speichern (tut er auch nich).
Ich steh auf dem Schlauch...!?!!!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei speichern - VBA
harry
hi,
so funkt es bei mir:

Sub Speichern()
Dim Dateiname As String
Dateiname = Application.InputBox(prompt:="Bitte Dateinamen eingeben:")
If Dateiname = "" Then
Application.DisplayAlerts = False
ActiveWorkbook.Close
Else
ActiveWorkbook.SaveAs Filename:="G:\" & Dateiname
ActiveWorkbook.Close
End If
Application.DisplayAlerts = True
End Sub

du hattest 2 fehler:
dateiname = string kann daher nicht auf false gesetzt werden
Application.DisplayAlert = False gibts nicht, heißt: Application.DisplayAlerts = False
liebe grüße,
harry
Anzeige
AW: Datei speichern - VBA
29.07.2004 14:54:03
Philipp
Hallo
Harrys Lösung und Hinweise sind korrekt.
Anstelle von
If Dateiname = "" Then
sollte man jedoch
If Trim$(Dateiname) = "" or Dateiname = "Falsch" Then
verwenden, falls der User einfach ein Leerzeichen eingibt und dann OK klickt oder auf Abbrechen klickt.
Gruss
Philipp
¦¦¦ xlam - Excel and more!
¦¦¦ http://195.186.84.74/index.htm
AW: Datei speichern - VBA
Udo
Das reicht ja auch nicht, es muss auch geprüft werden, ob in Dateinamen verbotene Zeichen
enthalten sind!
Udo
AW: Datei speichern - VBA
29.07.2004 15:11:33
Uwe
Hallo Zusammen,
dann vielleicht auf die harte Tour:

Sub Speichern()
Dim Dateiname As String
Dateiname = Trim(Application.InputBox(prompt:="Bitte Dateinamen eingeben:"))
Select Case Dateiname
Case "", False
ActiveWorkbook.Close SaveChanges:=False
Case Else
On Error GoTo NameUngueltig
ActiveWorkbook.Close Filename:="G:\" & Dateiname
End Select
Exit Sub
NameUngueltig:
MsgBox "Der Dateiname enthält ungültige Zeichen!"
End Sub
Gruß Uwe
Anzeige
AW: Datei speichern - VBA
Udo
Hart aber dafür programmiertechnisch nicht gut.
Udo
AW: Datei speichern - VBA
29.07.2004 15:35:33
Philipp
Wenn wir gerade schon dabei sind... ;-)
Die Fehlermeldung sollte nicht "Der Dateiname enthält ungültige Zeichen!" lauten, da abgesehen von ungültigen Zeichen was anderes faul sein kann. Beispielsweise Festplatte voll, keine Schreibrechte, Datei existiert bereits und ist von einem anderen User/Prozess geöffnet, Laufwerk nicht verfügbar, Datenträger nicht eingelegt, Gerät nicht bereit, Pfad ungültig, Dateiname zu lang usw.
Ausserdem muss vor "ActiveWorkbook.Close Filename:=..." die Anweisung "Application.DisplayAlerts = False" eingefügt werden, sonst erscheint die Excel-Rückfrage "Änderungen speichern?".
Abgesehen davon: Was macht der User, wenn er die InputBox vor sich hat und weder speichern noch schliessen möchte?
Gruss
Philipp
¦¦¦ xlam - Excel and more!
¦¦¦ http://195.186.84.74/index.htm
Anzeige
AW: Datei speichern - VBA
Udo
Du hast ja so Recht.
Udo
Danke Harry!!! oT
Hendrik
.
AW: Datei speichern - VBA
harry
so funkts einwandfrei:
Dim Dateiname As String

Dateiname = InputBox(prompt:="Bitte Dateinamen eingeben:")
If Dateiname = "" Then
Application.DisplayAlerts = False
ActiveWorkbook.Close
Else
ActiveWorkbook.SaveAs Filename:="c:\" & Dateiname
ActiveWorkbook.Close
End If
Application.DisplayAlerts = True
statt application.inputbox nur inputbox
liebe grüße,
harry

210 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige