Seite 1 von 1

COMatePLUS Excel speichern ohne Pfad

Verfasst: 23.09.2012 18:07
von Joel
Hey,

ich habe an folgendem Thread gesehen, dass man Excel mit COMatePlus steurn kann. Ich möchte etwas ähnliches machen wie in diesem Thread.

Es öffnet sich eine Excelliste, die schon mit einigen Daten befüllt ist. Das funktioniert soweit. Wenn die Liste bearbeitet wurde soll sie mit einem Klick auf speichern gespeichert werden können. Der User soll sich aber nicht damit beschäftigen wo die Datei hingespeichert werden soll; er soll einfach nur auf speichern klicken und die Datei soll dann an einem bestimmten Pfad abgespeichert werden. Es muss also im voraus schonmal eine Art "speichern unter" aufgerufen werden. Es sollte mit Excel 2003 und 2007 funktionieren.

Soweit bin ich gekommen aber leider funktioniert das nicht wirklich:

Code: Alles auswählen

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
      ExcelObject\Invoke("Workbooks\open('C:\users\xxx\desktop\test.xlsx')")
    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) = 'Lied:'")
      ExcelObject\SetProperty("Cells(3,3) = 'COMate!'")
      ExcelObject\SetProperty("Cells(3,4) = 'Today$0027s date is'")  ;$0027 is a hex escape code used to insert a ' (ascii 39) character.
      
      
      ExcelObject\SetProperty("Application\DisplayAlerts = #False") 
      ExcelObject\Invoke("Save")
      ExcelObject\SetProperty("Application\DisplayAlerts = #True")
      ExcelObject\Invoke("Quit()")
      
      ;ExcelObject\Invoke("Quit()") 
      WorkBook\Release()
    EndIf
  EndIf
  ExcelObject\Release()
Else
  MessageRequester("Excel Datei erstellen", "Couldn't create the application object!")
EndIf

Re: COMatePLUS Excel speichern ohne Pfad

Verfasst: 23.09.2012 18:22
von Kiffi
ein geöffnetes Workbook kannst Du mit 'SaveAs' unter einem
anderen Namen speichern:

Code: Alles auswählen

Workbook\Invoke("SaveAs('DeineDatei.xls')")
Grüße ... Kiffi

Re: COMatePLUS Excel speichern ohne Pfad

Verfasst: 26.09.2012 23:00
von Joel
Folgende Schleife funktioniert nicht. In der Excel Datei wird kein Text eingefügt.

Code: Alles auswählen

Repeat 
        h()
        zahler+1
        ExcelObject\SetProperty("Cells(zahler,1) = '" + Lied$ + "'")
      Until endFile = 1
Muss ich vor/hinter "zahler" wieder irgendwelche Zeichen setzen wie bei Lied$ ?

Re: COMatePLUS Excel speichern ohne Pfad

Verfasst: 26.09.2012 23:26
von Kiffi
Joel hat geschrieben:Muss ich vor/hinter "zahler" wieder irgendwelche Zeichen setzen wie bei Lied$ ?
Ja.

Grüße ... Kiffi

Re: COMatePLUS Excel speichern ohne Pfad

Verfasst: 13.10.2012 11:50
von Joel
Kiffi hat geschrieben:
Joel hat geschrieben:Muss ich vor/hinter "zahler" wieder irgendwelche Zeichen setzen wie bei Lied$ ?
Ja.

Grüße ... Kiffi
Und welche?

Re: COMatePLUS Excel speichern ohne Pfad

Verfasst: 13.10.2012 12:48
von Kiffi

Code: Alles auswählen

ExcelObject\SetProperty("Cells(" + Str(zahler) + ", 1) = '" + Lied$ + "'")