Makro zur genauen Speicherortauswahl
Moderator: Moderatoren
Makro zur genauen Speicherortauswahl
Hallo zusammen,
ich habe ein Problem. Ich möchte gerne durch einen Button / Makro dem Benutzer nicht die Möglichkeit geben, einen Speicherort auszuwählen sondern ihm vorzuschreiben wo er zu speichern hat.
Ich bin jetzt so weit das ich durch die "Makro aufzeichnung" sagen kann, dass er das Dokument unter dem Namen "test" irgend wo in einen Ordner speichern soll und das funktioniert auch. Nur wenn ich jetzt wieder darauf drücke dann überschreibt er mir das "test" Dokument. Ist ja auch Logisch da er ja es immer wieder unter dem Namen "test" speichern soll
Wie schaffe ich es ihm zusagen das er also jedesmal einen neuen namen (meinet wegen 1,2,3,4 hinter "test") für das Dokument anlegt.
Ich hoffe ich konnte es einigermaßen gut erklären und hoffe ihr könnt mir helfen.
Danke schonmal vorab.
Gruß Neo
ich habe ein Problem. Ich möchte gerne durch einen Button / Makro dem Benutzer nicht die Möglichkeit geben, einen Speicherort auszuwählen sondern ihm vorzuschreiben wo er zu speichern hat.
Ich bin jetzt so weit das ich durch die "Makro aufzeichnung" sagen kann, dass er das Dokument unter dem Namen "test" irgend wo in einen Ordner speichern soll und das funktioniert auch. Nur wenn ich jetzt wieder darauf drücke dann überschreibt er mir das "test" Dokument. Ist ja auch Logisch da er ja es immer wieder unter dem Namen "test" speichern soll
Wie schaffe ich es ihm zusagen das er also jedesmal einen neuen namen (meinet wegen 1,2,3,4 hinter "test") für das Dokument anlegt.
Ich hoffe ich konnte es einigermaßen gut erklären und hoffe ihr könnt mir helfen.
Danke schonmal vorab.
Gruß Neo
Re: Makro zur genauen Speicherortauswahl
Hallo Neodotcom!
Ich habe dir mal ein Beispiel programmiert, wie so etwas auschauen könnte. Es ist für ein Windows-System und für ein Calc-Dokument gedacht.
Gruß
Charly
Ich habe dir mal ein Beispiel programmiert, wie so etwas auschauen könnte. Es ist für ein Windows-System und für ein Calc-Dokument gedacht.
Code: Alles auswählen
Sub Speichern()
Dim NoArg()
Dok = ThisComponent
Pfad = "C:\Testordner\"
Datei = "Test"
DateiNeu = Datei
Art = ".ods"
Fertig = 0
Version = 0
Do
DatName = Pfad & DateiNeu & Art
DatName = ConvertToUrl(DatName)
If Not FileExists(DatName) then
Dok.StoreAsUrl(DatName, noArg())
Fertig = 1
end if
Version = Version + 1
DateiNeu = Datei & Cstr(Version)
Loop while fertig = 0
End Sub
Charly
Re: Makro zur genauen Speicherortauswahl
Hallo Charly,
das ist ja super.. das läuft richtig gut....
DANKE vielmals
sag mal geht das auch wenn ich dem Benutzer noch gestatten will das er seinen eigenen Dokumentennamen eingibt.. aber ich bestimmt das es in einem testordner landet.. oder wäre das zu aufwändig....
falls nicht trotzdem nochmal danke... das nenn ich mal schnelle Hilfe!!
Gruß Neodotcom
das ist ja super.. das läuft richtig gut....

sag mal geht das auch wenn ich dem Benutzer noch gestatten will das er seinen eigenen Dokumentennamen eingibt.. aber ich bestimmt das es in einem testordner landet.. oder wäre das zu aufwändig....

falls nicht trotzdem nochmal danke... das nenn ich mal schnelle Hilfe!!

Gruß Neodotcom
Re: Makro zur genauen Speicherortauswahl
Hallo Neodotcom!
Gruß
Charly
Das ist nicht aufwendig. Es muss nur ein Abfrage-Befehl eingefügt werden. Darin kann sogar ein Name wie z.B. Test vorgeschlagen werden, der entweder akzeptiert wird oder überschrieben werden kann.Neodotcom hat geschrieben: sag mal geht das auch wenn ich dem Benutzer noch gestatten will das er seinen eigenen Dokumentennamen eingibt.. aber ich bestimmt das es in einem testordner landet.. oder wäre das zu aufwändig....
Code: Alles auswählen
Sub Speichern()
Dim NoArg()
Dok = ThisComponent
Pfad = "C:\Testordner\"
Datei = "Test"
Art = ".ods"
Datei = Inputbox("Geben Sie bitte einen Dateinamen ein","Datei speichern",Datei)
DateiNeu = Datei
Fertig = 0
Version = 0
Do
DatName = Pfad & DateiNeu & Art
DatName = ConvertToUrl(DatName)
If Not FileExists(DatName) then
Dok.StoreAsUrl(DatName, noArg())
Fertig = 1
end if
Version = Version + 1
DateiNeu = Datei & Cstr(Version)
Loop while fertig = 0
End Sub
Charly
Re: Makro zur genauen Speicherortauswahl
Hallo Charly,
wunderbar kann ich da nur sagen... PERFEKT.....
also ich glaub so eine schnelle und kompetente hilfe hab ich noch nirgends in einem Forum bekommen..
bin echt begeistert.. und werd euch auch weiterempfehlen...
DANKE
eine letzte sache hätt ich da noch falls das nciht zu frech ist....
kannst du auch aus dem .odt ein .doc machen... mit einem einfachen umschreiben geht es leider nicht.. das hab ich schon probiert....
DANKE NOCHMAL
GRUß Neodotcom
wunderbar kann ich da nur sagen... PERFEKT.....
also ich glaub so eine schnelle und kompetente hilfe hab ich noch nirgends in einem Forum bekommen..


eine letzte sache hätt ich da noch falls das nciht zu frech ist....

kannst du auch aus dem .odt ein .doc machen... mit einem einfachen umschreiben geht es leider nicht.. das hab ich schon probiert....

DANKE NOCHMAL
GRUß Neodotcom
Re: Makro zur genauen Speicherortauswahl
Hallo Neodotcom!
Gruß
Charly
Dazu musst du beim Speichern einen Filter mitgeben.Neodotcom hat geschrieben: kannst du auch aus dem .odt ein .doc machen... mit einem einfachen umschreiben geht es leider nicht.. das hab ich schon probiert.
Code: Alles auswählen
Sub Speichern()
Dim Arg(0) as New com.sun.star.beans.PropertyValue
Arg(0).Name="FilterName"
Arg(0).Value = "MS Word 97"
Dok = ThisComponent
Pfad = "C:\Testordner\"
Datei = "Test"
Art = ".doc"
Datei = Inputbox("Geben Sie bitte einen Dateinamen ein","Datei speichern",Datei)
DateiNeu = Datei
Fertig = 0
Version = 0
Do
DatName = Pfad & DateiNeu & Art
DatName = ConvertToUrl(DatName)
If Not FileExists(DatName) then
Dok.StoreAsUrl(DatName, Arg())
Fertig = 1
end if
Version = Version + 1
DateiNeu = Datei & Cstr(Version)
Loop while fertig = 0
End Sub
Charly
Re: Makro zur genauen Speicherortauswahl
Hallo zusammen,
ich hab alles so gemacht und es funktioniert wunderbar. Echt klasse!! DANKE.. Ich hab mal noch ne Frage! Ich habe ja versucht dadurch zu umgehen, das man einen Speicherort auswählen kann, sondern ich bestimme wo es hingespeichert wird. Das Problem ist nur das ich eine Kleinigkeit übersehen habe, unswar das Kreuz zum schließen des Fensters. Da wird man ja nochmal gefragt ob man Speichern will. und dann kann der Benutzer ja wieder auswählen.
Gibt es eine Möglichkeit diesen Dialog zu verändern. oder gar zu sagen. "wenn ich das Kreuz betätige dann bitte gleich schließen ohne zu fragen" die andern Symbole und Menu einträge konnte ich schon verstecken, sodass nur noch mein Makro zu betätigen ist. Aber leider nicht das mit dem Kreuz.
Hab ihr da vielleicht noch eine Idee.
Danke
Gruß Neo
ich hab alles so gemacht und es funktioniert wunderbar. Echt klasse!! DANKE.. Ich hab mal noch ne Frage! Ich habe ja versucht dadurch zu umgehen, das man einen Speicherort auswählen kann, sondern ich bestimme wo es hingespeichert wird. Das Problem ist nur das ich eine Kleinigkeit übersehen habe, unswar das Kreuz zum schließen des Fensters. Da wird man ja nochmal gefragt ob man Speichern will. und dann kann der Benutzer ja wieder auswählen.

