Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform - Formatierung TextBox

Userform - Formatierung TextBox
08.09.2018 08:35:07
akor74
Guten Morgen,
ich baue gerade eine Kundendatenbank, auf die zur Erfassung bzw. Abfrage mehrere Nutzer Zugang erhalten sollen. Somit muss ich bereits bei der Erfassung Sorge tragen, dass Gleichheit im Format der Daten besteht.
Abbildung von Telefonnumern:
Private Sub TextBox12_Change()
TelFest1 = TextBox12.Value
End Sub

Private Sub TextBox12_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Land = "DE" Then Vorwahl = "+49 "
If Land = "A" Then Vorwahl = "+43 "
If Not IsNumeric(TextBox12) Then
TextBox12.ForeColor = RGB(255, 0, 0)
'Cancel = True
Else
TextBox12.ForeColor = RGB(0, 0, 0)
TextBox12 = Format(Vorwahl & TextBox12.Value)
End If
End Sub
Wird die Rufnummer in Abhängigkeit Land im Format 030xxxxxxxx erfasst,
dann wird +49 030 ausgeben.
Frage 1
Wie bekomme ich die 0 vor 30 weg? --> +49 30xxxxxx
Frage 2
Wie bekomme ich die xxxxxxx mit einem Leerzeichen unterbrochen, muss nicht nicht nach DIN sein, nur optisch quasi. +49 30 xxx xxx xx
Frage 3
Problem, wurde die Rufnummer richtig erfasst, ausschliesslich numerisch ist alles gut, klickt man jedoch erneut in das Feld, stimmt durch das "+" die Vorgabe Bedingung nummerisch nicht mehr ....
Vielen Dank vorab für eine Hilfestellung,
Gruß AKor

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform - Formatierung TextBox
08.09.2018 08:58:47
Hajo_Zi
If Left(textbox1,1)=0 then
Textbox1="+49 " Mid(texrtbox1,2)
Endif
zu Punkt 2 kann ich nichts schreiben, da mir nicht klar wie ich die Vorwahl von der Nummer trennen soll.
Zu Punkt 3 kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Userform - Formatierung TextBox
08.09.2018 09:25:28
Werner
Hallo,
du kannst doch schon bei der Eingabe in die Textbox verhindern, dass "falsche" Zeichen eingegeben werden. Dann kannst du dir auch die Prüfung auf IsNumeric und die Färberei der Textbox sparen.
Private Sub TextBox12_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 32, 43, 48 To 57
Case Else
KeyAscii = 0
MsgBox "Nur Ziffern, Leerzeichen und + zulässig"
End Select
End Sub
Gruß Werner
Anzeige
Hajo hat ein....
08.09.2018 09:42:06
Werner
Hallo,
... & vor MID vergessen und ein Schreibfehler ist ihm auch reingerutscht.
If Left(TextBox12, 1) = 0 then
TextBox12 = "+49 " & Mid(TextBox12, 2)
EndIf
Gruß Werner
Zu Frage 2:
08.09.2018 15:21:53
RPP63
Moin!
Dreiergruppen bekommst Du bspw. so:
"+49 " & Trim(Format("2091654876", "@@@ @@@ @@@ @@@ @@@ @@@ @@@"))

ergibt:
+49 2 091 654 876
Gruß Ralf
AW: Zu Frage 2:
09.09.2018 12:00:27
akor74
Guten Morgen,
Vielen Dank, die Funktion keypress kannte ich noch nicht und macht einiges einfacher.
Dies kann ich auch gleich beim Eingeben der Postleitzahlen anwenden.
Die Formatierung der Telefonnummer funktioniert auch mit den genannten Möglichkeiten.
Bei Eingabe von 0172xxxxxxx oder 172xxxxxxx ist das Ergebnis +49 (0) 172 xxxxxxxxx.
(Diese Formatierung reicht für die Optik.)
Allerdings tut sich eine neues Problem auf.
Klickt man erneut in die Textbox, bspw. um eine Ziffer zu korrigieren, wird erneut die Vorwahl eingeetzt. Vorahl = +49 (0) also 7 Zeichen
Wie bekomme ich es hin, bei erneutem Klick in die Zelle, dass die Vorwahl (Prüfung ob vorhanden)gelöscht wird und erst bei Verlassen der Zelle wieder eingesetzt wird?
Private Sub TextBox12_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'If Left(TextBox12, 7) = "+49 (0)" Then Replace  'funktioniert so nicht
If Left(TextBox12, 1) > 0 Then TextBox12 = Vorwahl & "(0)" & Mid(TextBox12, 1, 3) & " " & Mid( _
TextBox12, 4) ' & " " & Mid(TextBox12, 8, 3) & " " & Mid(TextBox12, 11)
If Left(TextBox12, 1) = 0 Then TextBox12 = Vorwahl & "(" & Left(TextBox12, 1) & ") " & Mid( _
TextBox12, 2, 3) & " " & Mid(TextBox12, 5) ' & " " & Mid(TextBox12, 8, 3) & " " & Mid(TextBox12, 11)
'TextBox12 = Trim(Format(Vorwahl & TextBox12, "@@@ @@@ @@@ @@@ @@@ @@@ @@@"))
End Sub
Vielen Dank vorab.
Anzeige
AW: Zu Frage 2:
09.09.2018 14:13:25
Werner
Hallo Ralf,
hier
Wie bekomme ich es hin, bei erneutem Klick in die Zelle, dass die Vorwahl (Prüfung ob vorhanden)gelöscht wird und erst bei Verlassen der Zelle wieder eingesetzt wird?
sprichst du von einer Zelle, meinst doch aber sicher die Textbox.
Lade doch mal deine Beispielmappe mit der Userform und dem Code, so wie du ihn aktuell am Laufen hast hier hoch.
Gruß Werner
GELÖST Rufnummer formatieren
10.09.2018 20:24:14
AKor74
Hallo,
es ist jetzt möglich die TextBox mit einer Rufnummer zu versehen, die Vorwahl wird hinzugefügt und im Nachgang ist auch die Änderung der Telefonnummer möglich.
Vielen Dank für die Unterstützung
AKor
Private Sub TextBox12_Change()
TelFest1 = TextBox12.Value
End Sub

Private Sub TextBox12_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 43, 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub

Private Sub TextBox12_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Left(TextBox12, 1) = "" Then
'Cancel = True
TextBox12.Text = ""
ElseIf Left(TextBox12, 2) = "+4" Then
TextBox12 = TelFest1
ElseIf Left(TextBox12, 1) > 0 Then
TextBox12 = Vorwahl & "(0) " & Mid(TextBox12, 1, 3) & " " & Mid(TextBox12, 4)
ElseIf Left(TextBox12, 1) = 0 Then
TextBox12 = Vorwahl & "(" & Left(TextBox12, 1) & ") " & Mid(TextBox12, 2, 3) & " " & Mid( _
TextBox12, 5)
End If
End Sub

Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
11.09.2018 12:47:12
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige