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. 🤗
Variablen mit Makros erstellen und mehr
Variablen mit Makros erstellen und mehr
Hallo Leute, ich bin es mal wieder
Habe heute schon den ganzen Tag damit verbracht im Internet nach einer Lösung für mein "neues Problem" zu suchen, bin aber leider noch nicht fündig geworden und frage daher nochmal hier in die Runde
Frage Nummer 1
Ich möchte gern einen Text (Name) aus "Tabelle 1" bei "C35:C35" per Makro in die nächste freie Zelle einer Spalte der "Tabelle 2" übertragen, aber nur dann wenn in der der Text (Name) noch nicht in der Spalte vorhanden ist.
Frage Nummer 2
Würde die Möglichkeit bestehen aus dem Text in "Tabelle 1" bei "C35:C35" eine Variable zu erstellen (falls überhaupt nötig) und aus dieser "Variablen" drei untergeordnete Variablen generieren zu lassen?
Als Beispiel:
Text in "Tabelle 1" bei "C35:C35" = Test
Neue Variable 1 = TestWert1
Neue Variable 2 = TestWert2
Neue Variable 3 = TestWert3
(sozusagen Inhalt von "C35:C35" + "Wert1" (Wert1 bis Wert3 sind konstante Begriffe) = neue Variablenname)
Kann man diese Variablen mit Hilfe vom Text aus "C:35:C35" also definieren, damit man eine Zuordnung bekommt?
Sollte dies funktionieren, müssten diese drei neuen Variablen nur noch rechts, neben dem zuvor kopierten Namen, mit dem Wert 0, eingefügt werden.
Als Beispiel:
Eingefügter Wert aus "Tabelle 1" bei "C35:C35" wird in "Tabelle 2" in Spalte D in der nächsten freien Zelle eingetragen (ich nehme einfach mal "D27" als Referenz) Dann würde ich gern in "E27" die Variable "TestWert1", in "F27" die Variable "TestWert2" und in "G27" die Variable "TestWert3" eingefügt bekommen.
P.S.: Ich habe immer "C35:C35" geschrieben da mir der Begriff in einem Makro für eine einzelne Zelle nicht geläufig ist benutze zur Zeit "getCellRangeByName("C35:C35")" geht bestimmt auch ohne "Range", oder?
Ich hoffe meine Frage ist hier richtig gepostet UND verständlich von mir erklärt Wenn nicht, dann fragt mich gern noch einmal, dann erläutere ich es noch einmal, wo es Schwierigkeiten gibt
Vielen Dank schonmal für's Lesen und helfen!
Habe heute schon den ganzen Tag damit verbracht im Internet nach einer Lösung für mein "neues Problem" zu suchen, bin aber leider noch nicht fündig geworden und frage daher nochmal hier in die Runde
Frage Nummer 1
Ich möchte gern einen Text (Name) aus "Tabelle 1" bei "C35:C35" per Makro in die nächste freie Zelle einer Spalte der "Tabelle 2" übertragen, aber nur dann wenn in der der Text (Name) noch nicht in der Spalte vorhanden ist.
Frage Nummer 2
Würde die Möglichkeit bestehen aus dem Text in "Tabelle 1" bei "C35:C35" eine Variable zu erstellen (falls überhaupt nötig) und aus dieser "Variablen" drei untergeordnete Variablen generieren zu lassen?
Als Beispiel:
Text in "Tabelle 1" bei "C35:C35" = Test
Neue Variable 1 = TestWert1
Neue Variable 2 = TestWert2
Neue Variable 3 = TestWert3
(sozusagen Inhalt von "C35:C35" + "Wert1" (Wert1 bis Wert3 sind konstante Begriffe) = neue Variablenname)
Kann man diese Variablen mit Hilfe vom Text aus "C:35:C35" also definieren, damit man eine Zuordnung bekommt?
Sollte dies funktionieren, müssten diese drei neuen Variablen nur noch rechts, neben dem zuvor kopierten Namen, mit dem Wert 0, eingefügt werden.
Als Beispiel:
Eingefügter Wert aus "Tabelle 1" bei "C35:C35" wird in "Tabelle 2" in Spalte D in der nächsten freien Zelle eingetragen (ich nehme einfach mal "D27" als Referenz) Dann würde ich gern in "E27" die Variable "TestWert1", in "F27" die Variable "TestWert2" und in "G27" die Variable "TestWert3" eingefügt bekommen.
P.S.: Ich habe immer "C35:C35" geschrieben da mir der Begriff in einem Makro für eine einzelne Zelle nicht geläufig ist benutze zur Zeit "getCellRangeByName("C35:C35")" geht bestimmt auch ohne "Range", oder?
Ich hoffe meine Frage ist hier richtig gepostet UND verständlich von mir erklärt Wenn nicht, dann fragt mich gern noch einmal, dann erläutere ich es noch einmal, wo es Schwierigkeiten gibt
Vielen Dank schonmal für's Lesen und helfen!
Re: Variablen mit Makros erstellen und mehr
Hallo Markus,
eine Beispieldatei wäre für mich sehr hilfreich.
Dir empfehle ich diese Website:
DE/Makro Basic Tutorial
Folgende Links verweisen auf dieselbe Seite:
Aus dem Xray-Fenster kopiert:
Du kannst bei einigen Eigenschaften Methodden, etc. ein Doppelklick ausführen,
dann schaltet Xray (falls vorhanden) in die nächst darunteriegende Instanz:
Suche im Xray-Fenster unter den Eigenschaften CurrentController und führe eine Doppelklick aus.
Jetzt werden Dir alle Eigenschaften, Methoden, usw. zum CurrrentController angezeigt.
Woher weiß Xray als dies?
Es ist in der OpenOffice-API dokumentiert...
Oh weia, gut das es Xray gibt...
eine Beispieldatei wäre für mich sehr hilfreich.
Dir empfehle ich diese Website:
DE/Makro Basic Tutorial
Folgende Links verweisen auf dieselbe Seite:
- Konventionen für die Variablen, insbesondere die Präfixe, denn bei Ver-
wendung von Präfixen wird der Code für Dich und für die Helfer lesbarer. - Ganz besonders empfehle ich Dir das Xray-Tool.
Dieses dient der Codeinspektion. Es handelt sich dabei um ein Writer-Dokument
welches Installations-/ Deinstallations Makros enthält und gleichzeitig
das deutschsprachige Handbuch für Xray ist.
Hier ein Beispiel wie Xray verwendet wird:Bei Ausführung dieses Codes erscheint das Xray-Fenster, welches Dir nunCode: Alles auswählen
Sub Main Dim oDoc as Object oDoc=ThisComponent xray odoc End Sub
alle Eigenschaften, Methoden, usw. zum Objekt "ThisComponent" anzeigt.
Damit die Ausführung funktioniert, muss nach der Installation von Xray die
Anleitung auf Seite 7 "Automatisches Laden der Bibliothek XrayTool"
befolgt werden. Nicht vergessen: Office muss neugestartet werden.
Folgender Code untersucht die erste Tabelle (oSheet11) im Dokument.
Wähle im Xray-Fenster oben links die Option "Methoden", dann werden
Dir die verfügbaren Methoden zu ersten Tabellenblatt angezeigt.
Rechts neben dieser Listbox setze bitte den Haken bei "A-Z" und "Details"
Such jetzt in der Liste darunter nach den get-Anweisungen:Code: Alles auswählen
REM ***** BASIC ***** Sub Main Dim oDoc as Object Dim oSheet1 as Object Dim oRange1 as Object oDoc=ThisComponent 'xray oDoc oSheet1=oDoc.getSheets.getbyIndex(0) xray oSheet1 oRange1=oSheet1.getCellRangeByName("A2:B51") 'xray oRange1 End Sub
Aus dem Xray-Fenster kopiert:
-
getCellByPosition → ( nColumn as long, nRow as long )
Zelle A1Code: Alles auswählen
oCell=oSheet1.getCellByPosition(0,0)
- getCellRangeByName → ( aRange as string )
Zelle A1
Lass Dich hier nicht von dem englischen Range verwirren!
Es wird Dir in Xray ein Zellobjekt angezeigt und nicht etwa ein Zellbereichs-Objekt!ODERCode: Alles auswählen
oCell=oSheet1.getCellRangeByName ("A1")
Zellbereich A1:C5Code: Alles auswählen
oRange=oSheet1.getCellRangeByName ("A1:C5")
- Auch dies referenziert einen Zellbereich, wobei hier die "Koordinaten" in Form eines Index angegeben werden.
getCellRangeByPosition → ( nLeft as long, nTop as long, nRight as long, nBottom as long )
Das Präfix „n“ deutet darauf hin, dass es entweder der Datentyp Integer oder Long ist. Xray verweist darauf, das der Index auf jeden Fall als Datentyp „Long“ deklariert sein MUSS. Erkennbar an dem Hinsweis „as Long“.
Ausserdem ist bei der Angabe mittels Index wichtig zu wissen, dass die Spalten-/Zeilenzählung IMMER bei 0 beginnt und die Xray-Hinweise „Left, Top, Right, Bottom“
Zellbereich A1:C5 per Index:Zelle A1 → Left, Top → 0,0Code: Alles auswählen
oRange=oSheet1.getCellRangeByPosition(0,0,2,4)
Zelle C5 → Right, Bottom → 2,4
Du kannst bei einigen Eigenschaften Methodden, etc. ein Doppelklick ausführen,
dann schaltet Xray (falls vorhanden) in die nächst darunteriegende Instanz:
Code: Alles auswählen
xray oDoc
Jetzt werden Dir alle Eigenschaften, Methoden, usw. zum CurrrentController angezeigt.
Woher weiß Xray als dies?
Es ist in der OpenOffice-API dokumentiert...
Oh weia, gut das es Xray gibt...
Markus hat geschrieben:Frage Nummer 1
- Wert oder String in eine Variable schreiben:
ODER
Code: Alles auswählen
Dim nWert as Long nWert=oCell.Value
ODERCode: Alles auswählen
Dim fWert as Double fWert=oCell.Value
Code: Alles auswählen
Dim sWert as String sWert=oCell.String
- Zellbereich von Tabelle2 in ein Array einlesen.
In ein Array einlesen ist die schnellste Verarbeitungsmethode:
z.B.Code: Alles auswählen
Dim mArr() as Variant oRange2= oSheet2.getCellRangeByName("A1:A20") ' Damit werden alle Daten (Strings und Werte) im Array abgelegt: mArr()=oRange2.getDataArray() REM Prüfung mit Xray: REM Doppelklick auf die einzelnen Array-Felder! xray mArr() REM -------------------------------------------------------------- ' Hier muss eine Schleife eingebaut werden, welche das Array durchzählt ' und die Datenfelder auf Inhalt prüft. ' Wahrheitsprüfung: ' WENN xWert in Array(y,z)-Feld enthalten; DANN mache NICHTS; ' SONST suche letzte Zelle im Bereich und schreibe xWert in Zelle. REM --------------------------------------------------------------
Das habe ich noch nicht richtig verstanden.Markus hat geschrieben:Frage Nummer 2
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: Variablen mit Makros erstellen und mehr
Wow Craig - das ist eine sehr ausführliche Antwort von Dir Danke dafür. Wird mir bestimmt in Zukunft nochmal hilfreich sein können, wenn ich weiter so an Tabellen rumbastle
Kurz zur Frage 2 in Kurzform:
Ist es möglich eine Variable durch etwas wie: dim text(C35)+Wert1 zu definieren so das am Ende die neue Variable die definiert wird "TestWert1" heißt, wenn der Text aus C35 in diesem Beispiel "Test" lautet
-----------------------------------------------------------------------------------------------------
Jetzt benötige ich noch Makros für die Punkte - diesmal auch mit einer Tabelle für euch zum arbeiten daran Vielleicht geht das mit dem Addieren weiter unten im Text einfacher, dann gern Vorschläge machen - sonst auch gern so wie ich es denke, das es funktionieren könnte - anbieten danke schonmal!
Bei Klick auf Schlatfläche > Makro ausführen:
1) Nimm Text aus Zelle D2 (Tabelle: Spieler 1) und prüfe ob der Name des Spielers (D2) in der (Tabelle: Highscores) in C33 bis letzte Zeile C vorkommt.
Wenn nein:
Füge den Text / Namen des Spielers aus D2 (Tabelle: Spieler 1)
in erster leeren Zelle in Spalte C und G und K (Tabelle: Highscores)ein.
UND
----- Rang sortierung - Code kopieren -----
Kopiere die Formel / Zelle aus B33 in die erste, freie Zelle in Spalte B
Kopiere die Formel / Zelle aus F33 in die erste, freie Zelle in Spalte F
Kopiere die Formel / Zelle aus J33 in die erste, freie Zelle in Spalte J
----- Rang Sortierung Hilfsspalte - Code kopieren -----
Kopiere die Formel / Zelle aus P33 in die erste, freie Zelle in Spalte P
Kopiere die Formel / Zelle aus S33 in die erste, freie Zelle in Spalte S
Kopiere die Formel / Zelle aus V33 in die erste, freie Zelle in Spalte V
UND
Füge in der ersten, freien Zelle in D und H und L den Wert 0 ein
Wenn ja:
Mache nichts - keine Eintragungen, etc.
2) Bei Klick auf eine Schaltfläche in (Tabelle: Spieler 1)
Wenn D4:D9 (Tabelle: Spieler 1) und D15:D23 (Tabelle: Spieler 1) eine Zahl enthalten, dann:
Suche den Text / Namen des Spielers aus D2 (Tabelle: Spieler 1) in Spalte C33 bis Ende C (Tabelle: Highscores). Als Beispiel: Name des Spielers in (Tabelle: Highscores) in Zelle C56
Addiere +1 zur Zelle D56 (Tabelle: Highscores)
Addiere Wert aus D31 (Tabelle: Spieler 1) zur Zelle H56 (Tabelle: Highscores)
Addiere Wert aus D31 (Tabelle: Spieler 1) zur Zelle L56 (Tabelle: Highscores) wenn Wert aus D31 größer ist als Wert aus L56
Kurz zur Frage 2 in Kurzform:
Ist es möglich eine Variable durch etwas wie: dim text(C35)+Wert1 zu definieren so das am Ende die neue Variable die definiert wird "TestWert1" heißt, wenn der Text aus C35 in diesem Beispiel "Test" lautet
-----------------------------------------------------------------------------------------------------
Jetzt benötige ich noch Makros für die Punkte - diesmal auch mit einer Tabelle für euch zum arbeiten daran Vielleicht geht das mit dem Addieren weiter unten im Text einfacher, dann gern Vorschläge machen - sonst auch gern so wie ich es denke, das es funktionieren könnte - anbieten danke schonmal!
Bei Klick auf Schlatfläche > Makro ausführen:
1) Nimm Text aus Zelle D2 (Tabelle: Spieler 1) und prüfe ob der Name des Spielers (D2) in der (Tabelle: Highscores) in C33 bis letzte Zeile C vorkommt.
Wenn nein:
Füge den Text / Namen des Spielers aus D2 (Tabelle: Spieler 1)
in erster leeren Zelle in Spalte C und G und K (Tabelle: Highscores)ein.
UND
----- Rang sortierung - Code kopieren -----
Kopiere die Formel / Zelle aus B33 in die erste, freie Zelle in Spalte B
Kopiere die Formel / Zelle aus F33 in die erste, freie Zelle in Spalte F
Kopiere die Formel / Zelle aus J33 in die erste, freie Zelle in Spalte J
----- Rang Sortierung Hilfsspalte - Code kopieren -----
Kopiere die Formel / Zelle aus P33 in die erste, freie Zelle in Spalte P
Kopiere die Formel / Zelle aus S33 in die erste, freie Zelle in Spalte S
Kopiere die Formel / Zelle aus V33 in die erste, freie Zelle in Spalte V
UND
Füge in der ersten, freien Zelle in D und H und L den Wert 0 ein
Wenn ja:
Mache nichts - keine Eintragungen, etc.
2) Bei Klick auf eine Schaltfläche in (Tabelle: Spieler 1)
Wenn D4:D9 (Tabelle: Spieler 1) und D15:D23 (Tabelle: Spieler 1) eine Zahl enthalten, dann:
Suche den Text / Namen des Spielers aus D2 (Tabelle: Spieler 1) in Spalte C33 bis Ende C (Tabelle: Highscores). Als Beispiel: Name des Spielers in (Tabelle: Highscores) in Zelle C56
Addiere +1 zur Zelle D56 (Tabelle: Highscores)
Addiere Wert aus D31 (Tabelle: Spieler 1) zur Zelle H56 (Tabelle: Highscores)
Addiere Wert aus D31 (Tabelle: Spieler 1) zur Zelle L56 (Tabelle: Highscores) wenn Wert aus D31 größer ist als Wert aus L56
Re: Variablen mit Makros erstellen und mehr
Hallo Markus,
ich beantworte ersteinmal diese Frage:
„Hobby-Programmierer“ die Programmierung aus einem anderen Blickwinkel sehe.
Es gibt verschiedene Methoden Variablen zu deklarieren (Dim-Anweisung) und es gibt Variablen mit unterschiedlichsten Datentypen. Deiner Beschreibung entnehme ich, dass es bei dem Inhalt der Variablen um Texte (Strings) geht. Dann würde ich die Variable z.B. so deklarieren:
Die 1 in "Mein Haus 1" ist aber keine Zahl(!), sondern eine Ziffer, darausfolgt, dass die 1 z.B. nicht für eine Addition verwendet werden kann. Man muss diese 1 erst von eine Ziffer in eine Zahl wandeln, dazu muss die aber erst vom Text mittel Makro-Text-Runtimefunktionen extrahiert werden. Hier ein einfaches Beispiel:
Dieses Beispiel zeigt wie Du eine bestehende Variable mit weiterem Inhalt füttern kannst.
Es gilt dabei aber zu beachten, dass es Limitationen gibt. D.h. Du kannst eine String-Variablen nicht unendlich viel Text zuweisen. Früher waren es mal max. 256 Zeichen inklusiver Leerzeichen, usw.
Wo die heutige Limitation endet weiß ich nicht.
Beispiel:
Bei Fließkommazahlen werden maximal 15-Stellen nach dem Komma berechnet. Ist die Variable als „as DOUBLE“ deklariert, dann wird die 15. Stelle auf- oder abgerundet. Double heißt doppelte Genauigkeit beim Runden in Abhängigkeit von der 16. und weiteren Stellen nach dem Komma.
Und jetzt wird es ein wenig tricky:
Die Variable "mText()" ist keine gewöhliche Variable, sondern ein eindimensionales Array, welches 3 Felder beinhaltet. Die Zählung der Felder beginnt bei 0.
Diese Array besitzt 3 Felder:
Zählung = 0 – 2 = 0, 1, 2
Erstes Feld:
Zweites Feld:
Drittes Feld:
In der Print Anweisung erkennst Du die einzelnen Aufrufe.
Das ist aber noch nicht alles.
Statt eines einfachen eindimensionalen Arrays, gibt es auch mehrdimensionale Arrays.
Man kann z.B. einen kompletten Zellbereich in einem Rutsch in ein Array einlesen
Das Array ist als Variant deklariert, somit entscheidet der Basic-Interpreter bei Aufruf des
Makros selbst, welchem Feld welcher Datentyp (String, Long, Double, usw.) zu zuweisen ist.
Sehe Dir mal diese Datei an:
Daten aus Tabelle in Ausdruck übertragen (calc)
Wenn Du die Datei öffnest, könnte es sein, dass Du bei OpenOffice einen Meldung erhälst, dass Du Updaten musst. Diese Meldung kannst Du ignorieren. Liegt nur daran, weil ich die Datei mit LibreOffice gespeichert habe.
Im dritten und vierten Tabellenbllatt bin ich kurz auf das Thema „Arrays“ eingegangen. Im Code erkennst Du die Arbeitsweise der Arrays. Und wie man diese mit Daten aus einem Zellbereich befüllt.
Nun ich könnte hier ein kleines Buch zur Verwendung von Arrays schreiben, deshalb kann ich Dir nur anraten Dich selbst mit meiner Starthilfe zu befassen und Dich im Netz weiter zu informieren.
Mit Deinen weiteren Wünschen werden ich mich auch befassen, und ja ich werde auch dort mit Arrays arbeiten, weil die Abarbeitung des Codes wesentlich schneller ist, als wenn man einzelne Zellen der Tabelle mittels Code durchklickert. D.h. die Abarbeitung und Vergleiche der Arrayinhalte geschieht ausnahmslos im Arbeitsspeicher.
Ausser den "gewöhnlichen" Variabeln und den Arrays gibt es noch sogenannte
Type-Anweisungen, aber da möchte ich hier nicht näher drauf eingehen.
https://help.libreoffice.org/latest/de/ ... 90413.html
Weiteres später, wird aber noch eine kleine Weile dauern.
ich beantworte ersteinmal diese Frage:
Ich weiß erhrlich gesagt immernoch nicht genau worauf Du hinaus willst, weil ich alsMarkus hat geschrieben:Kurz zur Frage 2 in Kurzform:
„Hobby-Programmierer“ die Programmierung aus einem anderen Blickwinkel sehe.
Es gibt verschiedene Methoden Variablen zu deklarieren (Dim-Anweisung) und es gibt Variablen mit unterschiedlichsten Datentypen. Deiner Beschreibung entnehme ich, dass es bei dem Inhalt der Variablen um Texte (Strings) geht. Dann würde ich die Variable z.B. so deklarieren:
Code: Alles auswählen
Sub Main1
Dim sText as String
sText = "Mein Haus 1"
print sText
End Sub
Code: Alles auswählen
Sub Main2
Dim sText as String
Dim nZahl as Long
sText = "Mein Haus 1"
' a) Lese das ERSTE Zeichen von RECHTS
' b) wandele das Zeichen in den Datentyp INTEGER (cInt)
nZahl=Int(Right(sText,1))
' Jetzt beinhaltet die Variable eine ZAHL
nZahl = nZahl +199
print nZahl
End Sub
Es gilt dabei aber zu beachten, dass es Limitationen gibt. D.h. Du kannst eine String-Variablen nicht unendlich viel Text zuweisen. Früher waren es mal max. 256 Zeichen inklusiver Leerzeichen, usw.
Wo die heutige Limitation endet weiß ich nicht.
Beispiel:
Code: Alles auswählen
Sub Main3
Dim sText as String
sText = "Mein Haus 1"
sText =sText & " --- " & "Meine Straße"
sText =sText & " --- " & "Mein Auto"
print sText
End Sub
Und jetzt wird es ein wenig tricky:
Code: Alles auswählen
Sub Main4
Dim mText(2) as Variant
mText(0) = "Mein Haus 1"
mText(1)="Meine Straße"
mText(2)="Mein Auto"
print mText(0)
print mText(0) & " --- " & mText(2) & " --- " & mText(2)
End Sub
Diese Array besitzt 3 Felder:
Zählung = 0 – 2 = 0, 1, 2
Erstes Feld:
Code: Alles auswählen
mText(0) = "Mein Haus 1"
Code: Alles auswählen
mText(1) = "Meine Straße"
Code: Alles auswählen
mText(2) = "Mein Auto"
Das ist aber noch nicht alles.
Statt eines einfachen eindimensionalen Arrays, gibt es auch mehrdimensionale Arrays.
Man kann z.B. einen kompletten Zellbereich in einem Rutsch in ein Array einlesen
Das Array ist als Variant deklariert, somit entscheidet der Basic-Interpreter bei Aufruf des
Makros selbst, welchem Feld welcher Datentyp (String, Long, Double, usw.) zu zuweisen ist.
Sehe Dir mal diese Datei an:
Daten aus Tabelle in Ausdruck übertragen (calc)
Wenn Du die Datei öffnest, könnte es sein, dass Du bei OpenOffice einen Meldung erhälst, dass Du Updaten musst. Diese Meldung kannst Du ignorieren. Liegt nur daran, weil ich die Datei mit LibreOffice gespeichert habe.
Im dritten und vierten Tabellenbllatt bin ich kurz auf das Thema „Arrays“ eingegangen. Im Code erkennst Du die Arbeitsweise der Arrays. Und wie man diese mit Daten aus einem Zellbereich befüllt.
Nun ich könnte hier ein kleines Buch zur Verwendung von Arrays schreiben, deshalb kann ich Dir nur anraten Dich selbst mit meiner Starthilfe zu befassen und Dich im Netz weiter zu informieren.
Mit Deinen weiteren Wünschen werden ich mich auch befassen, und ja ich werde auch dort mit Arrays arbeiten, weil die Abarbeitung des Codes wesentlich schneller ist, als wenn man einzelne Zellen der Tabelle mittels Code durchklickert. D.h. die Abarbeitung und Vergleiche der Arrayinhalte geschieht ausnahmslos im Arbeitsspeicher.
Ausser den "gewöhnlichen" Variabeln und den Arrays gibt es noch sogenannte
Type-Anweisungen, aber da möchte ich hier nicht näher drauf eingehen.
https://help.libreoffice.org/latest/de/ ... 90413.html
Weiteres später, wird aber noch eine kleine Weile dauern.
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: Variablen mit Makros erstellen und mehr
Hallo Markus,
kurze Nachfrage:
Hast Du in Deiner Originaldatei für jeden Spieler ein separates Tabellenblatt angelegt?
kurze Nachfrage:
Hast Du in Deiner Originaldatei für jeden Spieler ein separates Tabellenblatt angelegt?
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: Variablen mit Makros erstellen und mehr
Hallo Markus,
kurze Nachfrage:
Hast Du in Deiner Originaldatei für jeden Spieler ein separates Tabellenblatt angelegt?
Speichere von Deiner Originaldatei unbedingt eine Sicherungskopie!
Das Makro in meinem Beispiel bitte vorerst nur in der Beispieldatei anwenden
Hier ein erstes Beispiel: Makro-Ablauf in Kurzform:
neue Namen einsetzt und jeweils das Makro startest.
Habe auf Tabelle "HIghscores" eine Button zum Makrostart hinterlegt.
kurze Nachfrage:
Hast Du in Deiner Originaldatei für jeden Spieler ein separates Tabellenblatt angelegt?
Speichere von Deiner Originaldatei unbedingt eine Sicherungskopie!
Das Makro in meinem Beispiel bitte vorerst nur in der Beispieldatei anwenden
Hier ein erstes Beispiel: Makro-Ablauf in Kurzform:
- Inhalte aus Tabelle "HIghscores" Spalte C,G und K werden in Arrays eingelesen.
- Es folgt der Namenvergleich, also ist Name in Highscore-Liste vorhanden?
- WENN JA, DANN keine Aktion
- WENN NEIN, DANN:
- Nächst freie Zelle in Spalte C ermitteln
- Nächst freie Zelle in Spalte G ermitteln
- Nächst freie Zelle in Spalte K ermitteln
- Schreibe nicht vorhandenen Namen in die Highscore-Liste.
neue Namen einsetzt und jeweils das Makro startest.
Habe auf Tabelle "HIghscores" eine Button zum Makrostart hinterlegt.
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)