[Gelöst]: Lange formatierte Zeichenketten ersetzen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

[Gelöst]: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » So, 09.06.2019 13:14

Hallo zusammen,

zwei Fragen zu Calc:

1) Lange Zeichenketten ersetzen
Beispiel eines Zelleninhalts
======================================= Anf
Essen und Trinken,





Wellness / Gesundheit,





Workshop / Seminar,
======================================= Ende
Die Zelle wurde gefüllt durch Copy/Paste aus einer Webseite und enthält wahrscheinlich (mir unbekannte) Steuerzeichen. Ich habe versucht, den obigen Inhalt in "Suchen" einzugeben und wollte dann folgenden Inhalt erhalten:

======================================= Anf
Essen und Trinken, Wellness / Gesundheit, Workshop / Seminar,
======================================= Ende

Ich habe alle möglichen Einstellungen probiert. Nichts hat geklappt. Kopiere ich den Zelleninhalt und gebe ihn unter "Suchen" ein und klicke auf "Suchen", dann lautet die Anzeige "Suchbegriff nicht gefunden", obwohl etliche Zellen diese identische Zeichenkette enthalten.

Die einzige Manipulations-Möglichkeit gelang bisher durch manuelles Ctrl-X (Ausschneiden) des ungewünschten Zellenteils jeder einzelnen Zelle, was bei mehr als 100 Zellen etwas mühsam ist.


2) Makro in "Englisch" möglich?
Am liebsten wäre mir ein Macro, das ich immer wieder benutzen kann. Ich kenne mich aber nur mit MS-Office-Makros aus. Die LO-Makros sind doch etwas unterschiedlich. Kann mir da jemand, der sich auskennt, ein Beispiel-Makro (möglichst in Englisch !!) für diesen Zweck auf die Schnelle zusammenstellen. Es muß nicht perfekt sein, nur die Richtung ungefähr, dann helfe ich mir schon selbst.

Danke erstmal!

..
Zuletzt geändert von MeckOffice am Mo, 10.06.2019 22:18, insgesamt 1-mal geändert.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

Gast

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von Gast » So, 09.06.2019 15:03

Servus,

eine Datei mit den unbekannten Zeichen erstellen und hochladen.

Gast

Mondblatt24
*****
Beiträge: 434
Registriert: So, 14.05.2017 16:11

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von Mondblatt24 » So, 09.06.2019 18:27

Hallo,
Die Zelle wurde gefüllt durch Copy/Paste aus einer Webseite...
Ein Link zu der Webseite würde auch helfen.

VG Peter
Win.10 (x64)__ LO 6.2.6 (x64); AOO Portable 4.1.6
Fragen, die zur Zufriedenheit beantwortet wurden, sollten im Betreff des Eröffnungspost mit dem Zusatz [GELÖST] versehen werden. Anleitung

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 08:13

Danke zusammen,
anbei als Anhang eine Muster-Excel-Datei mit der Spalte, um die es geht, also Löschung der langen Leerräume.

Zusätzlich bin ich gerade dabei, mich in die LO-Makrotechnik einzuarbeiten, die sich doch stark von MS-VBA unterscheidet, um derartige Aufgaben künftig schneller lösen zu können. Dabei bin ich auf die Möglichkeit gestoßen, Python statt Star-Basic-Skripte in LO zu verwenden, was allerdings zusätzliche Lernzeit für Python bedeuten würde.

Ich wollte zwar Python ohnehin lernen, weil es mir wie ein Plattform-übergreifendes (Win & Linux) Vis.Basic erscheint, weiß aber nicht, wie groß der Lernaufwand dafür ist und ob ich mich damit momentan zeitlich nicht etwas verzettele.
Randbemerkung: Neben Vis.Basic, MS-VBA und der gesamten MS-Off.Palette ich noch einige Erfahrung mit PHP, MySQL, Turbo-Pascal/Delphi

Hat jemand Erfahrung mit Python und kann mir ein paar Hinweise geben?

Danke!
Dateianhänge
Muster_279.xlsx
(9.62 KiB) 22-mal heruntergeladen
Zuletzt geändert von MeckOffice am Mo, 10.06.2019 10:49, insgesamt 1-mal geändert.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.


MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 09:07

Vorrangig ist mir zunächst die möglichst einfache Beseitigung der Leeräume in der Tabelle ohne viel Handarbeit!
Alles andere kommt danach.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 11:08

Spukt es hier?
1) Beim Ankllicken des Benachrichtig.Links in meiner Mail erscheint
Screenshot_2019-06-10 OpenOffice info - Information.png
Screenshot_2019-06-10 OpenOffice info - Information.png (12.74 KiB) 1352 mal betrachtet
2) Der Beitrag von Mondblatt24 erscheint hier nicht mehr
3) Meine Antwort darauf ebenfalls nicht.
??? Rätselhaft !!
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

Mondblatt24
*****
Beiträge: 434
Registriert: So, 14.05.2017 16:11

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von Mondblatt24 » Mo, 10.06.2019 11:19

Hallo MeckOffice,
2) Der Beitrag von Mondblatt24 erscheint hier nicht mehr
Ja, weil ich ihn gelöscht habe nachdem Du den Anhang oben eingefügt hast, und der Beitrag so gegenstandslos war.

Zu Deiner Frage:
Probier folgendes aus:
Suchen: \n|\s{2}
Ersetzen: bleibt leer

Gruß Peter

PS: Wie ich darauf komme? Ganz einfach eine Zelle kopiert und unformatiert in Writer eingefügt. So habe ich gesehen was für Formatierungszeichen (Strg+F10) sich in der Zelle versteckt haben.
Dateianhänge
So sehen die Zellen aus.odt
(8.29 KiB) 21-mal heruntergeladen
Win.10 (x64)__ LO 6.2.6 (x64); AOO Portable 4.1.6
Fragen, die zur Zufriedenheit beantwortet wurden, sollten im Betreff des Eröffnungspost mit dem Zusatz [GELÖST] versehen werden. Anleitung

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 11:46

Danke, aber leider noch kein Erfolg! So sieht meine Suche aus. Anzeige: Suchbegriff nicht gefunden!
LO-StrngSuche_01.JPG
LO-StrngSuche_01.JPG (41.47 KiB) 1317 mal betrachtet
Bin ich zu blöd?
Hast Du es selbst mal probiert an meiner Muster-Tabelle?
Könnte es an irgendwelchen sonstigen Einstellungen liegen?
Zuletzt geändert von MeckOffice am Mo, 10.06.2019 11:47, insgesamt 1-mal geändert.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

Mondblatt24
*****
Beiträge: 434
Registriert: So, 14.05.2017 16:11

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von Mondblatt24 » Mo, 10.06.2019 11:47

Hallo,
Reguläre Ausdrücke ankreuzen.

Peter
Win.10 (x64)__ LO 6.2.6 (x64); AOO Portable 4.1.6
Fragen, die zur Zufriedenheit beantwortet wurden, sollten im Betreff des Eröffnungspost mit dem Zusatz [GELÖST] versehen werden. Anleitung

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 11:55

Hallo Peter,
danke vielmals, es hat endlich geklappt!
Also bin ich doch wohl zu blöd! Dabei hatte ich doch eigentlich sämtliche Knöpfe gedrückt ...usw.
Jetzt muß ich mir dann doch ein Makro basteln, damit ich nicht jedesmal den Kopf einschalten muß! :-x
MfG, Kurt
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

Stephan
********
Beiträge: 11111
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von Stephan » Mo, 10.06.2019 12:22

z.B.:

Code: Alles auswählen

Sub Zellen_bereinigen()
  blatt = ThisComponent.CurrentController.ActiveSheet
  rd = blatt.createReplaceDescriptor()
  rd.setSearchString("\n|\s{2}")
  rd.setReplaceString("")
  rd.SearchWords = False      
  rd.SearchRegularExpression = True
  blatt.replaceAll(rd)
  MsgBox "Fertig"
End Sub
Gruß
Stephan

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 12:29

Ja, super, Stefan!
Was für ein Service! Danke Dir!
Das ist jetzt wahrscheinlich Star.Basic!
Wenn ich hoffentlich demnächst mehr Zeit habe, werde ich das mal mit Python versuchen.
Einstweilen herzlichen Dank an Euch. Ich empfehle Euch weiter!
MfG, Kurt
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

Karolus
********
Beiträge: 7071
Registriert: Mo, 02.01.2006 19:48
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von Karolus » Mo, 10.06.2019 17:20

Hallo

Da das jetzt komplett auf API-methoden aufsetzt, geht das in python praktisch genauso:

Code: Alles auswählen

def Zellen_bereinigen():
    doc = XSCRIPTCONTEXT.getDocument()
    blatt = doc.CurrentController.ActiveSheet
    rd = blatt.createReplaceDescriptor()
    rd.setSearchString("\n|\s{2}")
    rd.setReplaceString("")
    rd.SearchWords = False      
    rd.SearchRegularExpression = True
    blatt.replaceAll(rd)
Die Einrückung dient in python nicht nur der Lesbarkeit, sondern ist auch semantischer Bestandteil der Sprache, ( und soll per Konvention mit 4 Leerzeichen pro Einrückungsebene erfolgen ).
Die beiden Wahrheitswerte müssen genauso geschrieben werden wie im Quelltext.
AOO4, LO4.3, LO4.4 LinuxMint17.2

MeckOffice
*
Beiträge: 17
Registriert: Sa, 30.07.2016 11:23
Kontaktdaten:

Re: Frage: Lange formatierte Zeichenketten ersetzen

Beitrag von MeckOffice » Mo, 10.06.2019 18:02

Karolus hat geschrieben:
Mo, 10.06.2019 17:20
Die Einrückung dient in python nicht nur der Lesbarkeit, sondern ist auch semantischer Bestandteil der Sprache, ( und soll per Konvention mit 4 Leerzeichen pro Einrückungsebene erfolgen ).
Die beiden Wahrheitswerte müssen genauso geschrieben werden wie im Quelltext.
Danke auch Dir Karolus!
Die beiden Code-Blöcke haben ja eine erstaunliche Ähnlichkeit.
Wenn ich richtig verstehe, kennzeichnet die Einrückung die Zusammengehörigkeit des Code-Blocks und ersetzt dadurch quasi das "end sub" als Block-Ende im Basic.

Mit der Schreibweise der Wahrheitswerte meinst Du sicher die beiden Leerzeichen vor und hinter dem "=" Gleichheitszeichen, die in anderen Sprachen unbedeutend sind. Richtig?

D.h., man muss insgesamt pixelgenau arbeiten. Ich hoffe, es gibt Editoren, die dabei etwas helfen. Arbeitest Du mit PyCharm oder mit welchem/r Editor/IDE? Und das Python-Plugin übernimmt die Übersetzung gegenüber LibreOffice. Richtig?


.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linx-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Bei uns (www.bieha.eu) könnt Ihr Eure versteckten Talente und Fähigkeiten entdecken. Nicht nur, aber auch, rund um den Computer.

Antworten