"Hans Müller" schrieb:
du könntest eine benutzerdefinierte Funktion verwenden.
Speicher die Funktion in einem Standardmodul:
Function ZeichenRechts(strCheck As String, _
strMatch As String) As Integer
ZeichenRechts = InStrRev(strCheck, strMatch)
End Function
In einer Zelle dann folgende Formel um das ersten Leerzeichen von rechts zu ermitteln:
=ZeichenRechts(A1;" ")
Diese Formel lässt sich auch mit anderen Formel verschachteln.
--
Mit freundlichen Grüßen
Melanie Breden
_____________________
[Microsoft MVP für Excel]
Es schrieb Melanie Breden:
>
> Function ZeichenRechts(strCheck As String, _
> strMatch As String) As Integer
> ZeichenRechts = InStrRev(strCheck, strMatch)
> End Function
>
> In einer Zelle dann folgende Formel um das ersten Leerzeichen von
> rechts zu ermitteln: =ZeichenRechts(A1;" ")
>
Vielen Dank für die schnelle Hilfe! Ich bekomme jedoch eine Null als
Antwort. Da ich mich mit VBA einfach wenig auskenne; ich habe ein Modul
erstellt und Deine Funktion so reinkopiert. Wird der Unterstrich als
Leerzeichen interpretiert?
Verwendete Excel Version übrigens Excel 2000. Könntest Du das mal
verifizieren? Ist das allenfalls mit Modul nicht OK?
Vielen Dank für die Hilfe!
Gruss Hans
=FINDEN("°";WECHSELN(A1;" ";"°";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))
MfG Ullrich
- Excel 2000 -
--
"Hans Müller" <nospam.sc...@bluewin.ch> schrieb im Newsbeitrag news:uuAQfld...@TK2MSFTNGP10.phx.gbl...
Hallo Hans,
Ohne VBA ist's etwas kompliziert, aber versuch mal
=FINDEN("xxx";WECHSELN(A1;" ";"xxx";LÄNGE(A1)- <== Zeilenumbruch!
LÄNGE(WECHSELN(A1;" ";"")));1)
Der Satz steht in A1 und darf nicht die Zeichenfolge "xxx" (ohne die
"") enthalten.
--
Als XL-Lehrling grüsst
Eberhard mit XL 2000
> Hallo Hans, eine Formellösung:
>
> =FINDEN("°";WECHSELN(A1;" ";"°";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))
>
> MfG Ullrich
> - Excel 2000 -
Euch beiden herzlichen Dank, das werde ich mir morgen reinziehen, ich
verstehe hier die Formel nicht ganz. Er soll was finden was nicht
vorkommt, die Formel WECHSELN muss ich mir anschauen, die scheint mir
offensichtlich zuständig zu sein um das Pferd von hinten aufzu zäumen.
Vielen Dank!
Schönes Wochenende wünscht Hans
"Hans Müller" schrieb:
der Unterstrich steht für einen Zeilenumbruch im VBA-Code und sollte dort bleiben :-)
Die Funktion gehört unverändert in ein Modul, soweit ist alles ok.
In der Formel in einer Zelle gibst du im zweiten Parameter das Zeichen an, welches du ermitteln willst,
in deinem Fall eben einen Leerstring (" ")
Wenn in A1 deine Zeichenkette Test Test Test steht, dann liefert die Formel:
=ZeichenRechts(A1;" ") als Ergebnis 10.
Klappt es jetzt?
Melanie's Makro funktioniert bei mir.
Hans Müller <nospam.sc...@bluewin.ch> schrieb:
>>
>> =FINDEN("°";WECHSELN(A1;" ";"°";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))
> ich verstehe hier die Formel nicht ganz. Er soll was finden was nicht
>vorkommt, [....]
WECHSELN(A1;" ";"") gibt den Text bereinigt um die Leerzeichen wieder.
LÄNGE(WECHSELN(A1;" ";"")) gibt die Zeichenzahl dieses gekürzten
Textes zurück.
LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";"")) ergibt die Anzahl der in A1
enthaltenen Leerzeichen, in Deinem Beispiel = 2.
WECHSELN(A1;" ";"°";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))) fügt in A1
anstelle des zweiten Leerzeichens bei Ullrich das Zeichen ° bzw bei
mir xxx ein.
Finden(....) gibt die Position des eingefügten Dummy-Textes (° bzw.
xxx) zurück.
Du kannst das übrigens selbst verfolgen, wenn Du oben in der
Eingabezeile (?) die Formelteile markierst und dann die F9 Taste
drückst. Dann wird der Wert des Formelteiles angezeigt. Nicht
vergessen: anschließend die Esc Taste drücken, sonst wird der
Formelteil durch den Wert ersetzt.
Es schrieb Melanie Breden:
> Hallo Hans,
>
>>>
>>> Function ZeichenRechts(strCheck As String, _
>>> strMatch As String) As Integer
>>> ZeichenRechts = InStrRev(strCheck, strMatch)
>>> End Function
>>>
>>> In einer Zelle dann folgende Formel um das ersten Leerzeichen von
>>> rechts zu ermitteln: =ZeichenRechts(A1;" ")
>>>
>
> der Unterstrich steht für einen Zeilenumbruch im VBA-Code und sollte
> dort bleiben :-)
> Die Funktion gehört unverändert in ein Modul, soweit ist alles ok.
>
> In der Formel in einer Zelle gibst du im zweiten Parameter das
> Zeichen an, welches du ermitteln willst, in deinem Fall eben einen
> Leerstring (" ")
>
> Wenn in A1 deine Zeichenkette Test Test Test steht, dann liefert die
> Formel: =ZeichenRechts(A1;" ") als Ergebnis 10.
>
> Klappt es jetzt?
>
> --
> Mit freundlichen Grüßen
> Melanie Breden
>
> _____________________
> [Microsoft MVP für Excel]
Ja, es tut, es hätte gleich tun sollen, wäre nicht ein D*pp Namens Hans
auf der Leitung gestanden.
Vielen herzlichen Dank nochmals!
Hans
"Hans Müller" schrieb:
> > In der Formel in einer Zelle gibst du im zweiten Parameter das
> > Zeichen an, welches du ermitteln willst, in deinem Fall eben einen
> > Leerstring (" ")
> >
> > Wenn in A1 deine Zeichenkette Test Test Test steht, dann liefert die
> > Formel: =ZeichenRechts(A1;" ") als Ergebnis 10.
> >
> > Klappt es jetzt?
> Ja, es tut, es hätte gleich tun sollen, wäre nicht ein D*pp Namens Hans
> auf der Leitung gestanden.
> Vielen herzlichen Dank nochmals!
bittesehr, ist gern geschehen, freut mich dass es funzt :-)
Es schrieb Eberhard Funke:
> Hallo Hans.
>
> Melanie's Makro funktioniert bei mir.
>
> Hans Müller schrieb:
>
>>>
>>> =FINDEN("°";WECHSELN(A1;" ";"°";LÄNGE(A1)-LÄNGE(WECHSELN(A1;"
>>> ";""))))
>
>> ich verstehe hier die Formel nicht ganz. Er soll was finden was nicht
>> vorkommt, [....]
>
> WECHSELN(A1;" ";"") gibt den Text bereinigt um die Leerzeichen wieder.
> LÄNGE(WECHSELN(A1;" ";"")) gibt die Zeichenzahl dieses gekürzten
> Textes zurück.
> LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";"")) ergibt die Anzahl der in A1
> enthaltenen Leerzeichen, in Deinem Beispiel = 2.
> WECHSELN(A1;" ";"°";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))) fügt in A1
> anstelle des zweiten Leerzeichens bei Ullrich das Zeichen ° bzw bei
> mir xxx ein.
> Finden(....) gibt die Position des eingefügten Dummy-Textes (° bzw.
> xxx) zurück.
>
> Du kannst das übrigens selbst verfolgen, wenn Du oben in der
> Eingabezeile (?) die Formelteile markierst und dann die F9 Taste
> drückst. Dann wird der Wert des Formelteiles angezeigt. Nicht
> vergessen: anschließend die Esc Taste drücken, sonst wird der
> Formelteil durch den Wert ersetzt.
>
Jetzt schnalle ich es, lange gehts aber es geht. Ich habe nicht
mitbekommen dass der Text um die Leerzeichen bereinigt wird, ergo ist
nachher klar, wieviele Leerzeichen sich in diesem Text befinden müssen.
Das suchte ich.
Allen, die mir hier geholfen haben, wünsche ich ein wunderschönes
Wochenende. Und den Mitlesern, welche sich allenfalls auch Gedanken
machten, natürlich auch!
Hans
wobei die InStrRev(strCheck, strMatch) Funktion für Excel 97 etwa so
aussehen könnte:
Function InStrRev(strCheck, strMatch) As Integer
Dim strChecklen, strMatchlen, bfound
bfound = False
strMatchlen = Len(strMatch)
strChecklen = Len(strCheck) - strMatchlen + 1
While (strChecklen > 0 And bfound = False)
If Mid(strCheck, strChecklen, strMatchlen) = strMatch Then
bfound = True
Else
strChecklen = strChecklen - 1
End If
Wend
If strChecklen < 0 Then strChecklen = 0
InStrRev = strChecklen
End Function
mfg
Klaus