Finde Großbuchstaben und setze davor ein Leerzeichen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Finde Großbuchstaben und setze davor ein Leerzeichen

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von Skogtroll » Di, 21.04.2015 19:18

clag hat geschrieben:Viel Spaß damit
...JAAAAHHHH! Habe ich -> so eben getestet! Dafür ein ganz großes Danke!!! Damit wird's natürlich richtig elegant!!!

O.K.! Die Formel ist toll! ...aber verwenden werde ich jetzt Dein Script bzw. Deine Funktion clag!
clag hat geschrieben:das gemaule :wink: von

paljass hat geschrieben:
... es wird aber Rosanna - T O T O
daraus !?!

und die Tatsache das so ein Formel-Monster anfällig für Fehler ist, besonders wenn die Formel über die Eingabezeile hinausgeht
(ein Zeichen versehentlich gelöscht und schon wird es echt blöd bei der Fehlersuche).
...das "gemaule" von... ...lieb herzlich Euer Umgangston :wink: ...der jedoch mit respektvoller Wertschätzung einhergeht: Gefällt mir! Hier bleib ich! :D Ich muss nicht nur schmunzeln, herzhaft lachen trifft es eher!

Ja, stimmt schon, so'ne Monster-Formel ist fehleranfällig. Allerdings sind die Zellen, in der diese Formel ist, gesperrt.

Aber nun sind der paljass und der Skogtroll hochzufrieden!

Danke Dir clag und Allen Anderen, die mir hier geholfen haben!

LG
Skogtroll

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von clag » Di, 21.04.2015 13:08

Hallo Karolus,

manchmal ist auch der Weg das Ziel ;)
und Skogtroll wollte ja gern etwas formelartig dynamisches da er immer wieder neue "Titel" einfügt.

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von Karolus » Di, 21.04.2015 12:57

Oha - was für ein Aufwand

schlicht zwei Durchgänge →Suchen und ersetzen:
  • 1. suche [A-Z]+|- ersetzen durch <Leertaste>$0
    • [x]regulärer Ausdruck
      [x]Gross/Kleinschreibung
    2. suche ^<Leertaste> ersetzen durch nichts
Ja - `<Leertaste>` meint die Eingabe eines Leerzeichens an dieser Stelle

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von clag » Di, 21.04.2015 12:02

Hallo TrueColor,
TrueColor hat geschrieben:Als (1 AND 2) OR 3
ist was ich beabsichtigte

das or habe ich noch nachträglich rein gewürgt um eine weiteren Code zu vermeiden :wink:

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von TrueColor » Di, 21.04.2015 11:56

Hallo Clag,

nur zum Verständnis:

wie ist
clag hat geschrieben:

Code: Alles auswählen

if mDiff(i)>0 and mDiff(i-1)=0 or mid(mytxt,i,1)= "-"then
zu lesen?

Als (1 AND 2) OR 3 oder als 1 AND (2 OR 3)?

Ich hab da immer meine Schwierigkeiten, da ja Logikoperatoren m.W.n. gleichrangig sind.

Danke!

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von clag » Di, 21.04.2015 11:26

Hallo Skogtroll,

das gemaule :wink: von
paljass hat geschrieben:... es wird aber Rosanna - T O T O
daraus !?!
und die Tatsache das so ein Formel-Monster anfällig für Fehler ist, besonders wenn die Formel über die Eingabezeile hinausgeht
(ein Zeichen versehentlich gelöscht und schon wird es echt blöd bei der Fehlersuche).

Aus diesem Gründen habe ich mal eine Funktion CAPSPACER() erstellt die nur dem ersten Großbuchstaben einer Reihe ein Leerzeichen voranstellt, also Gruppennamen oder Titel in Großbuchstaben werden nicht auseinandergerissen

Code: Alles auswählen

Function CAPSPACER(mytxt as string)
	iLmax = len(mytxt)
	dim mMyTxt(1 to iLmax)
	dim mLoTxt(1 to iLmax)
	dim mDiff(1 to iLmax)
	for i=1 to len(mytxt)
		mMyTxt(i) = ASC(mid(mytxt,i,1))
		mLoTxt(i) = ASC(mid(lcase(mytxt),i,1))
		mDiff(i) = mLoTxt(i)-mMyTxt(i) 
	next
	for i=ubound(mDiff)-1 to 2 step -1
		if mDiff(i)>0 and mDiff(i-1)=0 or mid(mytxt,i,1)= "-"then
		mytxt = left(mytxt,i-1) & " " & right(mytxt,(len(mytxt)-i+1))
		end if
	next
	if mytxt="0" then mytxt=""
	CAPSPACER=mytxt
End Function
copiere den obigen Code und füge ihn unter
Menü - Extras - Makros - Makros Verwalten - OpenOfficeBasic - Standard - Funktionen dort komplett ein.

Danach kannst du diese wie jede andere Funktion nutzen also CAPSPACER(B4)
Capspacer.png
Capspacer.png (6.39 KiB) 8892 mal betrachtet
Viel Spaß damit

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von Skogtroll » Mo, 20.04.2015 22:00

WiM hat geschrieben:Bitte achtet auf notwendige Angaben und Pro Thread ein Thema
...ja so soll es auch sein und so bleibt es übersichtlich! Manchesmal ergibt sich halt immer das eine aus dem anderen... :D

Das mit meinem JAVA hat sich geklärt: Ich hatte JAVA installiert, aber aus irgend welchen Gründen fehlerhaft -> deinstalliert -> neu installiert -> jetzt wird es automatisch von OO erkannt!!!

-----

Back to the roots: Gemäß meiner Eingangsfrage hat sich mein Problem dank Eurer Hilfe erledigt! Die Formel funktioniert wunderbar!!

Danke Euch Allen nochmals!

LG
Skogtroll

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von TrueColor » Mo, 20.04.2015 13:25

Skogtroll hat geschrieben:Wie aktiviere ich denn Java für OO?
OO erkennt normalerweise, ob JRE installiert ist.
Ist "JRE" etwas spezielles[?]
http://de.wikipedia.org/wiki/Java-Laufzeitumgebung
wo sehe ich denn, dass ich dieses auf meinem Rechner habe?
In den inst. Programmen als "Java" oder "Java Runtime Environment". Wenn du nicht aufgeräumt hast, existiert sogar ein Eintrag im Startmenü.
Und wenn nicht, wo kriege ich das her?
von oracle.com oder java.com
Ich hatte schon seinerzeit via Google gesucht, aber nix gefunden.
Wann war denn "seinerzeit"? ;-)
Google listet (bei mir) sowohl mit "JRE" als auch mit "Java Runtime Environment" sofort unzählige Downloadmöglichkeiten auf der ersten Seite auf.

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von Skogtroll » Mo, 20.04.2015 10:20

paljass hat geschrieben:... es wird aber Rosanna - T O T O
...ja, da kann man mal sehen, wie gut es läuft!!! :wink: ...kleiner Scherz!!!

Ja! Du hast Recht! ...aber es stört mich in diesem Falle auch nicht! Ich könnte natürlich in der Primärzelle "Toto" anstatt "TOTO" schreiben, dann würde auch "Toto" dabei rauskommen.

Ist aber alles O.K.! Die Leerzeichenin dem Bandnamen stören mich jetzt nicht!

-----

Etwas zum Hintergrund meines Threads: Ihr habt es vielleicht bemerkt -> ich mache Musik und spiele in einer Coverband. Ich arbeite mit einem kleinen Tablet am Mikrofoständer welcher mir mit einer einfachen html-Datei in einem I-Browser die Songlisten, Hinweise zu den Songs (welche Sounds ich schalten muss) und mir PDF-Datein in einem neuen Tab öffnet.
Und dazu brauche ich das html-Format: Alle aufgelisteten Songs sind verlinkt zu PDF-Dateien (wenn ich mal einen Blick auf die Harmonien und/oder den Ablauf eines Songs luschern muss :wink: )

Da ich keine Lust habe, immer den kpl. html-Quellcode neu schreiben, hatte ich die Idee, mir das Ganze mit einer Tabellencalculation "ausrechnen/zusammensetzen" zu lassen. Ich sortiere mir schnell die Songs in meiner *.ods-Datei und dann kopiere ich mir aus der Ergebnisspalte den html-Body Quelltext kpl. fertig raus -> eingefügt in den Body meiner html-Vorlage, neuer Name für die html-Datei und schon ist es ein schönes Proben bzw. schöner Auftritt.

Vorher hatte ich einen einfachen DIN-A4 Ordner, prall gefüllt mit Blättern in Klarsichtfolie... ...sagen wir mal so: 1. ist ein Tablet wesentlich (!) kleiner, 2. passen auf einem Tablet ein paar hundert (...und noch mehr!) DIN-A4 Ordner drauf und 3. finde ich jetzt ein Script/PDF und Sunds zu einem Stück in einem Bruchteil der Zeit... ...sucht mal den jetzt zu probenden Song aus so einem Stapel DIN-A4 Blätter raus...

-----

@Wim: ...ahhh JAAAHHH!!!

O.K., so geht das in OO!! Danke Dir Wim!

Allerdings:
OpenOffice benötigt eine Java-Laufzeitumgebung(JRE), um diese Aufgabe durchführen zu können. Bitte installieren Sie eine JRE und starten Sie dann OpenOffice neu.
...diese Meldung hatte ich schon öfters (auch in Writer)... ...ich verstehe sie nur nicht: Ich habe Java installiert und kriege da nix eingerichtet :shock:

Wie aktiviere ich denn Java für OO? Ist "JRE" etwas spezielles, wo sehe ich denn, dass ich dieses auf meinem Rechner habe? Und wenn nicht, wo kriege ich das her?

Ich hatte schon seinerzeit via Google gesucht, aber nix gefunden.

-----

Noch eine andere Frage: In der Hauptsache arbeite ich mit OO an einem normalen Rechner/NB. Ich habe jetzt ganz aktuell auch ein Tablet, hier muss ich nun nicht in der Hauptsache mit OO arbeiten, habe es dennoch für kleinere Arbeiten in OO installiert.

Hier macht der rechte Bildlauf extreme Probleme, wenn ich versuche ihn mit dem Finger "zu fassen"! Hat das einen Grund? ...oder gibt es eine Systemeinstellung, in der man diesen rechten Bildlauf verbreitern kann?!

Danke Euch Allen nochmals!

LG
Skogtroll

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von paljass » Mo, 20.04.2015 09:47

Hi Skogtroll,
Dank der Mega-Formel läuft's bei mir vorzüglich!!!
Verstehe ich jetzt nicht ganz!
"Rosanna-TOTO" ...aus dem soll dann "Rosanna - TOTO" werden.
... es wird aber Rosanna - T O T O
daraus !?!

Gruß
paljass

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von Skogtroll » Mo, 20.04.2015 08:02

Danke für Deinen Hinweis Chris!
ChristianAC hat geschrieben:nachdenkliche Grüsse, Chris
...weil es keine Events für Tabellenblätter usw. wie in Excel gibt?! Na ja, VBA in Excel ist schon sehr mächtig... ...aber für meine Zwecke reicht mir OO.

Außerdem habe ich keine Lust mehr, mich dem MS-Diktat in Sachen Programm-Layouts zu unterwerfen. Verschlimmbessern, das können die sehr gut! Ganz zu schweigen von den Kosten...

Mir reicht OO völlig und bis auf ein paar Kleinigkeiten (in Writer) gefällt mir das Programmlayout sehr sehr gut! Kann man besser mit arbeiten, als mit diesem "Registerkarten-System"... :D

Euch Allen nochmals herzlichen Dank! Dank der Mega-Formel läuft's bei mir vorzüglich!!!

LG
Skogtroll

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von ChristianAC » So, 19.04.2015 23:36

zu erreichen über Extras - Makros - Makros verwalten...
und dann ein Modul bearbeiten,dann kommt das BASIC-Fenster

unter Extras - Anpassen gibt es Events wie öffnen,speichern des Docs,Programmstart/ende...

(zumindest war das in Version 3.0.0 noch so,die ich nutz')

zu den ganzen Worksheet-Events gibt es aber,wenn ich da richtig liege,keine Alternative im OpenOffice.

nachdenkliche Grüsse, Chris

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von Skogtroll » So, 19.04.2015 22:12

Danke für Eure Antworten!!!

@Clag: KLAPPT!!! Vielen Vielen Dank! ...da hat mal jemand um eine Ecke mehr gedacht: "Soviel geklammertes wie es Großbuchstaben gibt und dann mach da mal ein Leerzeichen rein" ...mal so grob quergedacht gesagt... :D

By the way: Ich hatte die Suche hier im Forum bemüht, aber leider bin ich Deinen erwähnten Beitrag nicht gestoßen. Dank Deiner Aufmerksamkeit bin ich nun weiter gekommen! Danke!

-----

@Winfried: Auch Dir ein großes Danke! ...aber mir ist die Formel-Lösung in diesem Fall symphatischer! Dein Vorschlag wäre aber keine Formel ...oder?!

In Excel kenne ich den VBA-Editor, dort kann man Makros oder Skript-Anweisungen in den Tabellenblättern und/oder global in der Tabelle hinterlegen. Hat OO-Calc auch so etwas? Ich bin da noch nicht so bewandert.

Danke Euch Allen nochmals!!!

LG
Skogtroll

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von komma4 » So, 19.04.2015 21:35

Was 'ne Formel, LOL

Es geht auch mit Suchen & Ersetzen:

Suchen nach:

Code: Alles auswählen

([a-z])([:upper:])(.*)
Ersetzen durch:

Code: Alles auswählen

$1 $2$3
Optionen Groß-/Kleinschreibung und Regulärer Ausdruck müssen gesetzt sein.

So oft die Taste "Ersetze alle" drücken, bis die Meldung "Suchbegriff nicht gefunden" ausgegeben wird (maximal die maximale Anzahl der Grossbuchstaben in einer Zelle)

Den Bindestrich bekommste auch schnell mit der Ersetzen-Funktion weg^^

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

von clag » So, 19.04.2015 19:18

n'Abend Skogtroll,

hahah das Thema hatten wie gerade guckst du hier
oder nimmst gleich folgendes Formel-Monster,
welches aber genau das tut was du möchtest

=GLÄTTEN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(B4;"A";" A");"B";" B");"C";" C");"D";" D");"E";" E");"F";" F");"G";" G");"H";" H");"I";" I");"J";" J");"K";" K");"L";" L");"M";" M");"N";" N");"O";" O");"P";" P");"Q";" Q");"R";" R");"S";" S");"T";" T");"U";" U");"V";" V");"W";" W");"X";" X");"Y";" Y");"Z";" Z");"Ä";" Ä");"Ö";" Ö");"Ü";" Ü");"-";" -"))


viel Spaß :)

PS
es sollte klar sein das die Formel nur zum Umwandeln dient und danach der neue Titel kopiert und als Text eingefügt wird.

Nach oben