hatte zwar schon einen Beitrag dazu geschrieben, aber dieser ist anscheinend nicht mehr vorhanden. Dann halt nochmal:
Ich habe einen Quellcode der bewirkt, dass wenn jemand in die Spalte G (von G4 bis G299) nicht eine Zahl eingibt, eine Fehlermeldung bekommt. Desweiten wird die nichterlaubte Eingabe gelöscht.
Leider ist es nun so, wenn jemand etwas per Maus in die Spalte G einfügt, dass zwar die Fehlermeldung kommt und auch das die Zelle gelöscht wird, aber die Formatierung (Währung, ) futsch ist.
Nun wollte ich, dass genauso so, wie die Zelle gelöscht wird, die Formatirung der Zelle wieder auf Währung umgestellt wird. Leider schaffe ich das irgendwie nicht! Hat da jemand 'nen Tipp?
Hier mal mein Quellcode:
Sub Zahlentest()
Dim z As Long, i As Long
Dim txt As String
Dim tb
Const ErlaubteZeichen = "1234567890,"
Dim Check As Boolean
For tb = 1 To ThisWorkbook.Worksheets.Count
Select Case Worksheets(tb).Name
Case "Jahresübersicht", "Formatspeicher"
Case Else
With Worksheets(tb)
For z = Range("G299").End(xlUp).Row To 4 Step -1
txt = .Cells(z, 7).Value
Check = False
For i = 1 To Len(txt)
If InStr(ErlaubteZeichen, Mid(txt, i, 1)) = 0 Then
Check = True
Exit For
End If
Next
If Check Then
MsgBox "Falsche Eingabe!" & vbCrLf & "Bitte tragen Sie in der Spalte ' _
Betrag' nur Zahlen ein!"
.Cells(z, 7) = ""
.Cells(z, 7).Select
End If
Next
End With
End Select
Next tb