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...?

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
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.
Da muss man sich dann wohl etwas länger mit beschäftigen.
Banal sind die regulären Ausdrücke nicht.
beste Grüße von R