Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: If Not Then Funktion

If Not Then Funktion
10.12.2004 10:07:45
Oliver
Bei dem unten beschriebenen Befehl möchte ich die If not Then Funktion so umschreiben das das eingegebene Format (Zahlenformat) also der Wert z.B. 40:00 überprüft wird.

Private Sub txtStd_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Um die eingegebenen Zahlen im Zeitformat einzugeben
'(über den Nummernblock mit Komma oder Minus)
If Chr$(KeyAscii) = "," Then KeyAscii = Asc(":")
If Not NumberFormat = "h:mm" Then 'prüft, ob ein gültiger Wert eingetragen ist
MsgBox "Bitte einen gültigen Wert eingeben"
End If
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Not Then Funktion
Beni
Hallo Oliver,
Die automatische Aenderung mit KeyPress und die Ueberprüfung bei Exit.
Gruss beni

Private Sub txtStd_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Um die eingegebenen Zahlen im Zeitformat einzugeben
'(über den Nummernblock mit Komma oder Minus)
If Chr$(KeyAscii) = "," Then KeyAscii = Asc(":")
End Sub


Private Sub txtStd_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not NumberFormat = "h:mm" Then 'prüft, ob ein gültiger Wert eingetragen ist
MsgBox "Bitte einen gültigen Wert eingeben"
End If
End Sub

Anzeige
AW: If Not Then Funktion
13.12.2004 12:23:57
Oliver
Hallo Benni
besten Dank für deine Hilfe, die zweite deiner Lösungen hat bestens geklappt.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

If Not Then Funktion in Excel VBA


Schritt-für-Schritt-Anleitung

Um die If Not Then Funktion in Excel VBA zu verwenden, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und gehe zu den Entwicklertools.

  2. Füge ein Textfeld in dein Formular ein, z.B. txtStd.

  3. Füge den folgenden Code in das Code-Modul des Textfeldes ein:

    Private Sub txtStd_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       ' Um die eingegebenen Zahlen im Zeitformat einzugeben
       If Chr$(KeyAscii) = "," Then KeyAscii = Asc(":")
       If Not NumberFormat = "h:mm" Then
           MsgBox "Bitte einen gültigen Wert eingeben"
       End If
    End Sub
  4. Um sicherzustellen, dass der Wert beim Verlassen des Textfeldes überprüft wird, füge den folgenden Code hinzu:

    Private Sub txtStd_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If Not NumberFormat = "h:mm" Then
           MsgBox "Bitte einen gültigen Wert eingeben"
       End If
    End Sub
  5. Teste dein Formular, um sicherzustellen, dass die Eingaben korrekt überprüft werden.


Häufige Fehler und Lösungen

  • Fehler: Die Eingabe wird nicht als gültiges Zeitformat akzeptiert.
    Lösung: Stelle sicher, dass die NumberFormat-Prüfung korrekt auf "h:mm" eingestellt ist.

  • Fehler: Die MsgBox erscheint, auch wenn die Eingabe korrekt ist.
    Lösung: Überprüfe, ob das Textfeld tatsächlich das richtige Format hat. Möglicherweise musst du den Code anpassen, um sicherzustellen, dass das Format korrekt überprüft wird.


Alternative Methoden

Eine alternative Methode, um zu überprüfen, ob ein Textfeld leer ist oder nicht, könnte die Verwendung der If Not IsEmpty Funktion sein. Hier ein Beispiel:

Private Sub txtStd_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsEmpty(txtStd.Value) Then
        ' Hier kannst du zusätzliche Überprüfungen hinzufügen
    Else
        MsgBox "Das Textfeld darf nicht leer sein."
    End If
End Sub

Diese Methode ist besonders nützlich, wenn du sicherstellen möchtest, dass das Textfeld nicht leer ist, bevor du weitere Bedingungen überprüfst.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das die Verwendung der If Not Then Funktion veranschaulicht:

Private Sub txtStd_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsEmpty(txtStd.Value) Then
        If Not IsNumeric(txtStd.Value) Then
            MsgBox "Bitte eine Zahl eingeben."
        End If
    Else
        MsgBox "Das Textfeld darf nicht leer sein."
    End If
End Sub

In diesem Beispiel wird zuerst überprüft, ob das Textfeld leer ist. Wenn es nicht leer ist, wird überprüft, ob der eingegebene Wert eine Zahl ist.


Tipps für Profis

  • Nutze die If Not IsNothing Funktion, um sicherzustellen, dass Objekte nicht leer sind, bevor du auf ihre Eigenschaften zugreifst.

  • Verwende vba if not then zusammen mit Or für komplexere Bedingungen. Beispiel:

    If Not (txtStd.Value = "" Or txtStd.Value = "0") Then
       ' Wert ist gültig
    End If
  • Halte deine Bedingungen so einfach wie möglich, um die Lesbarkeit deines Codes zu verbessern.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen If Not und If in VBA?
If Not wird verwendet, um eine Bedingung umzukehren. Es prüft, ob eine Bedingung nicht erfüllt ist.

2. Wie kann ich überprüfen, ob ein Textfeld leer ist?
Du kannst If Not IsEmpty(txtStd.Value) verwenden, um zu prüfen, ob das Textfeld leer ist.

3. Kann ich If Not auch in Schleifen verwenden?
Ja, du kannst If Not in Schleifen wie For oder While verwenden, um Bedingungen zu überprüfen.

4. Wie kann ich sicherstellen, dass ein Wert ein bestimmtes Format hat?
Du kannst die NumberFormat-Eigenschaft verwenden, um das Format des Wertes zu überprüfen, wie im Beispiel oben gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige