Seite 1 von 1

(GELÖST)Numpad simulieren möglich ?

Verfasst: Fr 10. Sep 2021, 13:29
von BecksTown
Moin,

ist es möglich ein Numpad ähnliches Konstrukt mit Schalflächen zu erstellen ? Ich habe das Layout dafür schon fertig und habe versucht mit meinen bisherigen begrenzten Kenntnissen ein Makro für die Schaltflächen zu bauen. Ich kriege es schon mal hin, das auf Knopfdruck die jeweilige Ziffer in einer beliebigen aktiven Zelle eingetragen wird.

Jetzt zum Problem:

Wenn ich den Wert z.b 12 eintragen möchte wird die "1" eingetragen, aber sobald ich die "2" eintrage, ersetzt sie die "1".
Das Problem wiederholt sich natürlich bei jeder Schaltfläche (0-9) Wie könnte ich dieses Problem lösen ?

Zudem wäre die Frage, wie ich das mit der "Enter" taste löse ?

Auch über Lösungsansätze/Tipps würde ich mich freuen,wie ich am besten vorgehen sollte. Ich beschäftige mich noch nicht allzu lange mit diesen Thema, aber lese mir immer mehr an. Aber hier beiße ich auf Granit. :D


Beste Grüße

Re: Numpad simulieren möglich ?

Verfasst: Fr 10. Sep 2021, 23:35
von Wanderer
BecksTown hat geschrieben:
Fr 10. Sep 2021, 13:29
Jetzt zum Problem:

Wenn ich den Wert z.b 12 eintragen möchte wird die "1" eingetragen, aber sobald ich die "2" eintrage, ersetzt sie die "1"
Statt den Wert zu ersetzen muss Dein Macro den bisherigen Wert mit 10 multiplizieren und dann den neuen Tasten-Wert addieren

Code: Alles auswählen

val=10*val+Tastenwert
Mfg, Jörn

und ich frage lieber nicht, warum das in LibreOffice programmiert werden musss...

Re: (GELÖST)Numpad simulieren möglich ?

Verfasst: So 12. Sep 2021, 20:21
von Wanderer
aus PN an mich:
...
da ich aber ein windows tablet habe würde ich das gerne portable machen indem in LO Calc in einer ecke das integriete Numpad ist damit man es per touch eingeben kann.

mein macro:

Code: Alles auswählen

Sub Eins
oCell = ThisComponent.CurrentSelection
if ocell.supportsservice("com.sun.star.sheet.SheetCell") then

oCell.Value = 1

endif

End Sub
Wie sollte dich deine formel einbauen bzw. wo an welcher stelle ? Ivh kriege nämlich ein Fehlercode
Das sieht so aus, als ob Du "Dein" Macro nicht verstehst. Denn eigentlich enthält es nur eine Zeile die etwas tut.
Das oCell.Value = 1 muss ersetzt werden...

Code: Alles auswählen

oCell.Value = 10 * oCell.Value +1
und Du brauchst wohl 10 Macros um alle Ziffern von 0 bis 9 abzudecken.

Das bisherige könntest Du dann mit oCell.Value = 0 als Lösch-Macro verwenden.

Mfg, Jörn

PS: Natürlich kann man auch mit nur einem einzigen Macro arbeiten, aber dann musst Du wissen, wo der Tastenwert gespeichert wird.

Re: (GELÖST)Numpad simulieren möglich ?

Verfasst: Mo 13. Sep 2021, 07:22
von karolus
Hallo
Nur mal zur Klärung der|die|das OP hat die gleiche Frage auch ausführlich im Spamfreien openoffice.info-forum diskutiert | diskutieren lassen.
@Wanderer: es sind selbstverständlich keine 10 stumpfe Codesnipsel erforderich.

Re: (GELÖST)Numpad simulieren möglich ?

Verfasst: Mo 13. Sep 2021, 07:45
von Wanderer
@karolus: Natürlich nicht, aber wenn mich jemand fragt, wo in einem Dreizeiler das eingebaut werden muss, würde ich das als ersten einfachen Weg zum selber machen vorschlagen.

Es ist immer schwer einzuschätzen, was eine fremde Person wirklich versteht...

PS: Stephan hat im anderen Forum inzwischen eine Vollständige Lösung als Dialog eingestellt:
https://de.openoffice.info/viewtopic.ph ... 3&start=15

PPS: und er verwendet natürlich das Label des jeweiligen Buttons um den eingegebenen Wert zu ermitteln - keine 10 SUBs.