Discussion:
Speichername & -ort vorbelegen
(zu alt für eine Antwort)
Leif Erichson
2007-07-12 14:00:02 UTC
Permalink
hallo zusammen,

ich möchte gerne vorgeben, unter welchem namen eine datei gespeichert wird.
der speichername soll sich aus drei festen, unterschiedlichen zellen
innerhalb des excel sheets zusammen setzen (mit freizeichen dazwischen).

ferner soll der speicherort vorbelegt und das dateiformat auf .csv
umgestellt werden.

optimal wäre es, wenn das alles über einen makro button funktioniert und
danach das excel sheet geschlossen wird ...

habt ihr eine idee wie man sowas lösen kann ?

schon vorab vielen dank für eure hilfe !!!

gruß

leif
stefan onken
2007-07-13 07:10:33 UTC
Permalink
On 12 Jul., 16:00, Leif Erichson <Leif
Post by Leif Erichson
hallo zusammen,
ich möchte gerne vorgeben, unter welchem namen eine datei gespeichert wird.
der speichername soll sich aus drei festen, unterschiedlichen zellen
innerhalb des excel sheets zusammen setzen (mit freizeichen dazwischen).
ferner soll der speicherort vorbelegt und das dateiformat auf .csv
umgestellt werden.
optimal wäre es, wenn das alles über einen makro button funktioniert und
danach das excel sheet geschlossen wird ...
habt ihr eine idee wie man sowas lösen kann ?
schon vorab vielen dank für eure hilfe !!!
gruß
leif
hallo leif,
der Code dafür sieht zB so aus (kopiere den in ein Standardmodul im
VBA-Editor):

Sub speichern()
dateiname = Range("A1") & Range("A2") & Range("A3")
'ChDrive "D:\"
'ChDir "D:\test"
x = Application.GetSaveAsFilename(dateiname, _
fileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs x
ActiveWorkbook.Close
End Sub

ChDrive und/oder ChDir brauchst du, um den Pfad einzustellen, insofern
dieser nicht bereits in den 3 Zellen enthalten ist.
Die 3 Zellen sind hier A1,A2,A3, das musst du an deine Bedingungen
anpassen.
Dann erstellst du einen button und verknüpfst diesen mit dem Makro, es
wäre aber auch möglich, automatisch beim speichern dieses Makro
ablaufen zu lassen (Ereignis Workbook_BeforeSave). Melde dich, wenn du
nicht weisst, wie das geht.

Gruß
stefan
Leif Erichson
2007-07-22 14:42:00 UTC
Permalink
Post by stefan onken
On 12 Jul., 16:00, Leif Erichson <Leif
Post by Leif Erichson
hallo zusammen,
ich möchte gerne vorgeben, unter welchem namen eine datei gespeichert wird.
der speichername soll sich aus drei festen, unterschiedlichen zellen
innerhalb des excel sheets zusammen setzen (mit freizeichen dazwischen).
ferner soll der speicherort vorbelegt und das dateiformat auf .csv
umgestellt werden.
optimal wäre es, wenn das alles über einen makro button funktioniert und
danach das excel sheet geschlossen wird ...
habt ihr eine idee wie man sowas lösen kann ?
schon vorab vielen dank für eure hilfe !!!
gruß
leif
hallo leif,
der Code dafür sieht zB so aus (kopiere den in ein Standardmodul im
Sub speichern()
dateiname = Range("A1") & Range("A2") & Range("A3")
'ChDrive "D:\"
'ChDir "D:\test"
x = Application.GetSaveAsFilename(dateiname, _
fileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs x
ActiveWorkbook.Close
End Sub
ChDrive und/oder ChDir brauchst du, um den Pfad einzustellen, insofern
dieser nicht bereits in den 3 Zellen enthalten ist.
Die 3 Zellen sind hier A1,A2,A3, das musst du an deine Bedingungen
anpassen.
Dann erstellst du einen button und verknüpfst diesen mit dem Makro, es
wäre aber auch möglich, automatisch beim speichern dieses Makro
ablaufen zu lassen (Ereignis Workbook_BeforeSave). Melde dich, wenn du
nicht weisst, wie das geht.
Gruß
stefan
hallo stefan,

zunächst vielen dank für deine hilfe !!!

folgendes problem ist aufgetreten: das makro speichert die datei nicht unter
dem dateinamen der drei zellen, sondern speichert die datei drei mal, jeweils
einmal unter dem namen jeder zelle ... wie bekomme ich es denn hin, dass der
datei nur einmal gespeichert wird und der dateiname quasi die verkettung der
drei zellen ist? der verketten befehl geht in vb leider nicht ;-)

und was muss ich machen um das makro beim speichern automatisch ablaufen zu
lassen ?

schon vorab danke für die hilfe!

gruß

leif
R***@gmx.de
2007-07-22 21:03:39 UTC
Permalink
On Sun, 22 Jul 2007 07:42:00 -0700, Leif Erichson
Post by stefan onken
On 12 Jul., 16:00, Leif Erichson <Leif
Post by Leif Erichson
hallo zusammen,
ich möchte gerne vorgeben, unter welchem namen eine datei gespeichert wird.
der speichername soll sich aus drei festen, unterschiedlichen zellen
innerhalb des excel sheets zusammen setzen (mit freizeichen dazwischen).
ferner soll der speicherort vorbelegt und das dateiformat auf .csv
umgestellt werden.
makro = d.w.s.
stefan onken
2007-07-23 08:27:16 UTC
Permalink
hallo leif,
Post by Leif Erichson
Post by stefan onken
Sub speichern()
dateiname = Range("A1") & Range("A2") & Range("A3")
'ChDrive "D:\"
'ChDir "D:\test"
x = Application.GetSaveAsFilename(dateiname, _
fileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs x
ActiveWorkbook.Close
End Sub
folgendes problem ist aufgetreten: das makro speichert die datei nicht unter
dem dateinamen der drei zellen, sondern speichert die datei drei mal, jeweils
einmal unter dem namen jeder zelle ... wie bekomme ich es denn hin, dass der
datei nur einmal gespeichert wird und der dateiname quasi die verkettung der
drei zellen ist? der verketten befehl geht in vb leider nicht ;-)
das Verkette geht in VBA mit dem &, daher im Makro die Zeile
dateiname = Range("A1") & Range("A2") & Range("A3")
wenn du als Dateinamen zB D:\test\datei.csv voreinstellen willst,
müsste in A1 zB D:\ stehen, in A2 dann test\ und in A3 datei. Wenn du
die Schrägstriche \ nicht in den Zellen hast, musst du sie im Code
einfügen. Das wäre dann
dateiname = Range("A1") & "\" & Range("A2") & "\" & Range("A3")

Was steht in deinen Zellen? Ich kann mir das 3x speichern im Moment
nicht erklären.
Post by Leif Erichson
und was muss ich machen um das makro beim speichern automatisch ablaufen zu
lassen ?
da kannst du das Ereignis Workbook_BeforeSave nutzen. Im VBA-Editor
findest du links oben im Projekt-Explorer den Eintrag
DieseArbeitsmappe. Doppelklick drauf, in das Codefenster musss dann
dieser Code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
dateiname = Range("A1") & Range("A2") & Range("A3")
'ChDrive "D:\"
'ChDir "D:\test"
x = Application.GetSaveAsFilename(dateiname, _
fileFilter:="CSV (*.csv), *.csv")
Cancel = True
Application.EnableEvents = False
ActiveWorkbook.SaveAs x
Application.EnableEvents = True
ActiveWorkbook.Close
End Sub

Gruß
stefan
Post by Leif Erichson
schon vorab danke für die hilfe!
gruß
leif- Zitierten Text ausblenden -
- Zitierten Text anzeigen -
Leif Erichson
2007-07-30 14:46:01 UTC
Permalink
hallo stefan,

jetzt hat es funktioniert - super, vielen dank !!!

gruß

leif
Post by stefan onken
hallo leif,
Post by Leif Erichson
Post by stefan onken
Sub speichern()
dateiname = Range("A1") & Range("A2") & Range("A3")
'ChDrive "D:\"
'ChDir "D:\test"
x = Application.GetSaveAsFilename(dateiname, _
fileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs x
ActiveWorkbook.Close
End Sub
folgendes problem ist aufgetreten: das makro speichert die datei nicht unter
dem dateinamen der drei zellen, sondern speichert die datei drei mal, jeweils
einmal unter dem namen jeder zelle ... wie bekomme ich es denn hin, dass der
datei nur einmal gespeichert wird und der dateiname quasi die verkettung der
drei zellen ist? der verketten befehl geht in vb leider nicht ;-)
das Verkette geht in VBA mit dem &, daher im Makro die Zeile
dateiname = Range("A1") & Range("A2") & Range("A3")
wenn du als Dateinamen zB D:\test\datei.csv voreinstellen willst,
müsste in A1 zB D:\ stehen, in A2 dann test\ und in A3 datei. Wenn du
die Schrägstriche \ nicht in den Zellen hast, musst du sie im Code
einfügen. Das wäre dann
dateiname = Range("A1") & "\" & Range("A2") & "\" & Range("A3")
Was steht in deinen Zellen? Ich kann mir das 3x speichern im Moment
nicht erklären.
Post by Leif Erichson
und was muss ich machen um das makro beim speichern automatisch ablaufen zu
lassen ?
da kannst du das Ereignis Workbook_BeforeSave nutzen. Im VBA-Editor
findest du links oben im Projekt-Explorer den Eintrag
DieseArbeitsmappe. Doppelklick drauf, in das Codefenster musss dann
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
dateiname = Range("A1") & Range("A2") & Range("A3")
'ChDrive "D:\"
'ChDir "D:\test"
x = Application.GetSaveAsFilename(dateiname, _
fileFilter:="CSV (*.csv), *.csv")
Cancel = True
Application.EnableEvents = False
ActiveWorkbook.SaveAs x
Application.EnableEvents = True
ActiveWorkbook.Close
End Sub
Gruß
stefan
Post by Leif Erichson
schon vorab danke für die hilfe!
gruß
leif- Zitierten Text ausblenden -
- Zitierten Text anzeigen -
Loading...