Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Gültigkeitsprüfung mit VBA | Herbers Excel-Forum


Betrifft: Gültigkeitsprüfung mit VBA von: Markus
Geschrieben am: 03.02.2012 08:03:01

Hallo zusammen,

ich habe folgendes Makro gefunden, welches auch so funktioniert.
Jedoch benötige ich folgende Änderungen:
- die Gültigkeitsprüfung sollte nicht für Tabelle1 und 2 gelten
- Die Prüfung sollte sofort nach dem Verlassen der Zelle, egal ob mit Tastatur oder Maus erfolgen
- Uhrzeiten (z.Bsp. 17:00)dürfen ebenfalls in diesem Bereich eingetragen werden dürfen

Ist das möglich?

Danke und Gruß

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:D100")) Is Nothing Then Exit Sub
Select Case Target.Value
  Case "A", "P", "F", "M", "S", ""
  Case Else
    MsgBox "Sie müssen einen der vorgegebenen Buchstaben  P, F, M, S oder A verwenden", _
      vbCritical, "Hinweis an " & Application.UserName
    Application.EnableEvents = False
    With Target
      .Value = ""
      .Select
    End With
    Application.EnableEvents = True
End Select

End Sub

  

Betrifft: AW: Gültigkeitsprüfung mit VBA von: Rudi Maintaire
Geschrieben am: 03.02.2012 09:15:14

Hallo,

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Intersect(Target, Range("A1:D100")) Is Nothing Then Exit Sub
  On Error GoTo ErrHandler
  Application.EnableEvents = False
  Select Case LCase(Sh.Name)
    Case "tabelle1", "tabelle2"
      'nix passiert
    Case Else
      If IsNumeric(Target) And Target.Text Like "##:##" Then
        'nix passiert
      Else
        Select Case UCase(Target.Value)
          Case "A", "P", "F", "M", "S", "": Target = UCase(Target)
          Case Else
            MsgBox "Sie müssen einen der vorgegebenen Buchstaben " _
              & "P, F, M, S oder A verwenden", _
              vbCritical, "Hinweis an " & Application.UserName
            With Target
              .ClearContents
              .Select
            End With
      End Select
    End If
  End Select
ErrHandler:
  Application.EnableEvents = True
End Sub

Gruß
Rudi


  

Betrifft: AW: Gültigkeitsprüfung mit VBA von: Markus
Geschrieben am: 03.02.2012 09:31:14

Danke Rudi,

super, danke.

Das einzigste ist, die MsgBox bringt erst die Meldung wenn ich wieder auf die Zelle springe
und nicht wenn ich sie nach dem Eintragen verlasse.
Gibt es dafür evtl. eine Lösung?

Danke und Gruß Markus


  

Betrifft: kann ich nicht nachvollziehen. Geht. owT von: Rudi Maintaire
Geschrieben am: 03.02.2012 09:37:03




  

Betrifft: nachgedacht von: Rudi Maintaire
Geschrieben am: 03.02.2012 09:40:54

Hallo,
du hattest deinen Code im falschen Event.
Muss in Workbook_SheetChange, wie bei mir, nicht Workbook_SheetSelectionChange!

Gruß
Rudi


  

Betrifft: AW: nachgedacht von: Markus
Geschrieben am: 03.02.2012 10:30:11

Danke Rudi,

Super das isses.

Gruß Markus


  

Betrifft: AW: nachgedacht von: Markus
Geschrieben am: 03.02.2012 11:14:10

Sorry Rudi,

eine Frage habe ich noch, wenn ich bei der Prüfung aus dem "K" z.Bsp "Test" mache, also
ein Wort einsetze kommt ebenfalls die Meldung, wie müßte es denn richtig heißen?

Danke Gruß Markus


  

Betrifft: AW: nachgedacht von: Rudi Maintaire
Geschrieben am: 03.02.2012 12:10:21

Hallo,
K wird doch gar nicht geprüft.
Für die Prüfung wird alles in Großbuchstaben umgewandelt. Ergo: Case "TEST"

Gruß
Rudi


  

Betrifft: AW: nachgedacht von: Markus
Geschrieben am: 03.02.2012 14:22:03

Hallo Rudi,
okay das funktioniert, geht das ganze auch mit "Test"?

Danke und Gruß Markus


Beiträge aus den Excel-Beispielen zum Thema "Gültigkeitsprüfung mit VBA"