Makros um Zelleninhalt zu löschen, nur wie?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

DerTiggr
*
Beiträge: 18
Registriert: So, 29.11.2015 15:44

Makros um Zelleninhalt zu löschen, nur wie?

Beitrag von DerTiggr »

Hallo an alle,

habe mich an Makros aufzeichnen gewagt, aber verstehe es nicht, warum es nicht genauso ausgeführt wird.

Ich möchte Zelleninhalte von 3 unabhängigen Spalten durch ein Makro löschen lassen. Bei Makroaufzeichnung wird immer nur der Inhalt der ersten Spalte gelöscht und die restlichen bleiben unverändert. Ich habe während der Aufnahme die Bereiche markiert und dann entf. gedrückt.

War das nicht richtig?

Wie muss ich es denn machen? Gelöscht werden soll B7 bis B15 // G7 bis G15 // L7 bis L15 und Q7 bis Q15

Aber wie gesagt gelöscht wird nur B7 bis B15

vielen Dank im voraus
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makros um Zelleninhalt zu löschen, nur wie?

Beitrag von Toxitom »

Hallo Tiggr,

der Makro-Recorder ist nur rudimentär und meist wenig zu gebrauchen. Auch in Deinem Fall - er zeichnet einfach nur einen Zellbereich auf. Also, vergiss ihn und mache das manuell.

Dazu solltest Du Dich natürlich ein wenig mit Makros beschäftigen;) Der Einstieg ist immer etwas schwieriger.

Das folgende Makro macht genua das, was Du willst - musst aber halt noch den Tabellennamen (hier Tabelle1 entsprechend anpassen.

Code: Alles auswählen

sub ZellenLeeren

  aZellBereiche = array("B7:B15", "G7:G15", "L7:L15", "Q7:Q15")
  
  For i = 0 to uBound(aZellBereiche)
     thisComponent.sheets.getByName("Tabelle1").getCellRangeByName(aZellBereiche(i)).clearContents(1+2+4+16)
  next

end sub
Die Funktion "ClearContents()" erwartet einen numerischen Flag, was genau gelöscht werden soll.
1: Zahlen, 2: Datum/Zeit Werte, 4: Texte und 16: Formeln.

Es gibt noch viele weitere Nummern(Indexzahlen), zu finden unter com.sun.star.sheeet.CellFlags.
Hier ein Link zur API-Beschreibung: com.sun.star.sheeet.CellFlags

Hoffe, es hilft.
Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Makros um Zelleninhalt zu löschen, nur wie?

Beitrag von Hiker »

Ich würde den Macro-Recorder nicht so pauschal verwerfen. Einfache Sachen lassen sich gut aufzeichnen und modifizieren. Einige meiner ersten Macros bezogen sich auf globales Suchen/Ersetzen und sind seit Jahren in Benutzung...

Aber wenn Du Fragen zu Code stellst, solltest Du den hier einfügen. Dann kann man sehen, was fehlt. Manchmal bekommt der Recorder die Positionen nicht richtig mit und angeblich werden auch gelegentlich Zeilen mit REM inaktiv gemacht.

Wenn Du hier code schreibst, bitte mit der Schaltfläche </> in entsprechende Markierungen einschliessen - Beispiel:

Code: Alles auswählen

REM Beispiel text ohne Funktion
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
DerTiggr
*
Beiträge: 18
Registriert: So, 29.11.2015 15:44

Re: Makros um Zelleninhalt zu löschen, nur wie?

Beitrag von DerTiggr »

Vielen Dank für die Antworten, mit eurer Hilfe habe ich es geschafft.

Jetzt wollte ich bei einem Freund die erstellte Datei aufrufen und die makros sind weg.

Wo/wie muß ich sie einfügen, damit sie beim Speichern der Datei auch an anderen PCs ausführbar sind?

Da ist sicher Standard der falsche Ort, oder?
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Makros um Zelleninhalt zu löschen, nur wie?

Beitrag von Karolus »

Hallo
»Standard ist schon richtig, nur eben nicht …meine Makros→Standard→→… sondern …»dein_Dokument.ods«→Standard→→…
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten