AW: Nur Zahlen und Punkte in Spalte erlauben!
29.01.2008 20:29:00
dan
Hallo Gordon,
ok, also hier dein code. Ich habe die funktion "CellContainsIllegalCharacters" hinzugefuegt.
Ist alles klar jetzt? Gruss dan, cz.
Sub Zahlen()
Dim z As Long
With Worksheets("Blatt")
For z = .Range("G299").Row To 4 Step -1
If (CellContainsIllegalCharacters(.Cells(z, 7)) = True) Then ' ["Zahlen, Kommas, _
Eurozeichen"] Then
MsgBox "Falsche Eingabe!"
.Cells(z, 7) = ""
.Cells(z, 7).Select
End If
Next
End With
End Sub
' - die funktion "CellContainsIllegalCharacters" prueft,
' ob die zelle die nicht-erlaubten zeichen aenthealt
' - die nicht-erlaubten characters sind in der funktion selbst definiert
' - wenn die zelle einen oder mehrere nicht-erlaubten characters aenthaelt,
' dann wird die funktion "true" zurueckgeben, anderenfalls "false"
Function CellContainsIllegalCharacters(ByRef testedCell As Range) As Boolean
Dim testedValue As String
Dim testedValueChar As String
Dim notAllowedChars As String
Dim i As Long
CellContainsIllegalCharacters = False
testedValue = testedCell.Value
notAllowedChars = ""
' man geht die zeichen der zell-value eine nach dem anderen durch,
' und testet, ob das zeichen zahl, komma, oder euro ist
' falls nicht, dann wird das zeichen in variable notAllowedChars gespeichert
For i = 1 To VBA.Strings.Len(testedValue)
testedValueChar = VBA.Strings.Mid(testedValue, i, 1)
Select Case testedValueChar
Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ",", VBA.Chr(128)
' number, komma, euro: OK
Case Else
' char not allowed
notAllowedChars = notAllowedChars & " " & testedValueChar
End Select
Next i
' wenn mindestens ein nicht-erlaubtes zeichen gefunden wurde,
' gibt die funktion true zurueck
If (notAllowedChars "") Then
CellContainsIllegalCharacters = True
End If
End Function