Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
700to704
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
700to704
700to704
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Umlaute

Umlaute
25.11.2005 15:50:45
Rene
Moin zusammen,
Ich habe eine Frage zwecks Umlauten.
Ich habe eine UserForm mit einer TextBox,die Angaben der TextBox werden in eine Zelle geschrieben.Die Länge darf aber nicht mehr sein als 25 Zeichen OHNE Umlaute,wenn ich aber nun Umlaute in die TextBox mitnehme ändert es die Umlaute aber ich darf dann nur noch 20 Zeichen eintragen können.Sobald man ein Wort mit einem Umlaut schreibt wird aus 1 Buchstaben (ä) zwei Buchstaben(ae) in die Zelle geschrieben was auch bei der Länge zu berücksichtigen ist.
Hier der Code den ich bis jetzt habe:

Private Sub TextBox2_Change()
Dim laR As Long
Range("D7:D79") = TextBox2
Sheets("Gleis").Range("D7:D79") = TextBox2
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("D7:D" & laR).Replace What:="Ä", Replacement:="Ae", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Range("D7:D" & laR).Replace What:="Ö", Replacement:="Oe", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Range("D7:D" & laR).Replace What:="Ü", Replacement:="Ue", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Range("D7:D" & laR).Replace What:="ä", Replacement:="ae", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Range("D7:D" & laR).Replace What:="ö", Replacement:="oe", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Range("D7:D" & laR).Replace What:="ü", Replacement:="ue", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Range("D7:D" & laR).Replace What:="ß", Replacement:="ss", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
If Len(TextBox2.Text) > 20 Then
MsgBox "Maximal 20 Zeichen.", 48, "Hinweis"
TextBox2.Text = Left(TextBox2.Text, Len(TextBox2.Text) - 1)
End If
End Sub

Die Frage ist nun ob ich die TextBox so abfragen kann das automatisch wenn ein Wort mit Umlaut eingetragen und die 20 damit überschritten wird die Meldung kommt "Nicht mehr als 20 Buchstaben" wenn ich aber ein Wort ohne Umlaut habe können 25 Zeichen verwendet werden und dann erst die Meldung "Nicht mehr als 25 Zeichen" kommt.
Ich hoffe ich habe mich verständlich ausgedrückt und es gibt so eine Abfrage.
Gruß Rene

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umlaute
25.11.2005 16:03:24
Hajo_Zi
Hallo Rene,
die Textbox hat eine Eigenschaft maxlenght trage dort 20 ein und lasse nur vestimme zeichen für die Eingabe zu.

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   von Peter Haserodt
'   nur Buchstaben (Groß)
Select Case KeyAscii
Case 65 To 90, 196, 214, 220
Case Else
KeyAscii = 0
MsgBox "Nur Großbuchstaben", vbExclamation
End Select
End Sub



AW: Umlaute
25.11.2005 16:18:59
Rene
Hallo Hajo,
Danke für deine Antwort aber leider ist das nicht das richtige, ich möchte klein und groß Buchstaben schon schreiben können. Nur wenn ein ü oder so kommt dann darf man nur 20 zeichen eingeben und wenn kein ü im wort ist kann man 25 zeichen eingeben.Hast du dafür auch einen rat?
Gruß Rene
Anzeige
AW: Umlaute
25.11.2005 16:24:13
Hajo_Zi
Hallo Rene,
ich hindere Dich nicht daran die Zahlen für Kleinbuchstaben noch zu ergänzen. Die Zahlen sind laut ASCII Code. (97 bis 122)
Gruß Hajo
AW: Umlaute
25.11.2005 16:48:20
Peter
Hallo Rene,
vielleicht hilft dir meine Beispielmappe, gib mal in der ersten TextBox Umlaute ein und klick dann auf OK
https://www.herber.de/bbs/user/28724.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Umlaute
25.11.2005 20:38:28
Rene
Hallo,
Ich möchte mich erst mal bei Euch beiden bedanken und für die späte Antwort entschuldigen aber ich bin vorhin nicht auf den Server hier gekommen,vielleicht lag es daran das ich über das Handy ins Netz gehen muß. Na egal
Ich werde die Sachen nachher mal testen und melde mich dann noch mal.
Danke erst
Rene
Anzeige
Habe es so gelöst
27.11.2005 05:57:43
Rene
Moin zusammen,
Habe mein Problem so gelöst:

Private Sub TextBox2_Change()
Dim laR As Long
'von Andreas
Dim strWert$, strErsetzen$
With TextBox2
strWert = .Value
If strWert <> "" Then
Select Case Right(strWert, 1)
Case "ä": strErsetzen = "ae"
Case "Ä": strErsetzen = "Ae"
Case "ö": strErsetzen = "oe"
Case "Ö": strErsetzen = "Oe"
Case "ü": strErsetzen = "ue"
Case "Ü": strErsetzen = "Ue"
Case "ß": strErsetzen = "ss"
Case Else: strErsetzen = "0"
End Select
If strErsetzen <> "0" Then _
.Value = Left(strWert, Len(strWert) - 1) & strErsetzen
End If
End With
Range("D7:D79") = TextBox2
Sheets("Tabelle1").Range("D7:D79") = TextBox2
If Len(TextBox2.Text) > 24 Then
MsgBox "Maximal 24 Zeichen.", 48, "Hinweis"
TextBox2.Text = Left(TextBox2.Text, Len(TextBox2.Text) - 1)
End If
End Sub

Danke trotzdem für Eure Hilfe.
Gruß Rene
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige