AW: Macro bei Eingabe ausführen
01.07.2017 21:18:18
Werner
Hallo Georg,
ich hab mal was gebastelt. Der Code regiert auf Eingaben in K18/K19, M18/M19 und P18/P19. Weitere Spalten müssten dann noch ergänzt werden.
Folgende Prüfungen mit entsprechenden Meldungen:
-nur Zahlen
-nur Zahlen von 1 bis 10
-Prüfung ob Zelle über/unter der Eingabezelle leer
-keine Mehrfachauswahl zulässig
Dieser Code gehört ins CodeModul des Arbeitsblattes in dem die Eingaben erfolgen.
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strZelle As String
Select Case Target.Column
Case 11, 13, 16 'hier weitere Spalten eintragen
Select Case Target.Row
Case 18 'Zeile 18
If Target.Count > 1 Then
Call Mehrfach
Exit Sub
End If
If Not Target Is Nothing Then
If Target.Value "" Then
If Target.Offset(1, 0) = "" Then
If Not IsNumeric(Target.Value) Then
Call NurZahl
Exit Sub
ElseIf Target.Value 10 Then
Call EinsBisZehn
Exit Sub
End If
Else
strZelle = Target.Offset(1, 0).Address(0, 0)
Call NichtLeer(strZelle)
Exit Sub
End If
End If
End If
Case 19 'Zeile 19
If Not Target Is Nothing Then
If Target.Value "" Then
If Target.Offset(-1, 0) = "" Then
If Not IsNumeric(Target.Value) Then
Call NurZahl
Exit Sub
ElseIf Target.Value 10 Then
Call EinsBisZehn
Exit Sub
End If
Else
strZelle = Target.Offset(-1, 0).Address(0, 0)
Call NichtLeer(strZelle)
Exit Sub
End If
End If
End If
Case Else
End Select
Case Else
End Select
End Sub
Dieser Code gehört komplett in ein allgemeines Modul.
Option Explicit
Public Sub Mehrfach()
MsgBox "Mehrachauswahl nicht zulässig!" _
, , "Hinweis für " & Application.UserName
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End Sub
Public Sub NurZahl()
MsgBox "Es ist nur die Eingabe von Zahlen zulässig!" _
, , "Hinweis für " & Application.UserName
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End Sub
Public Sub EinsBisZehn()
MsgBox "Es sind nur Zahlenwerte von 1 bis 10 zulässig!" _
, , "Hinweis für " & Application.UserName
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End Sub
Public Sub NichtLeer(strZelle As String)
MsgBox "Nicht zulässig, da die Zelle " & strZelle & " ist nicht leer ist!" _
, , "Hinweis für " & Application.UserName
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End Sub
Gruß Werner