Nummerformate, Alpahnumerische Zeichen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Nummerformate, Alpahnumerische Zeichen

Beitrag von lorbass »

wawiproblem hat geschrieben:der zweite [funktioniert] nicht
Magst du uns nun auch noch verraten, wie sich das Nicht-Funktionieren darstellt? Oder brauchst du keine weitere Unterstützung?

Bedenke, dass wir weder hinter dir stehen noch auf deinem Schoss sitzen und jedenfalls nichts von dem sehen, was du siehst.

Gruß
lorbass
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Nummerformate, Alpahnumerische Zeichen

Beitrag von Karolus »

Hallo
Im angehängten Tabellendokument ist das Tabellenereignis 'Inhalt geändert' mit einem Makro verknüpft das jede Eingabe von 3 Buchstaben gefolgt von mindestens 11 Ziffern entsprechend umstrickt.
Der Sourcecode:

Code: Alles auswählen

import re
rex = re.compile(r'(\w{3})(\d{2})(\d{3})(\d{2})(\d{3})(\d)')

def specialformat(context):
    context.setString( rex.sub(r'\1-\2-\3,\4-\5-\6',
                                context.getString()))
checkformat.ods
(10 KiB) 65-mal heruntergeladen
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Nummerformate, Alpahnumerische Zeichen

Beitrag von Karolus »

Hallo

Wie bereits im der letzten Antwort beschrieben, ist das Tabellenereignis 'Inhalt geändert'*** von Tabelle1 des Dokuments mit der Ausführung des Codes verknüpft. Daher musst du eigentlich nur deine Eingaben tätigen.

***mglw. gibts diese Tabellenereignisse in deiner OOo-version noch nicht (siehe →Rechtsklick_Tabellenreiter→Tabellenereignisse ??

Mit Sicherheit wird es ab AOO3.4 bzw. seit LO3.4 angeboten.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Nummerformate, Alpahnumerische Zeichen

Beitrag von Karolus »

Hallo
Der Code von oben hat ein paar unfeine Nebenwirkungen, neue Version hängt an.

Code: Alles auswählen

import re

rex = re.compile(r'^(\w{3})(\d{2})(\d{3})(\d{2})(\d{3})(\d)$')

def specialformat(event):
    for cell in itersingle(event):
        try:
            if not cell.Tokens and rex.match(cell.String):
                cell.setString( rex.sub(r'\1-\2-\3,\4-\5-\6', cell.String))
        except:
            pass


def itersingle( selection ):
    for r in xrange(selection.Rows.getCount()):
        for c in xrange(selection.Columns.getCount()):
            yield selection.getCellByPosition(c, r)
checkformat.ods
(10.66 KiB) 56-mal heruntergeladen
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten