Aktuelle Zeit: 21.09.2018 04:24

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste
Autor Nachricht
 Betreff des Beitrags: Re:
BeitragVerfasst: 28.09.2010 19:15 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Andreas_F hat geschrieben:
Hat schon jemand das Super-Excel-Beispiel von Falko von DispHelper nach COMate portiert? PureDispHelper soll ja nicht mehr für neue Projekte verwendet werden, da die Weiterentwicklung eingestellt wurde.

Ich habe z.B. Probleme eine vorhandene Excel-Datei mit COMate zu öffnen. Ich weiß nicht wie ich

dhCallMethod(*obj, ".Workbooks.Open(%T)", @Datei) ; open ExcelFile

auf COMate umsetzen kann???

Bin für jede Hilfe dankbar!!!


Siehe folgenden Link
Zu ExcelFunktionen COMatePlus bitte hier auswählen. :twisted:

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 08.04.2013 20:19 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Hallole,
ja ich arbeite noch mit dem PureDisphelper. Das liegt daran das ich kaum Änderungen vornehme.

Habe diesbezüglich eine Frage.

Ich habe ein Excelhauptfile das immer in Benutzung ist (mit RS232 und Makro werden da immer Daten berechnet und aktualisiert). Das Auslesen von dieser Excelseite macht mein Programm.
Da natürlich der Excelhauptfile ( so nenne ich das eben mal so ) immer vom Programm A in "Betrieb" ist öffnet es mein Programm zum Auslesen der Daten natürlich immer mit READ ONLY.
Allerdings gibt es da ab und zu Probleme mit dem Programm A und dem Excelhauptfile so das dann mein Programm diesen File normal öffnet (nicht mit READ ONLY weil es dann durch irgendwelche Probleme vom Hauptprogramm in diesem Moment nicht geöffnet ist).

Da der Excelhauptfile auf dem Server liegt und von verschiedenen PC's auf diesen zugegriffen wird kann dann danach das Programm A nur noch als READ ONLY auf das Excelhauptfile zugreifen was dann Probleme macht.

Gibt es eine Möglichkeit das mein Programm diesen Excelhauptfile immer nur im READ ONLY Modus öffnet?

Zum Öffnen benutze ich diesen Teil:

Code:
Procedure OpenExcelFileAllg(Allgemeintabelle.s)
  Protected *obj
  dhToggleExceptions(#True); Toggles error messages from DispHelper on or off
  *obj  = dhCreateObject("Excel.Application")
  If *obj
    dhCallMethod(*obj, ".Workbooks.Open(%T)", @Allgemeintabelle) ; ExcelFile öffnen
  EndIf
  ProcedureReturn *obj
EndProcedure


Vielen Dank im Voraus
Michael

_________________
PB 4.02 (wegen Disphelper), 5.2 (Windows)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 08.04.2013 20:58 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Ein OpenReadOnly in VBA für Excel sähe so aus:

Zitat:
Excel.Workbooks.Open(strVerzeichnis & strDatei, ReadOnly:=True)

Quasi müsstest du im Disphelper den Parameter ReadOnly:=True noch hinzufügen.
Leider habe ich mit dem Disphelper nicht mehr viel gemacht daher im Moment nur dieser Tip von
mir. Vielleicht meldet Peter sich hierzu.

Gruß,
Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 08.04.2013 21:15 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Hallo Falko,
das heisst das ich anstelle von:

Code:
dhCallMethod(*obj, ".Workbooks.Open(%T)", @Allgemeintabelle) ; ExcelFile öffnen

dann
Code:
dhCallMethod(*obj, ".Workbooks.Open(%T, ReadOnly:=True)", @Allgemeintabelle) ; ExcelFile öffnen mit READ ONLY

schreiben müsste?

Michael

_________________
PB 4.02 (wegen Disphelper), 5.2 (Windows)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 08.04.2013 21:26 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Theoretisch müsste es so funktionieren.

Gruß,
Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 08.04.2013 21:32 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Danke Falko,
ich werde es morgen dann mal in der Arbeit versuchen.
Ich kann es ja dann als sichtbar öffnen, da werde ich es dann sehen ob es als READ ONLY geöffnet wurde (hoffe ich jedenfalls).

Tschüssle
Michael

_________________
PB 4.02 (wegen Disphelper), 5.2 (Windows)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 11.04.2013 21:07 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Hallo Falko,
es hat nicht geklappt. Das Excel wurde normal geöffnet :-( - ohne ReadOnly

Trotzdem Danke
Michael

_________________
PB 4.02 (wegen Disphelper), 5.2 (Windows)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 11.04.2013 22:51 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Ich weiß nun nicht, warum es nicht funktioniert. Aber wenn ich folgenden Code mit einer Test-Exceldatei
zuerst öffne habe ich erst den Kompatiblitätsmode in der Kopfzeile stehen und wenn ich das Programm nochmal
starte, welches die gleiche Datei öffnet, steht in der Kopfzeile Schreibgeschützt, also nur lesen möglich.

Code:
;dhToggleExceptions(#True)
Procedure OpenExcelFileAllg(Allgemeintabelle.s)
  Protected *obj
   
  dhToggleExceptions(#True); Toggles error messages from DispHelper on or off
  *obj  = dhCreateObject("Excel.Application")
  If *obj
    dhPutValue(*obj, ".Visible = %b", #True)
    ;dhCallMethod(*obj, ".Workbooks.Open(%T)", @Allgemeintabelle) ; ExcelFile nur Lesen öffnen
    dhCallMethod(*obj, ".Workbooks.Open(%T),ReadOnly:=true", @Allgemeintabelle) ; ExcelFile nur Lesen öffnen
  EndIf
  ProcedureReturn *obj
EndProcedure

OpenExcelFileAllg("F:\Purebasic\X86\Examples\PureDispHelper\Test.xls")

dhReleaseObject(*obj)


Gruß,
Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 05.01.2014 23:03 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Hallo Falko,
ja das ist ja das Problem.
Bei dir öffnet es das erste Mal auch normal, dann wenn du es das 2. mal öffnest ist es READ ONLY weil die Datei ja schon offen ist.

Was ich will ist das die Exceldatei schon beim ersten mal mit READ ONLY geöffnet wird egal ob es schon woanders geöffnet oder nicht geöffnet ist.

Hast du da eine Idee?
Michael

PS Alle gute wünsche für das Neue Jahr 2014

_________________
PB 4.02 (wegen Disphelper), 5.2 (Windows)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ExcelFunktionen PureDisphelper
BeitragVerfasst: 06.01.2014 00:00 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Ich bin mir nicht sicher, aber ungefähr so müsste es aussehen:

Code:
Procedure.l XLSFunc_OpenExcelFileReadOnly(Datei.s); Open ExcelFile
  Protected ExcelObject.COMateObject,Workbook
  ExcelObject = COMate_CreateObject("Excel.Application")
  If ExcelObject
    ExcelObject\SetProperty("Workbooks\ReadOnly = #True")
    ExcelObject\Invoke("Workbooks\Open('"+Datei+"')")
  Else
    MessageRequester("Achtung","Bitte geben Sie eine vorhandene xls-Datei mit Pfad an!")
  EndIf
  ProcedureReturn ExcelObject ;.COMateObject
EndProcedure


Morgen schaue ich mir das mal genauer an.

[Edit] Ich habe das nochmal geändert, weil das heute nicht funktionierte.

Wenn ich das wie folgt mache:
Code:
Procedure.l XLSFunc_OpenExcelFileReadOnly(Datei.s); Open ExcelFile
  Protected ExcelObject.COMateObject,Workbooks
  ExcelObject = COMate_CreateObject("Excel.Application")
  If ExcelObject
     ExcelObject\Invoke("Workbooks\Open('"+Datei+"')")
     ExcelObject\SetProperty("ActiveWorkbook\ReadOnly = #True") 
     
  Else
    MessageRequester("Achtung","Bitte geben Sie eine vorhandene xls-Datei mit Pfad an!")
  EndIf
  ProcedureReturn ExcelObject ;.COMateObject
EndProcedure


bekomme ich beim Ausführen folgende Antwort zurück:
Debugger hat geschrieben:
Die ReadOnly-Eigenschaft des Workbook-Objektes kann nicht festgelegt werden.


Unter VBA wird dieses ReadOnly := True beim Open-Befehl gleich mit dem Komma hinten angehängt.
Irgendwie kriege ich das mit ComateCom nicht hin, da man alles splitten muss und nicht wie in VBA
alles in einem Befehlssatz ausführen kann. Schade drum das diese Einschränkung existiert. Sonst könnte man
vieles einzuein aus VBA - Beispielen, ohne Experimentieren zu müssen, übernehmen :(.
Vielleicht hat Kiffi hierzu noch eine funktionierende Lösung, die ich dann gerne in dieser Excelfunktionslibrary
aufnehmen würde :) .

Gruß,
Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye