VBA: Textbox-automatisch ergänzen

Hallo,

ich suche nach einer Möglichkeit eine Eingabe in einer Textbox automatisch zu ergänzen.
Wenn man beispielsweise: Hauptstr schreibt
soll daraus Hauptstraße werden.

Habs mit dem KeyUp-Ereignis probiert,
aber das haut ja nur mit einem Buchstaben hin.

Oder gibts nen Trick, daß man den Wert wieder leert und sagt
nun warte auf ein neues Zeichen?

Danke für Eure Hilfe!

Gruß,
stephy

Hallo, Stephy!

ich suche nach einer Möglichkeit eine Eingabe in einer Textbox
automatisch zu ergänzen.

Nimm doch ein Kombinationsfeld.

Gruß, Manfred

Hallo Manfred,

kannst Du mir das genauer erklären?

Danke und Gruß,
stephy

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

kannst Du mir das genauer erklären?

ich suche nach einer Möglichkeit eine Eingabe in einer Textbox
automatisch zu ergänzen.

Nimm doch ein Kombinationsfeld.

Hi Stephy,
Excel kann nicht erahnen ob du mit Hauptstr auf Hauptstrasse oder Hauptströmung herauswillst.
Ergo musst du in Excel eine Liste anlegen wo halt Hauptstrasse Querstrasse nebenstrasse steht. Den Bereich dieser Liste teilst du dem Kombinationsfeld zu. Dann kannst du in dem Kombinationsfeld aus hauptstrasse klicken…
Gruß
Reinhard

Nicht das, was ich suche
Hallo Reinhard,

das ist nicht das, was ich möchte.
Ich möchte in eine Textbox die Anschrift eingeben lassen,
und falls der User seine Straße mit str abkürzt, das ganze umwandeln lassen.

Kannst Du mir dafür einen Tip geben?

Gruß,
Stephy

Hi Stephy,
Excel kann nicht erahnen ob du mit Hauptstr auf Hauptstrasse
oder Hauptströmung herauswillst.
Ergo musst du in Excel eine Liste anlegen wo halt Hauptstrasse
Querstrasse nebenstrasse steht. Den Bereich dieser Liste
teilst du dem Kombinationsfeld zu. Dann kannst du in dem
Kombinationsfeld aus hauptstrasse klicken…
Gruß
Reinhard

Hi Stephy

handgestrickt könnte es so aussehen:

Private Sub txt1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim ZF1, ZF2, a
ZF2 = txt1.Text
If txt1.TextLength > 3 Then
ZF2 = Right(ZF2, 3)
Select Case ZF2
Case „str“
ZF2 = „strasse“
End Select
a = txt1.TextLength

ZF1 = Left(txt1.Text, a - 3)

txt1.Text = ZF1 & ZF2
End If
End Sub

Wenn Du die Umwandlung auf für „str.“, also mit dem Punkt, haben möchtest, mußt Du den Prüfcode für ZF2 = Right(ZF2, 3)pp mit „4“, also Prüfung der letzte vier Zeichen wiederholen.

Gruss
Wilhelm

1 Like

Hi,

wenn Du auch die Hausnummer in die Textbox eingeben möchtest ist besser

Private Sub txt1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim ZF1 As String
Dim tmp As Integer
ZF1 = txt1.Text
tmp = InStr(ZF1, "str ")
If tmp > 0 Then
ZF1 = Replace(ZF1, "str ", "strasse ")
txt1 = ZF1
End If

tmp = InStr(ZF1, "str. ")
If tmp > 0 Then
ZF1 = Replace(ZF1, "str. ", "strasse ")
txt1 = ZF1
End If

End Sub

Gruss Wilhelm