Seite 1 von 1

function, die teile eines strings auswertet

Verfasst: So, 05.08.2007 07:58
von kannenklaus
hallo

gibt es oder wie lautet ein funktion, die z.b. die zelle a1 auf die teilstrings auswertet und je nach auswertung in der zelle b1 eine wert reinschreibt.
gesuchte teilstrings sind:

"Gemeinde"
"Land"

a1=Gemeinde Nellingen dann soll in b1-->Gemeinde stehen
a1=Gemeinde Merklingen dann soll in b1-->Gemeinde stehen
a1=Land B-W dann soll in b1-->Land stehen

freue mich auf eine antwort

klaus

Re: function, die teile eines strings auswertet

Verfasst: So, 05.08.2007 09:12
von Stephan
MID

z.B.:

Code: Alles auswählen

Sub Main
With ThisComponent.Sheets("Tabelle1")
	a = .GetCellRangeByName("A1").String
	i = 0
	Do
		i = i + 1
		If MID(a,i,4) = "Land" Then
				.GetCellRangeByName("B1").String = "Land"
				Exit Sub
			ElseIf MID(a,i,8) = "Gemeinde" Then
				.GetCellRangeByName("B1").String = "Gemeinde"
				Exit Sub
		End if
	Loop While i < LEN(a)-4
End With
End Sub


Gruß
Stephan

Re: function, die teile eines strings auswertet

Verfasst: So, 05.08.2007 09:30
von kannenklaus
DANKE stepan passt genau!

Re: function, die teile eines strings auswertet

Verfasst: Di, 07.08.2007 08:30
von Hömmelmann
Das geht noch einfacher mit der Funktion " INSTR() " ; dann wird keine Do-Loop-Schleife benötigt.

Sub Main
With ThisComponent.Sheets("Tabelle1")
If Instr(.GetCellRangeByName("A1").String, "Land") > 0 Then
.GetCellRangeByName("B1").String = "Land"
Exit Sub
ElseIf Instr(.GetCellRangeByName("A1").String, "Gemeinde") > 0 Then
.GetCellRangeByName("B1").String = "Gemeinde"
Exit Sub
End if
End With
End Sub

Gruß, Friedhelm

Re: function, die teile eines strings auswertet

Verfasst: Mi, 08.08.2007 14:34
von kannenklaus
hallo friedhelm,

danke für den tipp; klappt super. in einer zeile war der code zu verbessern:

anstatt
With ThisComponent.Sheets("Tabelle1")
muss die methode getByName noch hinzugefüt werden

Code: Alles auswählen

With ThisComponent.Sheets.getByName("Tabelle1")
gruß klaus