Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1284to1288
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

Textlänge mit Bedingungen prüfen

Textlänge mit Bedingungen prüfen
02.11.2012 11:32:32
Urmila
Hallo zusammen,
ich hoffe ihr könnt mir bei folgender Aufgabe behilflich sein. Ich würde ja googeln, nur weiss ich leider nicht wonach ich zu suchen hab... :(
Ich habe verschiedene Werte in einer Spalte und ich will die Inhalte prüfen, ob diese wie gefolgt aussehen/sind:
AT5012 oder AT5026-8 oder AT5032-85
Anfangs ist immer "AT" dann immer eine 4 stellige Zahl, ggf. mit "-" eine weitere Zahl (ein/zweistellig)
Mir würde reichen wenn ich z.B. den Wert "True" erhalte, so kann ich dann das Makro weiterschreiben, die Schleife ist auch schon geschrieben, nur halt dass die aktueller Zelle auf Inhalt wie oben beschrieben geprüft wird.
Danke & LG
Urmila

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textlänge mit Bedingungen prüfen
02.11.2012 12:22:57
CitizenX
Hi Urmila,
Bsp:
Option Explicit
Sub test()
Dim prüfWert
'deine schleife
prüfWert = "AT5012 -1"
'Wert prüfen
MsgBox chkVal(prüfWert)
'Ende deiner Schleife
End Sub
Private Function chkVal(ByVal Wert) As Boolean
Dim Regex As Object: Set Regex = CreateObject("vbscript.regexp")
With Regex
.Pattern = "^at\d{4}(\s*-\s*\d{1,2})?$"
.ignorecase = True
chkVal = .test(Wert)
End With
End Function
Grüße
Steffen

AW: Textlänge mit Bedingungen prüfen
02.11.2012 12:51:31
UweD
Hallo
hier als VBA-Lösung
Sub TT()
On Error GoTo Fehler
Dim TB, i%, TMP As Boolean
Dim SP%, LR&, TT$, St%
Set TB = ActiveSheet
SP = 1 'Spalte A
LR = TB.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
Application.ScreenUpdating = False
For i = 1 To LR
TMP = True
TT = (TB.Cells(i, SP))
St = InStr(TT, "-") ' Position Strich
If Left(TT, 2)  "AT" Then
TMP = False
ElseIf St > 0 Then ' wenn Strich
If Len(Left(TT, St - 1))  6 Then TMP = False 'Länge bis Strich
ElseIf Len(TT)  6 Then 'ohne Strich Länge falsch
TMP = False
End If
If TMP = False Then TB.Cells(i, SP + 1) = TMP
Next
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Gruß UweD

Anzeige
Danke euch beiden, funzt 1A...LG
02.11.2012 13:19:16
Urmila
Urmila

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige