Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Nocheinmal Zeichenlänge in Userform
26.08.2006 15:42:20
Rene
Hallo!
Möchte gern Text in Labels prüfen. Diesen Code habe ich dafür bekommen (siehe Thread 25.08.2006 19:10:07)
If InStr(strT, "0190") Or _
InStr(strT, "0180") Or _
InStr(strT, "0137") Or _
InStr(strT, "0900") Or _
InStr(strT, "+") Or _
InStr(strT, "00") Or _
InStr(strT, "0136") Then
Leider habe ich gerade feststellen müssen, dass dieser Code doch fehlerhaft arbeitet. Ich möchte nur die ersten zwei oder die ersten 4 stellen prüfen. InStr prüft aber den gesamten Eintrag. Es werden auch Nummern für ungültig erklärt, die zwischen drinnen bei InStr angegebene Zeichen enthalten. Es sollen aber nur Inhalte ungültig sein, die mit 00 oder 0190 (siehe Code) beginnen. Einträge wie z.B. 010017 sollen aber gültig sein, also keine Fehlermeldung erzeugen. Wie stelle ich das an? Danke!
Gruß, Rene

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nocheinmal Zeichenlänge in Userform
ransi
Hallo Rene
versuch es doch mal so:


Option Explicit
Public Sub test()
Dim arr
Dim I As Integer
Dim str As String
arr = Array("0190""0180""0137""0900""+""00""0136")
str = "01364711"
For I = 0 To UBound(arr)
    If Left(str, Len(arr(I))) = arr(I) Then
        MsgBox "Mach was "
    Else:
        MsgBox "Mach was anderes"
    End If
Next
End Sub


Str ist ein Beispielwert.
ransi
Anzeige
AW: Nocheinmal Zeichenlänge in Userform
26.08.2006 16:00:06
Matthias
Hallo Rene,
z.B. so:

Sub test()
Dim strT As String
strT = "0190123456"
Dim Treffer As Boolean
Dim Liste, Element
Liste = Array("0190", "0180", "0137", "0900", "+", "00", "0136")
For Each Element In Liste
If Left(strT, Len(Element)) = Element Then
Treffer = True
Exit For
End If
Next Element
MsgBox Treffer
End Sub

Gruß Matthias
AW: Nocheinmal Zeichenlänge in Userform
26.08.2006 16:01:10
ingUR
Hallo, Rene,
Heir die Abfrage, die nur die ersten (Left) Zeichen eines Strings untersucht Left(Zeichenkette, Anzahl der zu untersuchenden Buchstaben von links)
If Left(strT,4)= "0190" Or _
Left(strT,4)= "0180" Or _
Left(strT,4)= "0137" Or _
Left(strT,4)= "0900" Or _
Left(strT,1)= "+" Or _
Left(strT,2)= "00" Or _
Left(strT,2)= "0136" Then
Bei dem "+" bin ich nicht sicher, wa Su wirklich willst, da Du von vier und zwei Stellen am Kettenanfangs schreiobst:
Instr(Left(strT,2),"+") prüft die ersten beiden Zeichen der Kette, ob mindestens ein Plus vorkommt. Darauf folgende Zeichen werden nicht in die Untersuchnung einbezogen:
0+0056700+7 wird heraugefiltert,
++0056700+7 wird heraugefiltert,
+00056700+7 wird heraugefiltert,
0-0056700+7 wird nicht heraugefiltert.
Gruß,
Uwe
Anzeige
AW: Nocheinmal Zeichenlänge in Userform
26.08.2006 16:13:21
Rene
Hallo Uwe!
Danke, funktioniert soweit ganz gut. Das "+" ist das Pluszeichen, welches man gewöhnlich vor die Landesvorwahl (Telefonnummer) setzt. Und genau das soll als Fehler erkannt werden und wird es dank Deines Code's auch.
Gruß, Rene

94 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige