Seite 1 von 1

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Do, 05.04.2018 16:21
von Jörg
Hallo,

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"


oComp = StarDesktop.CurrentComponent

' macro run from blank Desktop
If oComp.supportsService(_
	"com.sun.star.frame.StartModule" ) Then	
' exit without action
Exit Sub
End If
' macro run from Basic IDE
If oComp.supportsService(_
	"com.sun.star.script.BasicIDE" ) Then	
' exit without action
Exit Sub
End If

oDok = ThisComponent

antwort = MsgBox ("Sicherungskopie erstellen?" , 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if		
dim dummy()
   datei="E:\openoffice\Patientendatei.ods"
   dateiurl=converttourl(datei)
   odoc=thisComponent
   odoc.storeasurl(dateiurl,dummy())
If oDok.hasLocation() then
	
	' check if HELP window is in foreground
	If Instr( oDok.getLocation() , "vnd.sun.star.help:" ) then
		'		msgbox "HELP window in foreground"
	' exit without action
	Exit Sub
	End if

	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	   GlobalScope.BasicLibraries.loadLibrary( "Tools" ) 
	End If
	    xFile = "E:\openoffice\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods"
    sFileURL=converttourl( xFile )

	Dialoglibraries.Loadlibrary("Standard")
	MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
	MyDlg.setvisible (True)
	myctrl = myDlg.getControl("ProgressBar1")
	myctrl.model.backgroundcolor = RGB (255, 159, 70)
	myctrl.ForegroundColor = RGB (255, 0, 0)
	myctrl.model.ProgressValueMax=100
	for i= 0 to 100
	myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
	if i > 75 then
	myctrl.ForegroundColor = RGB (2, 159, 70)
	myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
	MyCtrl1=MyDlg.getControl("Label1")
	myctrl1.model.textcolor = RGB (2, 159, 70)
	end if
	myctrl. value = i
	wait 80
	next i
	mydlg.setvisible (false) 	
 

if FileExists( sFileURL ) then
		
		msgbox cDokGefunden & chr(13) &_
			sFileURL & chr(13) & _
			cNoCopyMade ,_
	64 ,sMakroName & sMakroVersion
else
	
		oDok.StoreToURL( sFileURL , Array() )
end if

Else
	' no filename by now - cannot do a thing
	msgbox cNoLoc & chr(13) &_
		cSaveAndRerun , 64 , sMakroName & sMakroVersion

End If

	oDialog2.endexecute()
antwort = MsgBox ("Sicherungskopie erfolgreich erstellt" & Chr(13) & "Dokument schließen?", 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if
oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub        
Mußt halt die Pfade entsprechend anpassen. Das Makro speichert mit Dateinamen und Uhrzeit.

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: So, 08.04.2018 12:01
von Rocko
Zyreon1 hat geschrieben: So, 08.04.2018 11:14leide habe ich noch immer keinen Zugriff auf mein hier Erstelltes Benutzerkonto...
Probiers noch einma!
Zyreon - Dein Passwort

Rocko, Moderator

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: So, 08.04.2018 13:42
von Zyreon
Hallo Rocko,

Super Danke kann mein Konto jetzt nutzen :D

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 08:56
von Jörg
Hallo,

Code: Alles auswählen

datei="C:\"Deine Calc-Datei".ods"
Wie heißt Dein Calc-Dokument?

Code: Alles auswählen

xFile = "C:\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods
Existiert bei Dir der Ordner Sicherungskopien?

Diese Makro entweder manuell über Schaltfläche ausführen oder über

Extras->Anpassen-> Dokument wird geschlossen

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 10:27
von Zyreon
Hallo Jörg,

Also ich erstelle heute Mittag mal den Datei-Pfad sorry dachte er erstellt den selber.

C:\Vorlage\Vorlage.ods <- Grunddatei

C:\Sicherungskopie\ <- hier erstellt er dann meine Dateien "YYYY-MM-DD-hh'mm'ss"

Kann ich das Makro automatisieren? sobald Vorlage.ods öffnet? (Sorry ich bin nicht so der Code-Crack :O)

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"


oComp = StarDesktop.CurrentComponent

' macro run from blank Desktop
If oComp.supportsService(_
	"com.sun.star.frame.StartModule" ) Then	
' exit without action
Exit Sub
End If
' macro run from Basic IDE
If oComp.supportsService(_
	"com.sun.star.script.BasicIDE" ) Then	
' exit without action
Exit Sub
End If

oDok = ThisComponent

antwort = MsgBox ("Sicherungskopie erstellen?" , 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if		
dim dummy()
   datei="C:\Vorlage\Vorlage.ods"
   dateiurl=converttourl(datei)
   odoc=thisComponent
   odoc.storeasurl(dateiurl,dummy())
If oDok.hasLocation() then
	
	' check if HELP window is in foreground
	If Instr( oDok.getLocation() , "vnd.sun.star.help:" ) then
		'		msgbox "HELP window in foreground"
	' exit without action
	Exit Sub
	End if

	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	   GlobalScope.BasicLibraries.loadLibrary( "Tools" ) 
	End If
	    xFile = "C:\Sicherungskopien\" & GetFileNameWithoutExtension(oDok.title,) & format(now(),"YYYY-MM-DD-hh'mm'ss") & ".ods"
    sFileURL=converttourl( xFile )

	Dialoglibraries.Loadlibrary("Standard")
	MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
	MyDlg.setvisible (True)
	myctrl = myDlg.getControl("ProgressBar1")
	myctrl.model.backgroundcolor = RGB (255, 159, 70)
	myctrl.ForegroundColor = RGB (255, 0, 0)
	myctrl.model.ProgressValueMax=100
	for i= 0 to 100
	myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
	if i > 75 then
	myctrl.ForegroundColor = RGB (2, 159, 70)
	myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
	MyCtrl1=MyDlg.getControl("Label1")
	myctrl1.model.textcolor = RGB (2, 159, 70)
	end if
	myctrl. value = i
	wait 80
	next i
	mydlg.setvisible (false) 	
 

if FileExists( sFileURL ) then
		
		msgbox cDokGefunden & chr(13) &_
			sFileURL & chr(13) & _
			cNoCopyMade ,_
	64 ,sMakroName & sMakroVersion
else
	
		oDok.StoreToURL( sFileURL , Array() )
end if

Else
	' no filename by now - cannot do a thing
	msgbox cNoLoc & chr(13) &_
		cSaveAndRerun , 64 , sMakroName & sMakroVersion

End If

	oDialog2.endexecute()
antwort = MsgBox ("Sicherungskopie erfolgreich erstellt" & Chr(13) & "Dokument schließen?", 52 , "Sicherung")
if antwort = 7 then
		Exit sub
end if
oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub 

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 12:09
von Jörg
Hallo,

Kann ich das Makro automatisieren? sobald Vorlage.ods öffnet? (Sorry ich bin nicht so der Code-Crack :O)

Eventuell unter EXtras-> Anpassen-> Dokument geöffnet.

Zyreon hat geschrieben: Mo, 09.04.2018 10:27 C:\Sicherungskopie\ <- hier erstellt er dann meine Dateien "YYYY-MM-DD-hh'mm'ss"
Ja, wenn DU einen entsprechenden Ordner in C: hast

Lösch mal noch diese Zeile.

Code: Alles auswählen

oDialog2.endexecute()

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 13:32
von Zyreon
Hallo Jörg,

ich habe die Zeile gelöscht und Verzeichnisse erstellt im Ordner Vorlage liegt meine Vorlage.ods, Makro gestartet.

leider habe ich jetzt wieder einen Fehler "Basic-Syntaxfehler. Erwartet: Sub."

Bild: https://picload.org/view/dawdwcgr/oo-makro.jpg.html

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 14:00
von Jörg
hallo,
kann ich jetzt nicht nachvollziehen.
Wie weit läuft das Makro durch?
Stell mal Deinen kompletten Code noch mal rein.


@Moderator
Vielleicht könnte das Thema ins Unterforum Makros verschoben werden?

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 14:09
von Stephan
@Moderator
Vielleicht könnte das Thema ins Unterforum Makros verschoben werden?
OK, getan.


Gruß
Stephan

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 14:15
von Jörg
Danke Stephan !!

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 14:44
von Toxitom
Hey,

der Code ist sehr schlecht geschrieben und sollte dringed überarbeitet ud bereinigt werden. Was direkt auffällt:

Code: Alles auswählen

... oDoc = ThisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(true)         

End sub  
End sub 
Doppeltes "end sub" am Ende - Syntaxfehler! Führt bei LibreOffice zu der Fehlermeldung "Sub erwartet".

Code: Alles auswählen

Sub makeDayCopy()
sMakroName = "makeDayCopy "
sMakroVersion = "2006-08-12 " 
sMakroVersion = "2010-08-05"
...
Doppelte Zuweisung eines Wertes zu einer (nicht definierten) Variablen:--> Unsinnig (die erste Zuweisung wird ja direkt wieder überschrieben), schlechter Stil, führt aber nicht zu einem Programmfehler. Verwirrt aber beim Lesen des Codes.

Dazu kommt: Wirres Einrücken und wenig Struktur.

Ich empfehle wirklich, den Code erst mal zu überarbeiten - vielleicht lösen sich dann ja die Probleme "wie von selbst";))

Viele Grüeß
Tom

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 09.04.2018 15:25
von Jörg
Hallo Toxitom,
hast sicher recht.
Aber bei mir (AOO 4.1.5) läuft er. Auch mit dem 2x End sub.
Hängt möglicherweise mit anderen Codes zusammen.
Würd Euch bitten, den Fragesteller weiter zu unterstützen.

Danke.

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Di, 10.04.2018 13:15
von Zyreon
Hallo,

Also ich habe openoffice 4.1.5 installiert aber nur mit Calc. Benötige ich dafür zusatz utility´s

ich bin um jede Hilfe dankbar, ich will hier nur keinen Streit :)

Re: Calc Datei mit Uhrzeit Speichern und Schließen

Verfasst: Mo, 16.04.2018 11:12
von Zyreon
Hallo Faol,

Vielen Dank ich habe erst heute gemerkt das bereits die zweite Seite angefangen wurde :P.

Ich teste das Makro heute noch.

die Zeilen ' sind nur Infozeilen und sollte ich bestimmt rauslöschen oder kann ich diese stehen lassen?


MfG Zy