Seite 1 von 1

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Mo, 28.03.2011 20:37
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Mo, 28.03.2011 21:24
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Mo, 28.03.2011 21:57
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Mo, 28.03.2011 23:22
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Di, 29.03.2011 04:44
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 :?

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Di, 29.03.2011 06:57
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Di, 29.03.2011 07:05
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Di, 29.03.2011 07:25
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Di, 29.03.2011 07:45
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

Re: Automatisches Einfügen eines Zeichens in viele Zellen

Verfasst: Di, 29.03.2011 20:27
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