Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

SaveAs BeforeClose Probleme
#1
Hallo Leute

Ich habe hier zwei Probleme.
1. Ich habe eine ".xltm" Datei mit 2 Arbeitsblättern("Formel1" & "Formel2"). Diese soll nach dem ausfüllen, wenn sie geschlossen wird, automatisch eine neue ".xlsm" Datei speichern mit dem Bezug auf Zelle "DatName". Allerdings sollte eine Pfadabfrage statt finden, da ich jetzt noch nicht weiß wo es hingespeichert werden soll.
Bisher habe ich diese zwei Codes gefunden:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If

End Sub

und
Code:
Application.Dialogs(xlDialogSaveAs).Show (Sheets(1).Range("A1").Value)

Aber irgendwie bekomm ich die nicht zusammen ans laufen.  Wie müsste der Code denn fertig aussehen?


Und mein zweites Problem:
Die Blätter "Formel1" und "Formel2" sind ziehmlich ähnlich.  Jetzt möchte ich das wenn z.B. bei Formel1 in
-B8 etwas eingegeben ist, das dieser Wert in Formel2 C8 angezeigt wird.
-C8 in Formel2 D8
...
usw.

Soweit so einfach. Das würde ich schon erreichen wenn ich die beiden Blätter mit einander verknüpfe.
Ich hätte allerdings gern das ich in Formel2 etwas in C8 eingeben kann das dann auch in Formel1 in B2 angezeigt wird (Es gibt halt kein Hauptblatt mit dem gearbeitet wird. Es kommt darauf an wer damit arbeitet. Daraus ergibt sich wer mit welchem Blatt arbeitet)

Ist sowas überhaupt möglich? Oder ist dieser "Zirkelbezug unumgänglich"?



Ich hoffe das war jetzt halbwegs verständlich xD

Gruß Dominic
Antworten Top
#2
Hallo Dominic,

zur Frage 1:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If ThisWorkbook.Saved = False Then
   Application.Dialogs(xlDialogSaveAs).Show Sheets(1).Range("A1").Value
 End If
End Sub
Gruß Uwe
Antworten Top
#3
Hallo Uwe

Danke für deine Mühe. Habs aber jetzt doch anders gemacht. Denke das es über einen CommandButton doch besser gelöst ist.
Hier der Code falls es jemanden Interessiert:

Code:
Private Sub CommandButton1_Click()
Dim fName As Variant
fName = Application.GetSaveAsFilename(InitialFileName:=[DatName2], FileFilter:="Excel Files (*.XLSM), *.XLSM", Title:="Save As")
If fName = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=fName
End Sub
Antworten Top
#4
Entschuldigung für den Doppelpost. Aber ich habe gerade noch einen Fehler entdeckt.

Es funktioniert eigentlich alles. Allerdings können die VB Projekte nicht mit gespeichert werden -.-
Ich denke es liegt an "FileFilter:="Excel Files (*.XLSM), *.XLSM", Title:="Save As")"

Was müsste da stehen damit Excel eine Makrofähige Datei erstellt?
Antworten Top
#5
Hallo,

versuchs mal so

Code:
Private Sub CommandButton1_Click()
Dim fName As Variant
fName = Application.GetSaveAsFilename(InitialFileName:=[DatName2], FileFilter:="Excel Files (*.XLSM), *.XLSM", Title:="Save As")
If fName = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=fName, FileFormat:=50
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#6
Hallo Stefan

Da kommt dann leider die Meldung:

Laufzeitfehler '1004'

Diese Erweiterung kann nicht mit dem ausgewählten Dateityp verwendet werden. Ändern Sie die Dateierweiterung im Textfeld 'Dateiname' oder wählen Sie einen anderen Dateityp aus, indem Sie die Auswahl unter 'Speichern unter' ändern.

Hab aber ein bisschen rumprobiert. Es muss  FileFormat:=52 heißen.  Jetzt gehts =) Vielen Dank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste