BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

MS VBA Funktionen in Calc?

Alles zur Programmierung im OpenOffice.org
Antworten
haralt
Beiträge: 6
Registriert: Mo 21. Okt 2013, 19:02

MS VBA Funktionen in Calc?

Beitrag von haralt » Sa 19. Apr 2014, 14:04

Guten Tag,

Ich habe ein Berechnungsprogramm mit Microsoft Excel gemacht und es funktioniert wunderbar. Dabei habe ich Makros oder eher gesagt, Funktionen mit Microsoft Visual Basic Application (VBA) geschrieben, die in einem Modul liegt.

Wenn ich jetzt mein Excelprogram mit OpenOffice Calc öffnete, protestierte dieses zuerst wegen meinen Makros. Dann ändere ich die Sicherheitseinstellungen damit die Makros ausgeführt werden.

Aber, es scheint als Calc meine Funktionen nicht erkennt. Es wird nichts berechnet. In den Zellen wo die Funktionen angerufen werden (blauer Hintergrund) stehen nur die Zeichen für Gartenzaun ###. (Die Gartenzaun-Zeichen sind nicht wegen allzu schmalen Spalten, dies ist also nicht der Fehler.)

Wie bringe ich Calc zu rechnen?

In Zellen wo ich eine Gleichung in der Zelle direkt geschrieben habe(auch blauer Hintergrund), da rechnet er aber korrekt(Zeile 16). Diese Gleichungen verwendet andere Zellen im Blatt und berechnen Werte.

Ich habe Funktionen in Microsoft Excel gemacht anstatt grosse komplizierte Gleichungen direkt in Zellen zu schreiben. Dies ist viel eleganter.
Kann man auch in Calc Funktionen schreiben?

Ich sehe in Calc unter "Extras", Makros", "Makros Verwalten", OpenOffice Basic", und "Bearbeiten", dass meine 2 Modulen mit den vielen Funktionen da sind. Aber jede Zeile hat einen "Rem" als erstes Element. Das ist wohl die Zeichen für Kommentare? Einzig zwei Zeile fangen nicht mit "Rem" an, sondern mit "Sub Modul1" und "End sub".

Soll man da diese "Rem" ausmisten um es in Ordnung zu bringen?

Um zu sehen wie es in Calc aussieht, sehen Sie anliegendes Bild, Programm.jpg

Die Modul in Calc sieht aus wie Modul.jpg. Wer hat alle diese "Rem" hinzugefügt, ich nicht?

Ich wäre dankbar für Hinweise zur Lösung.

Grüssen
Dateianhänge
Modul.jpg
Modul.jpg (69.17 KiB) 17312 mal betrachtet
Programm.jpg
Programm.jpg (81.95 KiB) 17312 mal betrachtet

Benutzeravatar
lorbass
Beiträge: 318
Registriert: Mo 25. Apr 2011, 18:12

Re: MS VBA Funktionen in Calc?

Beitrag von lorbass » Sa 19. Apr 2014, 17:32

haralt hat geschrieben:(Die Gartenzaun-Zeichen sind nicht wegen allzu schmalen Spalten, dies ist also nicht der Fehler.)
Doch. Der Gartenzaun zeigt wirklich an, dass die Spalte zu schmal ist, nämlich zu schmal für die Fehlermeldungen… ;)
haralt hat geschrieben:Wie bringe ich Calc zu rechnen?
Vermutlich wird es ausreichen, wenn du den Menüpunkt Extras → Optionen…* → Laden/Speichern → VBA-Eigenschaften wählst und dort die drei zu Excel gehörenden Optionen aktivierst. Solange die Option ☐ Ausführbarer Code NICHT aktiviert ist, kommentiert AOO alle Programmzeilen mit »Rem« aus, so dass das Makro nicht ausgeführt werden kann. Wenn du die Datei nach Aktivierung der genannten Option neu öffnest, dürften die Rems verschwunden sein.

* oder Eigenschaften

Gruß
lorbass

haralt
Beiträge: 6
Registriert: Mo 21. Okt 2013, 19:02

Re: MS VBA Funktionen in Calc?

Beitrag von haralt » Mo 21. Apr 2014, 13:17

Was Du da sagst hat gestimmt. Als ich nachschaute, hatte nur 2 von den 3 Optionen bei "VBA-Eigenschaften" für "Mikrosoft Excel 97/2000/XP" Haken, nun habe ich noch dazu "Ausführbarer Code" mit einem Haken versehen.

Die "Rem" sind nun weg, aber meine Funktionen gefallen der Programmsprache in Calc (Basic) überhaupt nicht.
Ist Microsoft VBA nicht exakt dasselbe wie Basic? Calc wird nun blockiert, und verlangt Beheben von allen behaupteten Programmfehlern in meinen Funktionen. Aber, ob ich da meine Funktionen ändere, ja dann funktioniert mein Programm wohl nicht mit MS Excel.

Ich bin jedoch einen Schritt weiter gekommen. Vielen Dank Lorbass!

Sehen Sie das Bild "blockierung.jpg". Wenn ich bei Öffnung der Datei "Makros deaktivieren" wähle, dann kann ich in den Funktionen ändern, aber nicht die Funktionen mit Debugger probieren um zu sehen wo die Fehler sind. Aber wie in Bild blockierung hervorgeht, hat Calc nicht gern "next k". Könnte es etwas mit der Unterbrechung die For-Schleife mit dem Kommando "If Abs(fx) < tolerans Then: Exit For" zu tun haben ? In Hilfe in Calc, finde ich nichts.

Öffne ich die Datei mit "Makros Aktivieren" ja dann wird Calc völlig blockiert, und nur mit Zwang mittels Taskmanager zu schliessen.

Was kann man da machen?

Ich denke viele wollen von Microsoft Excel auf Openoffice Calc umsteigen und werden dieselbe Probleme wie ich erleben.

Mit freundlichen Grüssen

Haralt
Dateianhänge
Blockierung.jpg
Blockierung.jpg (70.54 KiB) 17270 mal betrachtet
VBA-Eigensch.jpg
VBA-Eigensch.jpg (71.34 KiB) 17283 mal betrachtet

Benutzeravatar
ChristianAC
Beiträge: 21
Registriert: Fr 12. Sep 2014, 15:36
Wohnort: Aachen

Re: MS VBA Funktionen in Calc?

Beitrag von ChristianAC » Do 18. Sep 2014, 01:04

wie sieht das eigtl. generel aus?
Unterschiede VBA/OO-BASIC -
ist es nicht so,dass man das
"global" einer OO-Variable mit z.B.
Public im VBA umschreiben müsste?
Ausserdem,ich habe in der OpenCalc-Hilfe
nichts zu ByVal und ByRef gefunden...
Was denkt Alexa Popp nach dem Herrenpokalfinale? - "Männer..."

balu
Beiträge: 155
Registriert: Di 12. Okt 2010, 11:35

Re: MS VBA Funktionen in Calc?

Beitrag von balu » Do 18. Sep 2014, 11:57

Hallo Haralt,
Ist Microsoft VBA nicht exakt dasselbe wie Basic?
Exakt? Nein!
Ähnlich? Jaeien!
Bis zu einem bestimmtem Grad hat Calc (StarBasic) keine Probleme mit VBA, aber darüber hinaus wirds problematisch. Der genaue Punkt ab wann es zu Problemen kommt, hängt vom jeweiligen Makro ab. Aber eins kann ich schon mal sagen, wenn es um das ansprechen und auswerten von Grafischen Kontrollelementen geht, is Feierabend.
Ausserdem,ich habe in der OpenCalc-Hilfe
nichts zu ByVal und ByRef gefunden
Wie denn auch? StarBasic ist nun mal halt nicht VBA.

Aber wie in Bild blockierung hervorgeht, hat Calc nicht gern "next k". Könnte es etwas mit der Unterbrechung die For-Schleife mit dem Kommando "If Abs(fx) < tolerans Then: Exit For" zu tun haben ?
Ist durchaus möglich.

In Hilfe in Calc, finde ich nichts.
Na da hast Du aber wohl nicht genau hingeschaut. Gib mal als Suchbegriff EXIT ein, wenn Du im Basic-Editor (IDE) bist.


Und fürs nächste mal, Bilder taugen nicht, deshalb Datei anhängen.



Gruß
balu

Antworten