Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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
Inhaltsverzeichnis

Automatisch speichern

Automatisch speichern
04.05.2021 14:03:43
Peter
Hallo an alle Excel Profis,
Da ich kaum Erfahrung mit vba habe bitte ich euch um Hilfe folgenden Problems
Ich habe ein Arbeitsmappe Rezepte mit der Tabelle Rezeptblatt erstellt in der Zelle D4 wird der Rezeptname eingetragen.
Nach Verlassen des Feld D4 soll die Arbeitsmappe unten den Namen aus Zelle D4 im Ordner Rezepte gespeichert werden und danach auf Zelle C10 springen.
Unter folgendem Link die Arbeitsmappe
https://www.herber.de/bbs/user/145987.xlsm
Danke im Voraus
Peter M

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch speichern
04.05.2021 15:31:56
Pierre
Hallo Peter,
ganz unelegant wäre es z. B. so möglich:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D4")  "" Then
ChDir "C:\Users\Desktop\Rezepte"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("D4") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Else: Exit Sub
End If
End Sub
Die fett markierten Teile musst du noch anpassen, also den genauen Speicherpfad und das gewünschte Dateiformat
Um vorzugeben, dass zuerst Zelle D4 und danach C10 befüllt werden müssen, könntest du folgendes verwenden:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim zelle As Range
For Each zelle In Range("C10, D4")
If IsEmpty(zelle) Then
Application.EnableEvents = False
zelle.Select
Application.EnableEvents = True
End If
Next zelle
End Sub
Gruß Pierre
Anzeige
AW: die benannte Formel: _Umgeb ...
04.05.2021 16:10:42
Peter
Hallo Pierre,
Danke für deine schnelle Antwort.
werde heute Abend es ausprobieren.
Muß ich das Makro in ein Modul oder in die Tabelle schreiben?
danke für dein Bemühen.
Peter M
AW: die benannte Formel: _Umgeb ...
04.05.2021 16:18:46
Pierre
Hallo Peter,
die beiden Codes kannst du untereinander schreiben in das Codefenster des betreffenden Tabellenblattes.
Gruß Pierre
AW: die benannte Formel: _Umgeb ...
04.05.2021 17:00:15
Peter
Hallo Pierre,
Danke für deine Antwort,
Da ich in VBA kaum Erfahrung habe, wie kann ich der Code ändern, dass es als .xlsm Datei gespeichert wird.
habe den Type=xlTypePDF auf xlTypeXLSM
und „ .pdf auf .xlsm geädert
Die Datei wird aber als PDF gespeichert!
Was mache ich Falsch?
Und dann in der neu gespeicherten Datei zB. Zwiebelrostbraten.xlsm im Blatt Rezeptblatt Zelle C 10 weiter machen kann.
Danke für dein Bemühen
Peter M
Anzeige
AW: die benannte Formel: _Umgeb ...
04.05.2021 17:19:33
Daniel
hallo Peter
kennst du den Makro-Recorder?
wenn ja, dann speichere die Datei mit Speichern unter mal als PDF und mal als XLSX.
schaue dir dann die aufgezeichneten Makros an.
Dann siehst du, wie man die jeweilige Menüfunktion in VBA programmieren muss.
Du solltest auch erkennen, dass das das Speichern als PDF und als XSLX ganz unterschiedlich programmiert wird, auch wenn es im gleichen Excelmenü ausgeführt wird.
Gruß Daniel
AW: die benannte Formel: _Umgeb ...
04.05.2021 18:20:26
Peter
Hall Pierre,
ja habe gesehen, dass es völlig anders ist.
Komme aber nicht weiter. Weiß leider nicht wie ich es bewerkstelligen kann mit dem auslesen der Zelle D4 und die Übergabe zum Speichern.
Wenn ich die Rezeptdatei neu speichern will wird sie immer unter den gleichen Namen gespeichert als beim ersten mal.
könnteset du mir dabei weiterhelfen
Besten Dank
Peter M
Anzeige
AW: die benannte Formel: _Umgeb ...
05.05.2021 10:50:44
Pierre
Hallo Peter,
sorry, ich war gestern nicht mehr online.
Die Datei wird unter dem in D4 eingegebenen Namen gespeichert, C10 bleibt erst einmal leer.
Natürlich wird bei jeder einzelnen Änderung die Datei neu gespeichert und du wirst jedes Mal gefragt, ob die Datei überschrieben werden soll.
Das ist schon etwas nervig und wahrscheinlich auch nicht unbedingt gewünscht.
Folgenden Code unter dem betreffenden Tabellenblatt einfügen:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
If Range("D4")  "" Then
ChDir "C:\Users\Desktop\Rezepte"
ThisWorkbook.SaveAs Filename:= _
Range("D4") & ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled
Else: Exit Sub
End If
Application.DisplayAlerts = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim zelle As Range
For Each zelle In Range("C10, D4")
If IsEmpty(zelle) Then
Application.EnableEvents = False
zelle.Select
Application.EnableEvents = True
End If
Next zelle
End Sub
So wird zwar weiterhin jede einzelne Änderung gespeichert, aber du musst nicht ständig das Überschreiben der Datei bestätigen.
Gruß Pierre
PS: Schau dir mal den Block an, in dem die Speicherung abläuft und vergleiche mit meinem ersten geposteten Code.
Das sieht (wie Daniel schon schrieb) ziemlich unterschiedlich aus.
Ich hätte natürlich mal fragen können, wie du es abgespeichert haben willst ;)
Anzeige
AW: die benannte Formel: _Umgeb ...
05.05.2021 11:18:33
Peter
Hallo Pierre,
bin unterwegs werde heute Abend es versuchen.
Danke für deine schnelle Antwort und vorerst besten Dank
Peter M
AW: die benannte Formel: _Umgeb ...
05.05.2021 20:14:39
Peter
Hallo Pierre,
Tausend Dank für den Code.
Genau das was ich wollte.
Gruß
PeterM
Bitteschön (owT)
06.05.2021 07:42:47
Pierre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige