Makro zur genauen Speicherortauswahl

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makro zur genauen Speicherortauswahl

Re: Makro zur genauen Speicherortauswahl

von Charly » Fr, 08.05.2009 14:15

Hallo Neodotcom!
Neodotcom hat geschrieben: also ich habe versucht ein Dok.close(0) vor exit sub einzufügen aber es funktioniert nicht..
Der Fehler kommt dadurch, dass die Variable Dok zu diesem Zeitpunkt nicht belegt ist. Du musst den Befehl Dok=ThisComponent früher machen.

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
Gruß
Charly
P.S. Ich habe die letzte If-Abfrage nach überschreiben oder nicht noch etwas verkürzt.

Re: Makro zur genauen Speicherortauswahl

von Neodotcom » Fr, 08.05.2009 13:32

Kann ich ihm eigentlich auch bei der Anweisung sagen, dass er das Dokument schließen soll

Code: Alles auswählen

Frage = MsgBox("Wollen Sie wirklich speichern?",4)
If Frage = 7 then
exit sub
end if
also ich habe versucht ein Dok.close(0) vor exit sub einzufügen aber es funktioniert nicht... :(

Gruß Neodotcom

Re: Makro zur genauen Speicherortauswahl

von Neodotcom » Fr, 08.05.2009 11:01

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

Re: Makro zur genauen Speicherortauswahl

von Charly » Fr, 08.05.2009 10:15

Hallo Neodotcom!

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
Gruß
Charly

Re: Makro zur genauen Speicherortauswahl

von Neodotcom » Fr, 08.05.2009 09:32

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

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
Gruß Neodotcom

Re: Makro zur genauen Speicherortauswahl

von Charly » Do, 30.04.2009 13:27

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

Code: Alles auswählen

Dok.close(0)
Füge das vor "End Sub" ein.

Gruß
Charly

Re: Makro zur genauen Speicherortauswahl

von Neodotcom » Do, 30.04.2009 12:41

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

Re: Makro zur genauen Speicherortauswahl

von Charly » Fr, 24.04.2009 11:19

Hallo Neodotcom!
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.
Dazu musst du beim Speichern einen Filter mitgeben.

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
Gruß
Charly

Re: Makro zur genauen Speicherortauswahl

von keksi1970 » Fr, 24.04.2009 11:15

Re: Makro zur genauen Speicherortauswahl

von Neodotcom » Fr, 24.04.2009 10:49

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.... :wink:

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

von Charly » Fr, 24.04.2009 10:17

Hallo Neodotcom!
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....
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.

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
Gruß
Charly

Re: Makro zur genauen Speicherortauswahl

von Neodotcom » Fr, 24.04.2009 09:31

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.... :D

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

Gruß Neodotcom

Re: Makro zur genauen Speicherortauswahl

von Charly » Fr, 24.04.2009 08:05

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.

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
Gruß
Charly

Makro zur genauen Speicherortauswahl

von Neodotcom » Do, 23.04.2009 10:52

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

Nach oben