Hab ihr da vielleicht noch eine Idee.
Danke
Gruß Neo
Re: Makro zur genauen Speicherortauswahl
Hallo Neodotcom!
Du kannst mit dem Makro auch das Dokument schließen.
Die Variable für das Dokument ist in unserem Beispiel "Dok"
Der Befehl für das schließen ist dann
Füge das vor "End Sub" ein.
Gruß
Charly
Du kannst mit dem Makro auch das Dokument schließen.
Die Variable für das Dokument ist in unserem Beispiel "Dok"
Der Befehl für das schließen ist dann
Code: Alles auswählen
Dok.close(0)
Gruß
Charly
Re: Makro zur genauen Speicherortauswahl
Hallo zusammen,
ich hab mir mal folgendes zusammen gebastelt, aber es will nicht so richtig funktionieren. Ich glaube ich habe eine Schleife zu viel oder eine Anweisung falsch. Ich würde auch gerne den Benutzer vorher Fragen wollen bevor sich das Feld öffnet ob er überhaupt speichern will? Habt ihr da ne Idee... ICH DANKE EUCH SCHONMAL VORAB
Gruß Neodotcom
ich hab mir mal folgendes zusammen gebastelt, aber es will nicht so richtig funktionieren. Ich glaube ich habe eine Schleife zu viel oder eine Anweisung falsch. Ich würde auch gerne den Benutzer vorher Fragen wollen bevor sich das Feld öffnet ob er überhaupt speichern will? Habt ihr da ne Idee... ICH DANKE EUCH SCHONMAL VORAB
Code: Alles auswählen
REM ***** BASIC *****
Sub Speichern()
Dim Arg(0) as New com.sun.star.beans.PropertyValue
Dim Speicher
Arg(0).Name="FilterName"
Arg(0).Value = "MS Word 97"
Dok = ThisComponent
Pfad = "J:\"
Datei = "Dokument"
Art = ".doc"
Datei = Inputbox("Geben Sie bitte einen Dateinamen ein","Datei speichern",Datei)
DateiNeu = Datei
Fertig = 0
Version = 0
DatName = Pfad & DateiNeu & Art
DatName = ConvertToUrl(DatName)
If Not FileExists(DatName) then
Dok.StoreAsUrl(DatName, Arg())
Fertig = 1
end if
If FileExists( DatName ) Then
Speicher = Inputbox("Überschreiben Ja/Nein")
If ucase(Speicher) = "JA" then
Dok.StoreAsUrl(DatName, Arg() )
msgbox "Ihre Datei wurde gespeichert"
exit sub
else
MSGbox "Datei nicht gespeichert"
exit sub
end if
end if
Dok.StoreAsUrl(DatName, Arg() )
msgbox "Ihre Datei wurde gespeichert"
exit sub
End Sub
Re: Makro zur genauen Speicherortauswahl
Hallo Neodotcom!
Versuche mal folgenden Code:
Gruß
Charly
Versuche mal folgenden Code:
Code: Alles auswählen
Sub Speichern()
Dim Arg(0) as New com.sun.star.beans.PropertyValue
Dim Speicher
Arg(0).Name="FilterName"
Arg(0).Value = "MS Word 97"
Frage = MsgBox("Wollen Sie wirklich speichern?",4)
If Frage = 7 then
exit sub
end if
Dok = ThisComponent
Pfad = "J:\"
Datei = "Dokument"
Art = ".doc"
Datei = Inputbox("Geben Sie bitte einen Dateinamen ein","Datei speichern",Datei)
DateiNeu = Datei
DatName = Pfad & DateiNeu & Art
DatName = ConvertToUrl(DatName)
If FileExists( DatName ) Then
Speicher = MSGBox("Die Datei existiert bereits. Soll Sie überschrieben werden?",4)
If Speicher = 6 then
Dok.StoreAsUrl(DatName, Arg() )
msgbox "Ihre Datei wurde gespeichert"
exit sub
else
MSGbox "Datei nicht gespeichert"
exit sub
end if
end if
Dok.StoreAsUrl(DatName, Arg() )
msgbox "Ihre Datei wurde gespeichert"
End Sub
Charly
Re: Makro zur genauen Speicherortauswahl
DANKE...
jetzt weiß ich auch was ich falsch gemacht habe.. ich hatte noch ein anderes makro was sich mit dem nicht vertragen hat....
Super Sache.... DANKE SCHÖN für die schnelle Hilfe... funktioniert sehr gut
wäre ich glaub ich nie drauf gekommen
Gruß Neodotcom
jetzt weiß ich auch was ich falsch gemacht habe.. ich hatte noch ein anderes makro was sich mit dem nicht vertragen hat....

Super Sache.... DANKE SCHÖN für die schnelle Hilfe... funktioniert sehr gut

Gruß Neodotcom
Re: Makro zur genauen Speicherortauswahl
Kann ich ihm eigentlich auch bei der Anweisung sagen, dass er das Dokument schließen soll
also ich habe versucht ein Dok.close(0) vor exit sub einzufügen aber es funktioniert nicht...
Gruß Neodotcom
Code: Alles auswählen
Frage = MsgBox("Wollen Sie wirklich speichern?",4)
If Frage = 7 then
exit sub
end if

Gruß Neodotcom
Re: Makro zur genauen Speicherortauswahl
Hallo Neodotcom!
Gruß
Charly
P.S. Ich habe die letzte If-Abfrage nach überschreiben oder nicht noch etwas verkürzt.
Der Fehler kommt dadurch, dass die Variable Dok zu diesem Zeitpunkt nicht belegt ist. Du musst den Befehl Dok=ThisComponent früher machen.Neodotcom hat geschrieben: also ich habe versucht ein Dok.close(0) vor exit sub einzufügen aber es funktioniert nicht..
Code: Alles auswählen
Sub Speichern()
Dim Arg(0) as New com.sun.star.beans.PropertyValue
Dim Speicher
Arg(0).Name="FilterName"
Arg(0).Value = "MS Word 97"
Dok = ThisComponent
Frage = MsgBox("Wollen Sie wirklich speichern?",4)
If Frage = 7 then
Dok.close(0)
exit sub
end if
Pfad = "J:\"
Datei = "Dokument"
Art = ".doc"
Datei = Inputbox("Geben Sie bitte einen Dateinamen ein","Datei speichern",Datei)
DateiNeu = Datei
DatName = Pfad & DateiNeu & Art
DatName = ConvertToUrl(DatName)
If FileExists( DatName ) Then
Speicher = MSGBox("Die Datei existiert bereits. Soll Sie überschrieben werden?",4)
If Speicher = 7 then
MSGbox "Datei nicht gespeichert"
exit sub
end if
end if
Dok.StoreAsUrl(DatName, Arg() )
msgbox "Ihre Datei wurde gespeichert"
End Sub
Charly
P.S. Ich habe die letzte If-Abfrage nach überschreiben oder nicht noch etwas verkürzt.