Dialog: Makrobefehle für Openoffice und Excel

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von balu »

Hallo Excelbiest,
Jedoch enthält Sie einen Makrobefehl zum öffnen eines Userform (Show Userform1) jedoch kennt OOo den Befehl Show nicht.
Ich könnt jetzt sagen, dass der Befehl .visible lautet, der dir aber jedoch nicht wirklich helfen wird da wohl ein Dialog in OOo ganz anders initialisiert und gestartet wird, als in Excel.

Gibt es eine alternative die beide Programme ausführen können?
Dazu kann ich nichts defenetives sagen, weil ich da keine Erfrahrung mit Bilaterale Makros habe.

Da Du weder eine Beispieldatei, noch den entsprechenden Makro-Code zur Verfügung stellst, ist alles weitere nur Rätserlraten. Ich vermute aber, dass dein Vorhaben nicht so einfach zu bewerkstelligen ist, da es allein mit dem aufruf des Dialog höchstwahrescheinlich nicht getan ist. Denn was geschieht im Dialog, wozu ist er da? Was soll geschehen wenn der Dialog beendet wird? Um nur mal ein paar weiterführende Fragen zu stellen.

Ich behaupte jetzt mal, dass Du in der Datei nicht ein Bilaterales Makro erstellen kannst, sondern das Du 2 Makros programmieren musst, eins für Excel und eins für OOo. Da ich aber in dieser Hinsicht keine Ahnung und Erfahrung habe, musst Du auf kompetentere Hilfe warten. Diese Zeit solltest Du aber nutzen um weitere Angaben zu machen.
- Excel-Version
- OOo-Version
- Betriebssystem
- Beispieldatei und oder Makro-Code hier posten
- Erklären was für eine Funktion die Datei hat


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von Stephan »

jedoch kennt OOo den Befehl Show nicht
bei mir funktioniert .show in OOo 3.3.0.

Im Übrigen löst man solche Dinge ggf. mit einer Weiche im Code, welche überflüssigerweise auch in der hier angehängten Excel-Datei enthalten ist:

Code: Alles auswählen

Sub Aufruf()
  On Error GoTo calc
  
  UserForm1.Show
  Exit Sub
  
calc:
  
End Sub
das Problem in Konkreten ist lediglich das MS Excel 2003 auf das Einfügen des konkreten Codes für calc mit einer Fehlermeldung reagiert weil hinter .CreateUnoDialog eine Function oder Sub vermutet wird, weshalb man den Code in ein getrenntes Makro auslagern muß:

Code: Alles auswählen

Sub Aufruf()
  On Error GoTo calc
  
  UserForm1.Show
  Exit Sub
  
calc:
  Call calc_aufruf
  
End Sub

Sub calc_aufruf()
  bib = DialogLibraries.Standard.UserForm1
  dlg = CreateUnoDialog(bib)
  dlg.execute()
End Sub


Gruß
Stephan
Dateianhänge
UserForm_Calc_Excel.xls
(30 KiB) 71-mal heruntergeladen
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von Stephan »

Woran kann das den liegen?
z.B. daran das Du kein OOo in Version 3.3.0 benutzt, denn die Beispieldatei enthält ja nur den Code mit .show und nicht den, hier im Forum geposteten, erwweiterten Code.



Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von balu »

Hallo Excelbiest,

wir vermissen noch immer deine Angaben zu der eingesetzten OOo-Version! Stephan hatte gesagt das es mit der OOo 3.3.0 keine Probleme gibt, was ich so nebenbei bemerkt bestätigen kann. Uns hilft es recht wenig wenn Du einfach sagst, OOo-Portable, denn das ist keine Versionsnummer.

Und ferner, was soll das heißen?
aber das klappt immer noch nicht.
Darunter können wir uns absolut gar nichts vorstellen. Bitte erkläre sehr genau was nicht klappt! Wie ist bei dir in OOo die Makrosicherheit eingestellt?


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von Stephan »

Jedenfalls hab ich den Code in Stephans Musterdatei nach besten Wissen und Gewissen abgeändert
Ja prima.

Und nun führen wir in Folge eine mehrtägige Debatte in der ich versuche zu erraten wie du was konkret abgeändert hast, oder besteht die Chance auf etwas mehr Information, die ein sinnvolles Antworten erst möglich macht?
Es wäre nett wenn jemand noch mal so ne schöne Musterdatei mit dem richtigen Code posten könnte damit ich auch die Erleuchtung finde.
Viele hier würden es wohl eher so sehen das derjenige der Hilfe haben will sich der Mühe unterziehen sollte seine nicht funktionierende dAtei zu posten, damitz man dort den Fehler korrigieren kann.


Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von balu »

Hallo Leute.

@Excelbiest
Die Version ist 3.2.0 wobei ich nicht glaube das das Problem ist.
Glauben heißt nicht wissen!
Und ich sage jetzt: Ich weiss das es an der 3.2.0 liegt!
Denn ich habe die Beispieldatei von Stephan genommen und in der 3.2.0 so wie in der 3.2.1 geöffnet. In beiden Versionen funktioniert das Makro nicht. Erst in der 3.3.0 läufts.

Also empfehle ich dir eine 3.3.0 selber Portable zu machen. Wie das geht, kannst Du hier nachlesen.



@Stephan
Kannst Du dich noch daran erinnern, das wir erst kürzlich ein ähnliches Problem(Phänomen) im Calc-Forum hatten? Überschriften Zweisprachig. Da gab es auch diskrepanzen zwischen der 3.2.1 und der 3.3.0. Was dir komisch vor kam, da der "Allerweltscode" eigentlich funktionieren müsste.

Nun, ich habe jetzt mal 2 Screenshots in den genannten Versionen in der IDE gemacht. Und dabei ist mir aufgefallen, dass in den beiden Versionen unterschiedliche Anzahlen an Modulen existieren, obwohl es sich um ein und die gleiche Datei handelt.

IDE in der 3.2.1
IDE 321.png
IDE 321.png (25.14 KiB) 2108 mal betrachtet
IDE in der 3.3.0
IDE 330.png
IDE 330.png (28.07 KiB) 2108 mal betrachtet
Klar, dadurch können wir das Problem mit der 3.2.0 nicht beseitigen, aber ich wollts dir nur mal eben als Info mitgeteilt haben.

Mir fällt da jetzt aber noch was ein. Könnt das eventuell mit der JAVA-Version etwas zu tun haben? Ich frage deshalb weil ich es nicht weiss.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von Stephan »

Denn ich habe die Beispieldatei von Stephan genommen und in der 3.2.0 so wie in der 3.2.1 geöffnet.
das war hier aber nicht das konkrete Thema, sondern es ging darum das der Frager den anderen Code nutzt bzw. nutzen will:

Code: Alles auswählen

Sub Aufruf()
  On Error GoTo calc
 
  UserForm1.Show
  Exit Sub
 
calc:
  Call calc_aufruf
 
End Sub

Sub calc_aufruf()
  bib = DialogLibraries.Standard.UserForm1
  dlg = CreateUnoDialog(bib)
  dlg.execute()
End Sub
der sollte aber auch in beliebigen OOo-Versionen laufen.

Oder sagen wirs genau:
ich gehe natürlich davon aus der der Frager genau dieses versucht, wenn er schreibt:
Jedenfalls hab ich den Code in Stephans Musterdatei nach besten Wissen und Gewissen abgeändert
denn anzunehmen er hätte den Code lösgelöst von den im Thread Diskutierten angepasst, fände ich eine komische Annahme.

Was dir komisch vor kam, da der "Allerweltscode" eigentlich funktionieren müsste.
Das war dort wörtlich gemeint und auf den konkreten Code bezogen. Ich kann 'Allerweltscode' in diesem Zusammenhang nicht scharf definieren, sondern das Ganze ist nur Ausdruck davon das ich mein Geld u.a. mit Umschreiben von VBA-Code zu StarBasic verdiene und man im Laufe der Zeit natürlich Erfahrungen sammelt und weiß welcherart Code-Ausdrücke eher unproblematisch sind und welche nicht.
Könnt das eventuell mit der JAVA-Version etwas zu tun haben?
Da das Makro bei OOo 3.3.0 auch bei abgeschaltetem JRE läuft ist die Chance dafür eher sehr gering.



Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von balu »

Hallo Leute.

@Excelbiest
Hallo Stephan Hallo Zero
Sag mal wer ist denn Zero?

Ich habe deine Datei gedownloaded und in der OOo 3.2.1 funktioniert sie nicht. In der 3.3.0 gibt es aber keine Probleme, da funktioniert sie. Die 3.3.0 hatte ich mir selber Portable gemacht, also empfehle ich dir das auch, wie ich schon etwas weiter oben gesagt hatte.



@Stephan
Da das Makro bei OOo 3.3.0 auch bei abgeschaltetem JRE läuft ist die Chance dafür eher sehr gering.
Alles klar, ich danke dir.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von Stephan »

das Makro funktioniert bei mir auch unter 3.2.1 tadellos - wie erwartet.

Lediglich ist die Zuweisung zur Schaltfläche nicht in Ordnung gewesen was in anhängender Datei korrigiert ist.


Gruß
Stephan
Dateianhänge
Test.xls
(36 KiB) 59-mal heruntergeladen
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dialog: Makrobefehle für Openoffice und Excel

Beitrag von balu »

Hallo Leute.

@Stephan
das Makro funktioniert bei mir auch unter 3.2.1 tadellos - wie erwartet.

Lediglich ist die Zuweisung zur Schaltfläche nicht in Ordnung gewesen was in anhängender Datei korrigiert ist.
Stimmt, mit der Zuweisung funktionierrte es bei mir dann auch. Hatte ich gar nicht so drauf geachtet, fehler meinerseits. Interessant ist es aber schon das die 3.3.0 sich so weiterentwickelt hatte, das es dort auch ohne expliziete Zuweisung funktioniert.



@Excelbiest
Sorry da hab ich im Eifer des Gefechts die Namen vertauscht.
Alles klar, kann ja mal vorkommen.

das mit dem 3.3.0 Portable machen hilft mir nicht. Die Datei läuft am Schluß auf ca. 20 Rechnern an denen zum Teil Bediener sitzen die schon einen Taschenrechner für Teufelswerk halten. Wenn ich denen die Anleitung schicke ...
Wenn Du einmal eine Portable Version selber erstellt hast, dann kannst Du doch diese nehmen und an alle Benutzer verteilen. Sie müssen die doch nicht selber erstellen. Oder bist Du dort nicht tätig wo die Benutzer sitzen, und Du bist so was ähnliches wie ein "Dienstleister" (mal ganz salop gesagt)?
Wie auch immer, war ja nur ein Vorschlag weil Du hier von Portable gesprochen hattest.

zu früh gefreut das mit dem Aufruf des Userform funktioniert super aber der Code der im Userform steht funktioniert, wie soll es auch anderst sein nicht.
Hatte ich hier doch schon richtig in meinem ersten Beitrag vermutet, dass es mit dem Aufruf der Userform alleine nicht abgetan ist.

Nun, ich hatte deinen Code genommen und in OOo 3.3.0 in das Modul1 reinkopiert. Mir fiel wohl schon vorher auf, dass es da ein paar Stellen gibt die mir nicht ganz "Koscher" vorkamen, z.B.

Code: Alles auswählen

Private Sub ...
Aber ich dachte mir das vielleicht Calc das in Kombination mit

Code: Alles auswählen

Option VBASupport 1
irgendwie richtig interpretiert, was dem aber nicht so ist. Denn mit Private werden in OOo Variablen deklariert.
Ich habe mich jetzt aber auch nicht so intensiv damit weiter beschäftigt.

Stephan hatte ja schon darauf hingewiesen, dass wohl eine Code-Weiche eingebaut werden muss. Und ich hatte schon vermutet das Du wohl 2 Makros schreiben musst, eins für Excel und eins für Calc. Denn in OOo werden einzelne Objekte wie z.B. Textboxen anders verarbeitet, als in Excel.
Es bleibt dir wohl höchstwahrscheinlich jetzt auch nichts anderes übrig, als beides zu vereinen. Aber warten wir mal ab was Stephan dazu sagt. Er kennt sich bestimmt besser damit aus wie jetzt vorgegangen werden muss.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten