Automatisches Einfügen eines Zeichens in viele Zellen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von F3K Total »

Hallo,
mit folgendem Makro geht das, allerdings nur ohne Sonderzeichen.

Code: Alles auswählen

Sub Make_Formula

for i=0 To 0 'Anzahl Tabellenblätter-1
osheet=thisComponent.sheets(i)
for j=0 to 1 'Anzahl Spalten-1
for k=0 to 6 'Anzahl Zeilen-1
ocell=osheet.getcellbyposition(j,k)
ostring=oCell.string
ostring="="+ostring
oCell.Formula=ostring
next k
next j
next i
End Sub
Anbei eine kleine Testdatei, wenn Du hier das Makro "Make_Formula" ausführst, werden aus den Texten Formeln.
Wenn Du es bei Dir anwenden möchtest, mußt Du noch Deine entsprechenden Anzahlen (Tabellenblätter/Spalten/Zeilen) eintragen.
Versuch es sicherheitshalber an einer Kopie Deiner Datei.
Für die gesparten Stunden gibste mal 'nen Kaffee aus;-)
Gruß R
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von komma4 »

Habe auch einen Versuch :)


Mein Makro bearbeitet die Datenbereiche, sollte daher schneller sein als bei einzelnen Zellzugriffen.

Code: Alles auswählen

Sub de47670
' 2011-03-28

sBereich = "B1:C3"


For iBlatt = 0 to ThisComponent.Sheets().Count - 1

	oBlatt = ThisComponent.Sheets().getByIndex( iBlatt ) 

	' Bearbeitungsroutine pro Blatt
	If NOT oBlatt.isProtected() Then
		oZellBereich = oBlatt.getCellRangeByName( sBereich )
		untersucheBereich( oZellBereich )
	End If
	
Next iBlatt

End Sub




Sub untersucheBereich( oZellBereich )

' Array von Strings
mDatenArray = oZellbereich.getFormulaArray()

For i = 0 To UBound( mDatenArray )
	mZeilenArray = mDatenArray( i )
	For j = 0 To UBound( mZeilenArray )
		sZellenInhalt = mZeilenArray( j )
		If LEN( sZellenInhalt ) > 0 Then
			If NOT ( LEFT( sZellenInhalt, 1 ) = "=" ) Then
				sZellenInhalt = "=" & sZellenInhalt
				mZeilenArray( j ) = sZellenInhalt
			End If	
		End If
	Next j
	mDatenArray( i ) = mZeilenArray
Next i

oZellbereich.setFormulaArray( mDatenArray )

End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von F3K Total »

Hi Komma4,
Du willst den Kaffee...? :D
Deine beiden Makros sind besser, man muß nicht zählen, und es sind Sicherheitsabfragen drin.
Er sei Dein.

Gruß R
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von Karolus »

Hallo
Ich hab noch eine dritte Variante ohne Makro:
1. → Rechtsklick unten auf eine Tabellenreiter → Alle Tabellen auswählen
2. Markiere den Bereich
3. → Bearbeiten → Suchen und ersetzen:
Suche nach ^[^=] ersetzen durch =& , mit den Optionen [x]nur in Selektion und [x]regulärer Ausdruck

! Der Kaffee geht an mich !

Gruß karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von komma4 »

Karolus hat geschrieben:! Der Kaffee geht an mich !
Da ich keinen Kaffee trinke: gerne :D

Ich hatte es mit [^0-9] ersetzen durch =&0 probiert... natürlich ohne Erfolg :?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von F3K Total »

Hallo Karolus,
Klasse! Da sollte schon mindestens ein Cappuccino drin sein.

Kannst Du erläutern, was die einzelnen Zeichen bedeuten?
Karolus hat geschrieben:Suche nach ^[^=] ersetzen durch =&
Ich deute das so.
-das erste ^ meint vermutlich "Am Anfang des Ausdrucks"
-die eckigen Klammern "ohne"
-das zweite ^ vielleicht wieder "Am Anfang"?
-das =& wird ersetzt, wieso benötigt man ein &?

Kennst Du eine Beschreibung der Anwendung der regulären Ausdrücke in der Suche?
Denn ich habe anderswo auch schon sowas gesehen [:digit] oder [:alpha] und wußte nix mit anzufangen.

Gruß R
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von komma4 »

F3K Total hat geschrieben:Kennst Du eine Beschreibung der Anwendung der regulären Ausdrücke in der Suche?
Suchen&Ersetzen Dialog aufrufen, F1 drücken, dem Link Liste der regulären Ausdrücke folgen
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von Karolus »

Hallo
Das ^ hat zwei Bedeutungen, steht es ganz am Anfang steht es für " suche nach dem folgenden was_auch_immer_kommen_mag nur wenns am Anfang des Texts steht", die zweite Bedeutung (innerhalb der Regex) schließt das folgende Zeichen/Zeichengruppe aus.
Die [ ] um etwas herum definieren das was drinnen steht als Zeichengruppe.

^[^=] bedeutet also: Suche nach (einem beliebigen Zeichen aussereinem =, am Textanfang)

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von clag »

Hallo F3K Total
und natürlich alle anderen die es interessiert :)

hier zwei Seiten die noch etwas mehr und detailliertere Infos zu regulären Ausdrücken haben

http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
http://www.danielfett.de/internet-und-o ... ausdruecke
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Beitrag von F3K Total »

Hallo zusammen,
vielen Dank für die Tips und Links. :D
Da muss man sich dann wohl etwas länger mit beschäftigen. :shock:
Banal sind die regulären Ausdrücke nicht.

beste Grüße von R
Antworten