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. 🤗

[Gelöst] Erstellte Makros duplizieren / kopieren?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
MarkusDD
Beiträge: 14
Registriert: Di 22. Mär 2022, 08:22

[Gelöst] Erstellte Makros duplizieren / kopieren?

Beitrag von MarkusDD » Do 24. Mär 2022, 01:26

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.
Zuletzt geändert von MarkusDD am Do 24. Mär 2022, 19:24, insgesamt 1-mal geändert.

craig
Beiträge: 318
Registriert: Sa 14. Mai 2016, 12:36

Re: Erstellte Makros duplizieren / kopieren?

Beitrag von craig » Do 24. Mär 2022, 16:00

Hallo Markus,
Markus hat geschrieben:Gibt es eine Möglichkeit Makros die man erstellt hat auch zu "duplizieren"?
Ja, und es gibt verschiedene Möglichkeiten, dies ist von Deiner Arbeitsweise abhängig
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.
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?
Diese Frage kann ich nicht beantworten, weil ich Deine Codes nicht kenne.
Gruß

Craig

Nie die Sicherungskopie vergessen!

═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)

MarkusDD
Beiträge: 14
Registriert: Di 22. Mär 2022, 08:22

Re: Erstellte Makros duplizieren / kopieren?

Beitrag von MarkusDD » Do 24. Mär 2022, 16:22

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".

craig
Beiträge: 318
Registriert: Sa 14. Mai 2016, 12:36

Re: Erstellte Makros duplizieren / kopieren?

Beitrag von craig » Do 24. Mär 2022, 17:37

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:

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
Markus hat geschrieben:Im Makro wird nur die Zellenangabe geändert und der Name des Makros.
Im Grunde ist dies per geschickt gesetzter Variablen und/oder per Parameterübergabe möglich.
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)

MarkusDD
Beiträge: 14
Registriert: Di 22. Mär 2022, 08:22

Re: Erstellte Makros duplizieren / kopieren?

Beitrag von MarkusDD » Do 24. Mär 2022, 19:24

Deine Erklärungen haben mir SEHR weiter geholfen, danke vielmals Craig! 8-)

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!

craig
Beiträge: 318
Registriert: Sa 14. Mai 2016, 12:36

Re: [Gelöst] Erstellte Makros duplizieren / kopieren?

Beitrag von craig » Do 24. Mär 2022, 21:43

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:
  • 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)

Antworten