Seite 1 von 2
COMatePlus speichert nicht
Verfasst: 24.10.2012 19:27
von Joel
Hey,
ich hatte eigentlich vor meine Excel Liste zu speichern ohne das der User eingreifen muss. Also wenn er das Fenster schließt weiß Excel schon, wo es sich hinspeichern muss. Leider speichert Excel nicht die Datei, hier der Code:
Code: Alles auswählen
Excel_Temp$ = "C.\users\joel\desktop\testexcel.xls"
XIncludeFile "COMatePLUS.pbi"
date$ = FormatDate("%dd/%mm/%yyyy", Date())
Define.COMateObject ExcelObject, WorkBook
ExcelObject = COMate_CreateObject("Excel.Application")
If ExcelObject
If ExcelObject\SetProperty("Visible = #True") = #S_OK
WorkBook = ExcelObject\GetObjectProperty("Workbooks\Add")
If WorkBook
ExcelObject\SetProperty("Cells(1,1) = 'Datum:'")
ExcelObject\SetProperty("Cells(1,2) = '" + date$ + "' AS DATE")
ExcelObject\SetProperty("Application\DisplayAlerts = #False")
Workbook\Invoke("SaveAs('Excel_Temp$')")
ExcelObject\SetProperty("Application\DisplayAlerts = #True")
WorkBook\Release()
EndIf
EndIf
ExcelObject\Release()
Else
MessageRequester("Excel Datei erstellen", "Couldn't create the application object!")
EndIf
Mit dieser Zeile setzte ich ja den Speicherort fest:
Leider wird trotzdem nichts gespeichert.
Re: COMatePlus speichert nicht
Verfasst: 24.10.2012 20:13
von Kiffi
also so langsam müsstest Du das mit der Stringverknüpfung
mal verstanden haben...
Re: COMatePlus speichert nicht
Verfasst: 24.10.2012 20:25
von Waldixxl
Hallo Joel
und das
sollte vermutlich
heißen
Walter
Re: COMatePlus speichert nicht
Verfasst: 10.11.2012 14:43
von Joel
Das funktioniert schon ganz gut. Bei meinen Test ist mir aufgefallen: Excel fragt zwar nicht nach speichern oder nicht wenn man nichts ändert, aber wenn ich was änder in der Excel Liste und dann das Fenster schließe fragt er ich ob ich speichern will. Ich möchte das Excel ohne Nachfrage das abspeichert.
Hier nochmal der Code, was passiert und was eigentlich passieren soll:
Code: Alles auswählen
Excel_Temp$ = "C:\users\joel\desktop\excelsavetest.xls"
XIncludeFile "COMatePLUS.pbi"
IncludeFile "ExcelConstants.pbi"
date$ = FormatDate("%dd/%mm/%yyyy", Date())
Define.COMateObject ExcelObject, WorkBook
ExcelObject = COMate_CreateObject("Excel.Application")
If ExcelObject
If ExcelObject\SetProperty("Visible = #True") = #S_OK
WorkBook = ExcelObject\GetObjectProperty("Workbooks\Add")
If WorkBook
ExcelObject\SetProperty("Cells(1,1) = 'Datum:'")
ExcelObject\SetProperty("Cells(1,2) = '" + date$ + "' AS DATE")
ExcelObject\SetProperty("Cells(3,1) = 'test:'")
ExcelObject\SetProperty("Application\DisplayAlerts = #False")
FFormat=#xlNormal
Workbook\Invoke("SaveAs('" + Excel_Temp$ + "'," + Str(FFormat) + ")")
ExcelObject\SetProperty("Application\DisplayAlerts = #True")
WorkBook\Release()
EndIf
EndIf
ExcelObject\Release()
Else
MessageRequester("Excel Datei erstellen", "Couldn't create the application object!")
EndIf
--Was passiert---
1. Code ausführen
2. Was in Liste ändern
3. x klicken
4. Jetzt kommt eine Nachfrage, die eigentlich nicht kommen sollte. Excel weiß schon wo es hin speichern soll. Wenn ich speichern klicke, klappt auch alles. Aber ich möchte das gespeichert wird ohne Nachfrage!
Re: COMatePlus speichert nicht
Verfasst: 10.11.2012 15:15
von Kiffi
wieso stellst Du denn DisplayAlerts wieder auf True?
Re: COMatePlus speichert nicht
Verfasst: 12.11.2012 22:56
von Joel
Jawoll! es funktioniert THX:D
Re: COMatePlus speichert nicht
Verfasst: 13.01.2013 13:43
von Joel
Ich musste leider noch etwas ändern an meinem Programm. Es erzeugt jetzt nicht jeden mal eine neue Datei, sondern öffnet jeden mal die alte Datei und ergänzt sie.
Wenn ich Text mit SetProperty hinzufüge, wird dieser auch gespeichert. Wenn ich aber in der bereits geöffneten Datei was ändere und diese dann schließe werden die Änderungen nicht mehr gespeichert.
Code: Alles auswählen
XIncludeFile "COMatePLUS.pbi"
IncludeFile "ExcelConstants.pbi"
XIncludeFile "ExcelFunktion.pbi"
date$ = FormatDate("%dd/%mm/%yyyy", Date())
Define.COMateObject ExcelObject, WorkBook
ExcelObject = XLSFunc_OpenExcelFile(Dropbox_Pfad$)
If ExcelObject
If ExcelObject\SetProperty("Visible = #True") = #S_OK
WorkBook = ExcelObject\GetObjectProperty("ActiveWorkbook")
If WorkBook
letzte_Reihe = XLSFunc_GetLastRow(ExcelObject)+3
ExcelObject\SetProperty("Cells("+Str(letzte_Reihe)+",1) = 'Datum:'")
ExcelObject\SetProperty("Cells("+Str(letzte_Reihe)+",2) = '" + date$ + "' As DATE")
ExcelObject\SetProperty("Cells("+Str(letzte_Reihe+2)+",1) = 'Lieder:'")
ExcelObject\SetProperty("Application\DisplayAlerts = #False")
FFormat=#xlNormal
;Workbook\Invoke("SaveAs('" + Dropbox_Pfad$ + "'," + Str(FFormat) + ")")
Workbook\Invoke("Save")
ExcelObject\SetProperty("Application\DisplayAlerts = #False")
WorkBook\Release()
EndIf
EndIf
ExcelObject\Release()
Else
MessageRequester("Excel Datei erstellen", "Couldn't create the application object!")
EndIf
Re: COMatePlus speichert nicht
Verfasst: 15.01.2013 20:54
von Joel
Niemand eine Idee?
Re: COMatePlus speichert nicht
Verfasst: 15.01.2013 22:42
von Pure_Beginner
Hallo Joel,
bin selber noch Anfänger und viel kann ich zur Materie nicht sagen,
aber wenn du eine neue Excel Datei erzeugen möchtest, solltest du
anstelle von
benutzen.
Grüße
Christian
Re: COMatePlus speichert nicht
Verfasst: 16.01.2013 21:55
von Joel
Joel hat geschrieben:Es erzeugt jetzt nicht jeden mal eine neue Datei, sondern öffnet jeden mal die alte Datei und ergänzt sie.
ich öffne eine vorhandene Datei und ergänze Sie!