RE: [de-users] Problem bei der Maro-Programmierung
Hallo, Ich hatte ein ähnliches Problem. Auch ich hatte statische Button, aber es waren etwa 160. für jeden Button nun ein eigenes Makro zu schreiben und es diesem zuzuweisen wäre wenig praktikabel. Daher war ich sehr froh über eine zufällige Lösung aus dem Makrobuch zu Openoffice von Thomas Krumbein. Hier wurden statt Button sogenannte Radiobutton verwendet. Alle Button lösen bei Änderung ihres Status das gleiche makro aus. Mittels einer einfachen Schleife kann jetzt herausgefunden werden, welcher Radiobutton aktiv ist. (if oDialog.getControl(optionButton1).state then ...) diese einfache Abfrage hat zur Folge das wenn der Button ausgewählt wurde das If statment 1 und somit wahr wird. Jetzt kannst du einfach mitteles Abfrage des Labels herausfinden, was der Nutzer mit dem Klick bezweckt hat. Also welche Zeile etc. Ich hoffe hier eine Anregung gegeben zu haben. Vorraussetzung ist aber das die Radiobutton durch nummeriert sind und somit nur anhand einer einfachen hochzählbaren Variable unterscheiden. Sonst geht das Konzept der Schleife nicht auf. Das Label ist unabhängig vom Namen des Buttons. Viele Grüße und Erfolg -Ursprüngliche Nachricht- Von: Tobias Maurer Gesendet: Tue. 30.06.09 (11:45) An: users@de.openoffice.org Betreff: [de-users] Problem bei der Maro-Programmierung Sehr geehrte Damen und Herren, ich befasse mich zurzeit mit der Konvertierung einiger Excel-Dateien in Open-Office-Dateien. Dabei bin ich auf ein Problem gestoßen, welches ich bisweilen auch unter Zuhilfenahme des Internets nicht lösen konnte. Aus diesem Grund wende ich mich nun vertrauensvoll an diesen Support. Mein Problem: Ich möchte über verschiedene Buttons an bestimmte Stellen in verschiedenen Datenblättern springen. Bis dato kein Problem. Jedoch möchte ich anhand der Aufschrift der Buttons an eben diese Stellen springen. Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von welchem Button aus es gestartet wurde. Bislang habe ich jedoch nur herausgefunden, wie ich die auf die Eigenschaften mir bekannter Items zugreifen kann, nicht jedoch auf mir zum Zeitpunkt des Makrostarts unbekannte Items. Ich hoffe sie können mir bei meinem Problem behilflich sein. Im anhang finden sie eine von mir erstellte Testdatei, in welcher das Makro enthalten ist.(Für den Fall, dass meine Ausführungen für Außenstehende etwas verwirrend klingen sollten). Vielen Dank im voraus. Mit besten Grüßen Tobias Maurer -- Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 -Ursprüngliche Nachricht Ende- #adBox3 {display:none;} - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Problem bei der Maro-Programmierung
Hallo Tobias, Tobias Maurer schrieb: Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von welchem Button aus es gestartet wurde. Ich interpretiere deine Frage mal so: du möchtest ein Makro bauen, das weiß, von welchem Button es aufgerufen wurde. Ich habe das in Dmaths (eine unerschöpfliche Fundgrube für Ideen im Fach Makroprogrammierung mit OOo-sbasic) so gemacht wie Laurent Godard es mir damals geraten hatte: Schreibe deinem Makro einen Parameter in die Klammer: Sub Verweis(event) Dim LS as string LS = event.source.model.Label msgbox LS End Sub Auf diese Weise können viele verschiedene Button dasselbe Makro nutzen, das dann in Abhängigkeit vom Wert von LS jeweils eine andere Aktion ausführen könnte. Wenn du wirklich in die Programmierung von sbasic einsteigen willst solltest du dir Xray besorgen. Dann kannst du mit der Befehlsfolge xray event xray event.source xray event.source.model schrittweise erforschen, was in dem Parameter event drin steckt. Noch eine Tipp zu Xray: vor jeder Verwendung von Xray nach einem Neustart von OOo musst du es in der Makroverwaltung (unter Meine Makros) durch einen Klick auf die Ordner XrayDyn und XrayTool anmelden (die Ordnerfarbe wechselt dabei auf gelb). Viel Erfolg! Gisbert - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Problem bei der Maro-Programmierung
Gisbert Friege schrieb: Hallo Tobias, Tobias Maurer schrieb: Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von welchem Button aus es gestartet wurde. Ich interpretiere deine Frage mal so: du möchtest ein Makro bauen, das weiß, von welchem Button es aufgerufen wurde. Ich habe das in Dmaths (eine unerschöpfliche Fundgrube für Ideen im Fach Makroprogrammierung mit OOo-sbasic) so gemacht wie Laurent Godard es mir damals geraten hatte: Schreibe deinem Makro einen Parameter in die Klammer: Sub Verweis(event) Dim LS as string LS = event.source.model.Label msgbox LS End Sub Auf diese Weise können viele verschiedene Button dasselbe Makro nutzen, das dann in Abhängigkeit vom Wert von LS jeweils eine andere Aktion ausführen könnte. Tobias, das klappt tadelos. In dem Macro was ich dir zugesandt habe sieht das dann so aus: ___ Sub button1(event) dim suche dim found dim oSheet Dim LS as string LS = event.source.model.Label msgbox LS rem Suche von button1 aus oSheet = ThisComponent.getsheets().getbyname(Tabelle2) suche = LS found=SimpleSheetSearch(suche, oSheet, true) MsgBox(Von Button 1 gefunden:found.getstring(),,INFORMATION) rem oder einfach: print found.getstring() rem selektiere die Zelle ThisComponent.CurrentController.Select(found) end sub mfg Volker - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Problem bei der Maro-Programmierung
Hallo Tobias, Tobias Maurer schrieb: Sehr geehrte Damen und Herren, nun mal nicht so förmlich, wir sind hier aller per Du. (Es handelt sich um das Openoffice USER Forum) ich befasse mich zurzeit mit der Konvertierung einiger Excel-Dateien in Open-Office-Dateien. Das ist ein weites Feld. Aber gut. Dabei bin ich auf ein Problem gestoßen, welches ich bisweilen auch unter Zuhilfenahme des Internets nicht lösen konnte. Aus diesem Grund wende ich mich nun vertrauensvoll an diesen Support. Wie gesagt, das hier ist nicht eine Support Abteilung, sondert eine User Liste. Wir helfen uns gegenseitig! Daher ist es auch nicht so sinnvoll, gleich bei der Ersten Anfrage gleich eine Datei im Anhang zu schicken. Immerhin bekommen das gleich ein paar 1000 User (ungefragt) zugesandt! Also immer erst das Problem beschreiben und dann, ggf. auf Anfrage jemandem die Beispieldatei per email zuschicken!! Mein Problem: Ich möchte über verschiedene Buttons an bestimmte Stellen in verschiedenen Datenblättern springen. Bis dato kein Problem. Jedoch möchte ich anhand der Aufschrift der Buttons an eben diese Stellen springen. Die Buttons erzeugst du in der Formularansicht? Dann sind sie doch statisch, und es ist somit möglich jedem Button ein entsprechendes Macro zuzuweisen? Also Button1 - Maustaste gedrückt - Macro.Button1 - Call SucheeineZelle(Button1,Suchstr,Tabelle) usw. Button2 - Maustaste gedrückt - Macro.Button2 - Call SucheeineZelle(Button2,Suchstr,Tabelle) usw. Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von welchem Button aus es gestartet wurde. Bislang habe ich jedoch nur herausgefunden, wie ich die auf die Eigenschaften mir bekannter Items zugreifen kann, nicht jedoch auf mir zum Zeitpunkt des Makrostarts unbekannte Items. Da du wie gesagt, einem Button ein Macro zuweisen must, ist es bekannt, welcher Button welches Macro aufruft. Ich hoffe sie können mir bei meinem Problem behilflich sein. Im anhang finden sie eine von mir erstellte Testdatei, in welcher das Makro enthalten ist.(Für den Fall, dass meine Ausführungen für Außenstehende etwas verwirrend klingen sollten). Ich habe dir per email mal deine Geändertde Datei gesendet. In dieser befindet sich auch ein etwas anderer Ansatz für das Arbeiten mit Macros. (Ohne den ständigen Aufruf der Dispatcher Methode) Hier sie immer noch einmal auf die wirklich hilfreichen Macros von Andrew Pitonyak hingewiesen! Eine unerschöpfliche Quelle!! Link? : http://www.pitonyak.org/oo.php Vielen Dank im voraus. Mit besten Grüßen Tobias Maurer Gruß zurück Volker Heggemann - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org