BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> 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. 🤗
[Gelöst] Erstellte Makros duplizieren / kopieren?
[Gelöst] Erstellte Makros duplizieren / kopieren?
Hallo miteinander!
Gibt es eine Möglichkeit Makros die man erstellt hat auch zu "duplizieren"? Also ich hätte sozusagen ein Makro das ich 7x noch leicht abwandeln muss aber im Kern schon alle Angaben enthalten sind. Muss ich dann insgesamt 8 Makros erstellen oder gibt es dafür auch eine einfachere Variante? Habe schon über die Suchfunktion hier im Forum gesucht aber unter dem Suchwort "duplizieren" leider nichts zu meiner Frage finden können.
Gibt es eine Möglichkeit Makros die man erstellt hat auch zu "duplizieren"? Also ich hätte sozusagen ein Makro das ich 7x noch leicht abwandeln muss aber im Kern schon alle Angaben enthalten sind. Muss ich dann insgesamt 8 Makros erstellen oder gibt es dafür auch eine einfachere Variante? Habe schon über die Suchfunktion hier im Forum gesucht aber unter dem Suchwort "duplizieren" leider nichts zu meiner Frage finden können.
Zuletzt geändert von MarkusDD am Do 24. Mär 2022, 19:24, insgesamt 1-mal geändert.
Re: Erstellte Makros duplizieren / kopieren?
Hallo Markus,
und es stellt sich die Frage, in welche Bibliothek/en die Makros kopiert werden sollen.
Dies ist wiederum davon abhängig, ob die Programm nur in einem Dokument
ausgeführt werden sollen oder in allen Dokumenten ausführbar sein sollen.
Ja, und es gibt verschiedene Möglichkeiten, dies ist von Deiner Arbeitsweise abhängigMarkus hat geschrieben:Gibt es eine Möglichkeit Makros die man erstellt hat auch zu "duplizieren"?
und es stellt sich die Frage, in welche Bibliothek/en die Makros kopiert werden sollen.
Dies ist wiederum davon abhängig, ob die Programm nur in einem Dokument
ausgeführt werden sollen oder in allen Dokumenten ausführbar sein sollen.
Diese Frage kann ich nicht beantworten, weil ich Deine Codes nicht kenne.Markus hat geschrieben:Also ich hätte sozusagen ein Makro das ich 7x noch leicht abwandeln muss aber im Kern schon alle Angaben enthalten sind. Muss ich dann insgesamt 8 Makros erstellen oder gibt es dafür auch eine einfachere Variante?
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Re: Erstellte Makros duplizieren / kopieren?
Hallo Craig auch hier
Ich arbeite nur mit einem Dokument das mehrere Tabellenseiten besitzt, Es findet kein Austausch zwischen Dateien statt, wenn Du das gemeint hast. Daher lege ich die Makros auch immer in einer "Bibliothek" in meinem Dokument an. Ich glaube an sich, das ich "zu viele" Bibliotheken angelegt habe Kann man auf dem Bild was ich angehängt habe bei meiner "Makro-Selektor Frage" ganz gut sehen.
Im Grunde möchte ich ein Makro das dort vorhanden ist 8x haben und habe eine "Grundversion" davon.
Im Makro wird nur die Zellenangabe geändert und der Name des Makros. Sonst bleibt die Funktion immer
gleich von der "Grundversion" zum "Duplikat".
Ich arbeite nur mit einem Dokument das mehrere Tabellenseiten besitzt, Es findet kein Austausch zwischen Dateien statt, wenn Du das gemeint hast. Daher lege ich die Makros auch immer in einer "Bibliothek" in meinem Dokument an. Ich glaube an sich, das ich "zu viele" Bibliotheken angelegt habe Kann man auf dem Bild was ich angehängt habe bei meiner "Makro-Selektor Frage" ganz gut sehen.
Im Grunde möchte ich ein Makro das dort vorhanden ist 8x haben und habe eine "Grundversion" davon.
Im Makro wird nur die Zellenangabe geändert und der Name des Makros. Sonst bleibt die Funktion immer
gleich von der "Grundversion" zum "Duplikat".
Re: Erstellte Makros duplizieren / kopieren?
Hallo Markus,
damit wir nicht aneinander vorbei reden:
In jedem Dokuemnt wird standardmäßig eine Makro-Bibliothek „Standard“ angelegt.
Eine Bibliothek namens „Standard“ befindet sich auch unter „Meine Makros & Dialoge“.
Ausserdem kann man sich sowohl im Dokument, als auch im globalen Bereich „Meine Makros & Dialoge“ zusätzliche Bibliotheken anlegen.
Der Name Bibliothek ist vergleichbar mit einem Ordner im Windows-Explorer, wird halt mit „Bibliothek“ bezeichnet.
In den Bibliotheken werden die Module (Modulblätter) gespeichert.
Jedes Modulblatt kann ein oder mehrere Code (SUB-Routinen und/ oder Funktionen) enthalten.
Hier mal ein „Pfad“ zu einem Makro (Sub-Routine)
Standard → Modul1 → Sub MeinMakro1
Standard → Modul2 → Sub MeinMakro2
oder auch beide Routinen in einem Modulblatt:
Standard → Modul1 → Sub MeinMakro1
Standard → Modul1 → Sub MeinMakro2
Deinem Screenshot entnehme ich, dass Du nur die Bibliothek „Standard“ zur Speicherung mehrerer Module nutzt.
Du könntest nun sozusagen eine Gruppierung vornehmen und zusammengehörige Code-Routinen in einem Modul speicherst:
Vorschlag:
Standard → modReset → ResetWurf1
Standard → modReset → ResetWurf2
Standard → modReset → ResetWurf3
Die Routinen ResetWurf1-ResetWurf3 schreibst/ kopierst Du in ein einziges Modulblatt namens „modReset“.
Ich nutze gern das Präfix „mod“ für Module, damit gestallte sich die Übersicht im Objektkatalog, als auch im Makro-Selektor lesbarer.
Beispiel für modReset:
Dies ist aber abhängig davon, wie der gewünschte Zellbereich gebildet wird.
Nehmen wir einmal an, du hast ein übergeordnetes Makro, aus dem heraus sich irgendwie geartet der Zellbereich heraus kristallisiert. Dann kannst Du ein anderes untergeordnetes Makro mit Parameterübergabe aufrufen:
damit wir nicht aneinander vorbei reden:
In jedem Dokuemnt wird standardmäßig eine Makro-Bibliothek „Standard“ angelegt.
Eine Bibliothek namens „Standard“ befindet sich auch unter „Meine Makros & Dialoge“.
Ausserdem kann man sich sowohl im Dokument, als auch im globalen Bereich „Meine Makros & Dialoge“ zusätzliche Bibliotheken anlegen.
Der Name Bibliothek ist vergleichbar mit einem Ordner im Windows-Explorer, wird halt mit „Bibliothek“ bezeichnet.
In den Bibliotheken werden die Module (Modulblätter) gespeichert.
Jedes Modulblatt kann ein oder mehrere Code (SUB-Routinen und/ oder Funktionen) enthalten.
Hier mal ein „Pfad“ zu einem Makro (Sub-Routine)
Standard → Modul1 → Sub MeinMakro1
Standard → Modul2 → Sub MeinMakro2
oder auch beide Routinen in einem Modulblatt:
Standard → Modul1 → Sub MeinMakro1
Standard → Modul1 → Sub MeinMakro2
Deinem Screenshot entnehme ich, dass Du nur die Bibliothek „Standard“ zur Speicherung mehrerer Module nutzt.
Du könntest nun sozusagen eine Gruppierung vornehmen und zusammengehörige Code-Routinen in einem Modul speicherst:
Vorschlag:
Standard → modReset → ResetWurf1
Standard → modReset → ResetWurf2
Standard → modReset → ResetWurf3
Die Routinen ResetWurf1-ResetWurf3 schreibst/ kopierst Du in ein einziges Modulblatt namens „modReset“.
Ich nutze gern das Präfix „mod“ für Module, damit gestallte sich die Übersicht im Objektkatalog, als auch im Makro-Selektor lesbarer.
Beispiel für modReset:
Code: Alles auswählen
REM ------ WURF 1-----
Sub ResetWurf1
End Sub
REM ------ WURF 2-----
Sub ResetWurf2
End Sub
REM ------ WURF 3-----
Sub ResetWurf3
End Sub
Im Grunde ist dies per geschickt gesetzter Variablen und/oder per Parameterübergabe möglich.Markus hat geschrieben:Im Makro wird nur die Zellenangabe geändert und der Name des Makros.
Dies ist aber abhängig davon, wie der gewünschte Zellbereich gebildet wird.
Nehmen wir einmal an, du hast ein übergeordnetes Makro, aus dem heraus sich irgendwie geartet der Zellbereich heraus kristallisiert. Dann kannst Du ein anderes untergeordnetes Makro mit Parameterübergabe aufrufen:
Code: Alles auswählen
REM ***** BASIC *****
REM Modulweit gültige Variablen
Dim oDoc as Object
Dim oSheet1 as Object
Dim oCell as Object
Dim nVal as Long
Sub Hauptroutine
Dim nCol as Long, nRow as Long
oDoc=ThisComponent
oSheet1=oDoc.getSheets().getByName("Tabelle1")
REM Spalten und Zeilen-Index
nCol = 2
nRow = 1
REM Wert zur Berechnung des Zellinhalts
nVal= 12
' Für die CALL-Anweisung kann der Begriff CALL entfallen
CALL ResetWurfX(nCol, nRow)
End Sub
REM -----------------------------------------------------------------------------
REM DIESE ROUTINE KANN VARÌABEL FÜR ALLE RESETWÜRFE VERWENDET WERDEN
REM WICHTIG IST NUR DIE KORREKTE ÜBERGABE DER ZELLADRESSE (nCol, nRow)
REM -----------------------------------------------------------------------------
Sub ResetWurfX(nCol, nRow) as Long
'getCellByPosition → ( nColumn as long, nRow as long )
oCell=oSheet1.getCellByPosition(nCol,nRow)
nVal=nVal*5
oCell.Value=nVal
End Sub
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Re: Erstellte Makros duplizieren / kopieren?
Deine Erklärungen haben mir SEHR weiter geholfen, danke vielmals Craig!
Es hilft mir schon sehr nun verstanden zu haben wie man mehrere Sub-Routinen in einem Modul zusammenfügt. Dadurch brauche ich nicht für jeden Spieler 1-8 ein neues Modul mit nur einer Sub-Routine erstellen. So kann ich nun, wie gewünscht den Code mehrfach kopieren & einfügen und muss maximal 3 kleine Änderungen vornehmen, wie zum Beispiel die Zuweisung für die Tabelle in der die Sub-Routine ausgeführt werden soll - das ist PERFEKT!
Danke nochmals vielmals!
Es hilft mir schon sehr nun verstanden zu haben wie man mehrere Sub-Routinen in einem Modul zusammenfügt. Dadurch brauche ich nicht für jeden Spieler 1-8 ein neues Modul mit nur einer Sub-Routine erstellen. So kann ich nun, wie gewünscht den Code mehrfach kopieren & einfügen und muss maximal 3 kleine Änderungen vornehmen, wie zum Beispiel die Zuweisung für die Tabelle in der die Sub-Routine ausgeführt werden soll - das ist PERFEKT!
Danke nochmals vielmals!
Re: [Gelöst] Erstellte Makros duplizieren / kopieren?
Hallo Markus,
aus meiner Sicht ist das Arbeiten mit Makros in LibreOffice
besser gelöst, vor allem der Objektkatalog in der Basic-IDE.
Weil ich meist mit LO arbeite, war mir auch der Begriff "Makro Selektor" fremd.
Jedes dieser Office-Pakete hat ihre Daseinsberechtigung.
Es ist halt Geschmacksache was man verwenden will.
Hier mal ein Link zur Portable-Version von LO.
Nur entpacken und testen. Keine Installation erforderlich:
https://de.libreoffice.org/download/portable-versions/
Schalte in der Basic-IDE folgende Ansichten ein:
aus meiner Sicht ist das Arbeiten mit Makros in LibreOffice
besser gelöst, vor allem der Objektkatalog in der Basic-IDE.
Weil ich meist mit LO arbeite, war mir auch der Begriff "Makro Selektor" fremd.
Jedes dieser Office-Pakete hat ihre Daseinsberechtigung.
Es ist halt Geschmacksache was man verwenden will.
Hier mal ein Link zur Portable-Version von LO.
Nur entpacken und testen. Keine Installation erforderlich:
https://de.libreoffice.org/download/portable-versions/
Schalte in der Basic-IDE folgende Ansichten ein:
- Menü Ansicht → Objekt-Katalog
- Menü Ansicht → Zeilennummern
Neben den Nummern kannst Du Haltepunkte einfügen.
Bei Start des Makros aus der IDE heraus, stoppt an dieser Stelle
der Basic-Interpreter die weitere Ausführung.
Dies ist sehr nützlich um die Inhalte von Variabeln und Arrays, usw. zu überprüfen:
https://help.libreoffice.org/latest/de/ ... _id3153344 - Menü Ansicht → Statusleiste
Mit Klick in einen Code, wird Dir dann ganz unten
links der Pfad zum aktuellen Makro angezeigt.
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)