Discussion:
Einfügen von einem Leerzeichen
(zu alt für eine Antwort)
christian
2004-02-10 12:53:55 UTC
Permalink
Wie kann ich ein Leerzeichen zwischen einem Klein- und
Großbuchstaben (z.B.:HerrMuster -> Herr Muster) einfügen
wenn ich mehrere Hundert solche Einträge habe? Gibt es
vieleicht eine Formel?

Danke im Voraus
Frank Kabel
2004-02-10 13:40:04 UTC
Permalink
Post by christian
Wie kann ich ein Leerzeichen zwischen einem Klein- und
Großbuchstaben (z.B.:HerrMuster -> Herr Muster) einfügen
wenn ich mehrere Hundert solche Einträge habe? Gibt es
vieleicht eine Formel?
Danke im Voraus
Hi Christian,
wenn es mitten in Deinem Text nur an einer Stelle einen Großbuchstaben
geben kann, der Text ansonsten aber beliebi ist, gehe wie folgt vor:
Definiere folgende Namen (über 'Einfügen - Namen - Definieren'):
seq: =ZEILE(INDIREKT("2:1024"))
Grossbuchstaben: ="ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ"

Wenn Dein Text jetzt in A1 steht nutze folgende Matrixformel (mit
CTRL+SHIFT+ENTER eingegeben):
=LINKS(A1;MIN(WENN(ISTFEHLER(FINDEN(TEIL(A1;seq;1);Grossbuchstaben));10
24;seq))-1) & " " &
TEIL(A1;MIN(WENN(ISTFEHLER(FINDEN(TEIL(A1;seq;1);Grossbuchstaben));1024
;seq));1024)

HTH
Frank
Melanie Breden
2004-02-10 19:02:22 UTC
Permalink
Hallo Christian,
Post by christian
Wie kann ich ein Leerzeichen zwischen einem Klein- und
Großbuchstaben (z.B.:HerrMuster -> Herr Muster) einfügen
wenn ich mehrere Hundert solche Einträge habe? Gibt es
vieleicht eine Formel?
du kannst auch eine benutzerrdefinierte Funktion verwenden.
Speicher sie in einem Standardmodul der Arbeitsmappe:

Function NamenTrennen(rngCell As Range) As String
Dim varArray As Variant
Dim intI As Integer

varArray = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", _
"J", "K", "L", "M", "N", "O", "P", "Q", "R", _
"S", "T", "U", "V", "W", "X", "Y", "Z", "Ä", _
"Ö", "Ü")
For intI = 0 To UBound(varArray)
If InStr(2, rngCell, varArray(intI)) Then
intI = InStr(2, rngCell, varArray(intI))
NamenTrennen = Left(rngCell, intI - 1) & " " & _
Right(rngCell, Len(rngCell) - intI + 1)
Exit Function
End If
Next intI
NamenTrennen = rngCell.Value
End Function

Im Tabellenblatt dann folgende Formel:
=NamenTrennen(A1)

Man könnte auch mit einer Prozedur alle Zellen in einem Bereich, z.B. A1:A20
bearbeiten und die Leerzeichen gleich einfügen.

Sub Leerzeichen()
Dim rngCell As Range

For Each rngCell In Range("A1:A20")
rngCell.Value = NamenTrennen(rngCell)
Next rngCell
End Sub
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Lesen Sie weiter auf narkive:
Loading...