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

Datei automatisch speichern nach Eingabe

Datei automatisch speichern nach Eingabe
29.04.2009 13:13:57
Franz
Hallo zusammen,
habe folgendes Problem:
über eine Vorlage (XLT) wird ein neues Arbeitsblatt erstellt. In 2 Zellen (D7 und B13) sollen Kundennummer und Reparaturnummer eingetragen werden. Auf dem Blatt gibt es einen Button der die Datei dann speichert und zwar in der Form: Kundennummer_Reparaturnummer.xls. Wenn der Anwender jedoch VOR diesem Speichern auf "Schliessen" klickt, kommt die Abfrage, ob die Änderungen gespeichert werden sollen. Wird dann "Nein" ausgewählt, ist dieses Arbeitsblatt natürlich "gelöscht", also nicht gespeichert und alle Eintragungen weg. Schön wäre es, wenn das Speichern automatisch nach Eingabe der Werte (und nur dann!) in B13 und D7 erfolgt. Allerdings sollte das Arbeitsblatt auch "verworfen" werden können, also Schliessen ohne Änderungen zu speichern (siehe oben), weil nichts eingetragen wurde und Excel geschlossen werden soll (zum Feierabend). Hoffe, ich habe mich einigermaßen verständlich ausgedrückt. Einige Experiment mit beforeclose und beforsafe habe ich auch schon gemacht, aber der gewünschte Erfolg hat sich nicht eingestellt.
Danke schonmal im voraus, Franz

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei automatisch speichern nach Eingabe
29.04.2009 15:28:32
fcs
Hallo Namensvetter,
eines der folgende Ereignismakros, dass die Eingabe in den beiden Zellen überwacht sollte es tun.
Das Makro muss du im VBA-Editor unter der Tabelle der Vorlagedatei einfügen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
'Speichern mit Anzeige des Speichern-Unter-Dialogs
Dim Pfad As String, strDatei As String
Pfad = "C:\Lokale Daten\Test" 'Start-Verzeichnis für Dateien
'Eingabezellen überwachen auf Änderungen
If Target.Address = "$D$7" Or Target.Address = "$B$13" Then
'D7 : Kundennummer
'B13: Reparaturnummer
'Prüfen, ob beiden Zellen mit Inhalt
If Not IsEmpty(Range("D7")) And Not IsEmpty(Range("B13")) Then
'Dateiname aus Zellinhalten erzeugen
strDatei = Range("D7") & "_" & Range("B13") & ".xls"
'Vollständiger Dateiname
strDatei = Pfad & "\" & Range("D7") & "_" & Range("B13") & ".xls"
'Datei speichern unter
Application.Dialogs(xlDialogSaveAs).Show strDatei
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
'Speichern in einem fest vorgegebenen Verzeichnis
Dim Pfad As String, strDatei As String
Pfad = "C:\Lokale Daten\Test" 'Verzeichnis für Dateien
'Eingabezellen überwachen auf Änderungen
If Target.Address = "$D$7" Or Target.Address = "$B$13" Then
'D7 : Kundennummer
'B13: Reparaturnummer
'Prüfen, ob beiden Zellen mit Inhalt
If Not IsEmpty(Range("D7")) And Not IsEmpty(Range("B13")) Then
'Dateiname aus Zellinhalten erzeugen
strDatei = Range("D7") & "_" & Range("B13") & ".xls"
'nach Bestätigung Datei speichern
If MsgBox(Prompt:="Datei jetzt speichern!" & vbLf & vbLf _
& "Verzeichnis: " & Pfad & vbLf _
& "Dateiname: " & strDatei, _
Buttons:=vbQuestion + vbOKCancel, _
Title:="Datei Speichern") = vbOK Then
'Vollständiger Dateiname
strDatei = Pfad & "\" & Range("D7") & "_" & Range("B13") & ".xls"
'Datei speichenr
ActiveWorkbook.SaveAs Filename:=strDatei, FileFormat:=xlWorkbook, addtomru:=True
End If
End If
End If
End Sub


Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige