Discussion:
Calc: leere Zellen suchen und ersetzen
Oliver Rath
2007-12-08 16:52:30 UTC
Permalink
Hallo Liste,

wie kann ich leere Zellen im "Suchen und Ersetzen"-Dialog finden? In
regulären Ausdrücken mit "^","$","^$","\n" funktioniert alles nicht.

Welcher (reguläre) Ausdruck matcht auf eine leere Zelle? Nach nichts
suchen geht ja auch nicht, da dann der Dialog ausgraut...

TfH,

Oliver
Boris Kirkorowicz
2007-12-08 17:07:02 UTC
Permalink
Hallo,
Post by Oliver Rath
Welcher (reguläre) Ausdruck matcht auf eine leere Zelle? Nach nichts
suchen geht ja auch nicht, da dann der Dialog ausgraut...
mal ein Schuss ins Blaue, ohne es ausprobiert zu haben: geht es
vielleicht mit "" ?


Gruss Greetings
Boris Kirkorowicz
--
Falls Ihre eMail versehentlich im Spamfilter haengengeblieben zu sein
scheint, bitte das Formular unter http://www.kirk.de/mail.shtml nutzen.
If your eMail seems to be caught by the SPAM filter by mistake, please
use the form at http://www.kirk.de/mail.shtml to drop me a note.
Oliver Rath
2007-12-09 15:00:33 UTC
Permalink
Post by Boris Kirkorowicz
Hallo,
Post by Oliver Rath
Welcher (reguläre) Ausdruck matcht auf eine leere Zelle? Nach nichts
suchen geht ja auch nicht, da dann der Dialog ausgraut...
mal ein Schuss ins Blaue, ohne es ausprobiert zu haben: geht es
vielleicht mit "" ?
Mit ausprobieren: es geht nicht ;-)

Gruß

Oliver
Stefan Weigel
2007-12-08 17:07:05 UTC
Permalink
Hallo Oliver,
Post by Oliver Rath
wie kann ich leere Zellen im "Suchen und Ersetzen"-Dialog finden?
Hilft es Dir, wenn Du die leeren Zellen alle markiert bemommst? Du
könntest dann etwas Eintippen und die Eingabe mit ALT+ENTER
abschließen, dann steht der Eintrag in allen vormals leeren Zellen.

Makro zum Markieren der leeren Zellen:
http://stefan-weigel.de/?ID=80

Gruß

Stefan
Oliver Rath
2007-12-09 16:39:02 UTC
Permalink
Post by Stefan Weigel
Hallo Oliver,
Post by Oliver Rath
wie kann ich leere Zellen im "Suchen und Ersetzen"-Dialog finden?
Hilft es Dir, wenn Du die leeren Zellen alle markiert bemommst? Du
könntest dann etwas Eintippen und die Eingabe mit ALT+ENTER abschließen,
dann steht der Eintrag in allen vormals leeren Zellen.
http://stefan-weigel.de/?ID=80
Danke für den Tipp. Das Problem ist nur, das ich beim Abschluss mit
Alt-Enter den Fehler "Einfügen bei Mehrfachselektion nicht möglich"
bekomme. Scheint nur bei rechteckigen Bereichen zu funktionieren.

Gibt es da Abhilfe?

TfH

Oliver
Werner Tietz
2007-12-09 17:09:48 UTC
Permalink
Hallo Oliver

Oliver Rath schrieb:
...
Post by Oliver Rath
Danke für den Tipp. Das Problem ist nur, das ich beim Abschluss mit
Alt-Enter den Fehler "Einfügen bei Mehrfachselektion nicht möglich"
bekomme. Scheint nur bei rechteckigen Bereichen zu funktionieren.
Gibt es da Abhilfe?
Schau dir mal folgendes an
http://homepages.paradise.net.nz/hillview/OOo/IannzGotoSpecial.sxc
Das Dokument enthält ein Makro zum suchen und Ersetzen von "Zelltypen"
u.a. kannst du damit auch leere Zellen finden, und auch Ersetzungen
einfügen.
(der Makrocode der auf Stefans Seite zitiert wird ist daraus extrahiert)

Gruß Werner
Stefan Weigel
2007-12-09 17:20:16 UTC
Permalink
Hallo Oliver,
Post by Oliver Rath
Danke für den Tipp. Das Problem ist nur, das ich beim Abschluss mit
Alt-Enter den Fehler "Einfügen bei Mehrfachselektion nicht möglich"
bekomme. Scheint nur bei rechteckigen Bereichen zu funktionieren.
Ach Mist! Man stolpert von einer Schwelle zur nächsten, wie dumm.

Es wäre freilich möglich, das Makro, das die leeren Zellen
selektiert, dahingehend zu modifizieren, dass es in einem Dialog
nach einer Eingabe frägt, die dann in alle leeren Zellen eingetragen
wird.

Wenn du sowas brauchst und wenn es sich wirklich lohnt, könnte ich
versuchen, das für Dich zu machen. Ich würde allerdings erst in ein
paar Tagen die Zeit dazu finden.

Ansonsten: Nein, ich verwerfe den gerade aufgekommenen Gedanken, man
könne die Datei ja im XLS-Format speichern, die erforderliche Aktion
dann mit einer gewissen proprietären Software durchführen und dann
wieder mit OOo weiterarbeiten. ;-)

Gruß

Stefan
Jörn Schwarz
2007-12-10 08:21:34 UTC
Permalink
...das Problem wurde auf der Liste
bereits am 2.6.2006 abschließend gelöst.
Im folgenden gebe ich den Text wieder,
den ich mir damals abgespeichert habe
(ich weiß aber leider nicht mehr,
von wem er stammt):

"...
Auf der deutschen Users-Mailingliste von OpenOffice.org haben wir die
Frage von Vera Unverzagt besprochen, wie man in Calc die leeren Zellen
eines Zellbereiches mit einem bestimmten Eintrag versehen kann.

Hier als Beispiel ein Basic-Makro, das diese Aufgabe übernimmt.

REM ***** Hier beginnt der Makrocode *****

sub LeerzellenErsetzen()

Dim oSel as Object
Dim iErsteZeile as Integer
Dim iErsteSpalte as Integer
Dim iLetzteZeile as Integer
Dim iLetzteSpalte as Integer
Dim iZeile as Integer
Dim iSpalte as Integer
Dim sEinfuegewert as string

oSel = thisComponent.getCurrentselection()
iErsteSpalte = oSel.rangeAddress.startColumn
iErsteZeile = oSel.rangeAddress.startRow
iLetzteSpalte = oSel.rangeAddress.EndColumn
iLetzteZeile = oSel.rangeAddress.EndRow

sEinfuegewert = Inputbox("Einzufügender Text:")
if sEinfuegewert = "" then exit sub

for iZeile = 0 to iLetzteZeile - iErsteZeile
for iSpalte = 0 to iLetzteSpalte - iErsteSpalte
if oSel.getCellByPosition(iSpalte,iZeile).string = "" then
oSel.getCellByPosition(iSpalte,iZeile).string = sEinfuegeWert
endif
next iSpalte
next iZeile

end Sub

REM ***** Ende des Makrocodes *****


Wie funktioniert das Makroprogramm?

Zunächst ermitteln wir mit thisComponent.getCurrentselection() den
momentan markierten Zellbereich. StartColumn, StartRow, EndColumn,
EndRow verraten die erste und letzte Zeile bzw. Spalte des Bereichs. Die
Zellen des Bereichs werden in zwei verschachtelten For-Next-Schleifen
durchlaufen. Der Inhalt der Zelle wird mit
oSel.getCellByPosition(iSpalte,iZeile).string angesprochen. Ist dieser
leer, so setzen wir ihn auf den Einfügewert, den wir vom Bediener mit
der Inputbox-Funktion erfragt haben.

Das Beispiel funktioniert nicht mit mehrfachen, nicht zusammenhängend
markierten Bereichen. Außerdem können nur Textwerte, also keine Zahlen
oder Formeln eingegeben werden. Dazu müsste das Makro etwas erweitert
werden.


Und hier die Klickanleitung, wie man das Makro in seiner
OpenOffice.org-Umgebung einbauen kann:

- Extras | Makros | Makros verwalten | OpenOffice.org Basic...
- "Meine Makros" | Neu
- Es öffnet sich der Makroeditor.
- Der Cursor blinkt vor "Sub Macro... End Sub"
- Ersetze diese Angabe durch den hier blau dargestellten Makrocode
- Makroeditor schließen


Um das Makro zu starten, wählt man Extras | Makros | Makros ausführen...
und blättert unter "Meine Makros" auf, bis der Makroname
"LeerzellenErsetzen" erscheint. Diesen markieren und auf "Ausführen"
klicken.

Zur Vereinfachung kann man sich zum Starten des Makros über "Extras |
Anpassen..." auch ein Symbol in die Symbolleiste legen."

Jörn
Winfried Rohr
2007-12-10 23:20:50 UTC
Permalink
Post by Jörn Schwarz
den ich mir damals abgespeichert habe
(ich weiß aber leider nicht mehr,
http://www.stefan-weigel.de/?ID=68

Cheers
Winfried
--
re-Solutions.de Software Test Engineering Mainz Germany Europe
meine OOo Seiten: http://www.re-solutions.de/ooo/
Loading...