❤️ Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! ❤️
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
bastel
Beiträge: 4
Registriert: Do 27. Okt 2022, 10:24

Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von bastel » Do 27. Okt 2022, 10:35

Hallo,
hat jemand eine Idee wie man das am einfachsten hinbekommt?
Ich hab folgendes durch die Makroaufzeichnung gefunden:
dispatcher.executeDispatch(oColumn, ".uno:ChangeCaseToTitleCase", "", 0, Array())
leider kann man da keine Spalten übergeben.
Dann gebe es noch die Funktion "Proper" die aber nur Strings bzw. Arrays als Parameter annimmt.



Danke im Voraus
Gruß Bastel

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von karolus » Do 27. Okt 2022, 11:30

Hallo
selektiere die Spalte und →→Format→→Text→→Jedes Wort gross Schreiben

oder per shortcut <alt>F … j
und schon wieder etwas makro-code eingespart!!
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

bastel
Beiträge: 4
Registriert: Do 27. Okt 2022, 10:24

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von bastel » Do 27. Okt 2022, 11:43

Hallo Karolus,
danke, aber kenne ich schon.
Ich brauche das per makro weil ich dass in sehr vielen Dokumenten in verschiedenen Spalten machen muß.
Und das von "Hand" kein Spass macht.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von karolus » Do 27. Okt 2022, 13:00

Na dann:

Code: Alles auswählen

def one_doc_example():
    doc = XSCRIPTCONTEXT.getDocument() 
    columns = doc.Sheets[0].Columns #erstes Tabellenblatt spalten-"Container"
    for char in "ACFH7": #Spalte A C F H…
        if char.isdecimal():
            char = int(char) # …oder per index 7
        target = columns[char].queryContentCells(4) #4→Text #+16→auch Formelzellen
        for single_range in target:
            data = single_range.DataArray
            out = []
            for row in data:
                out.append([entry.title() for entry in row])
            single_range.DataArray = out
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

bastel
Beiträge: 4
Registriert: Do 27. Okt 2022, 10:24

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von bastel » Do 27. Okt 2022, 13:09

Hi Karolus,
sorry blöde Frage:
ich arbeite mit WIndows Libre Office 7.4
Welche Makrosprache ist das?
In Basic und Javascript bekomme ich es nicht zum laufen :oops:

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von karolus » Do 27. Okt 2022, 13:20

Das ist python

und mit apso.oxt hast du schonmal ne Basis zu organisieren etc.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

bastel
Beiträge: 4
Registriert: Do 27. Okt 2022, 10:24

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von bastel » Do 27. Okt 2022, 13:45

:D Works like Charm
Danke !!!

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Beitrag von karolus » Do 27. Okt 2022, 17:08

Hallo
das Beispiel oben ist ein wenig "quick & dirty" , so kannst du natürlich nur auf die Spalten A bis Z zugreifen, oder per index auf 0 bis 9.

Hier ein paar Beispiele:

Code: Alles auswählen

doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets.Tabelle1 #Objektzugriff geht nur bei Tabellennamen ohne Leerzeichen
sheet = doc.Sheets["Tabelle1"] # Zugriff über den Namen
sheet = doc.Sheets[0] #Indexzugriff erste Tabelle
sheet = doc.Sheets[-1] #indexzugriff letzte Tabelle
sheets = doc.Sheets[:2] # slice auf die erste und zweite Tabelle

cellrange = sheet[: , 2:5] # Zellbereich auf alle Zeilen von Spalte C bis Spalte E
cellrange = sheet["A3:F42"] # der "gängige" Zugriff per Bereichsadresse
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten