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

Forumthread: VBA Zelle prüfen ob leer

VBA Zelle prüfen ob leer
06.01.2015 17:37:23
Charls85
Hallo zusammen,
hier ein beispiel:
in Zeile R33 in Tabelle1 soll eine Pflicht Eingabe erfolgen, nur Zahlen sollen eingetippt werden dürfen. Wenn nichts eingetragen wird soll eine schleife immer wieder die gleiche Meldung bringen ... Bitte R33 ausfüllen bla bla..
Bis zur msgbox habe ich es geschafft aber die schleife bekomme ich nicht hin.
das hier ist mal mein CODE:
If Cells(33, 18) = "" Then
MsgBox "Sie müssen die Anzahl der gesparten Stellplätze eintragen"
If Cells(33, 18) = "" Then
Cells(33, 18).Select
End If
End If

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelle prüfen ob leer
06.01.2015 18:25:54
Matze
Hallo Charls85,
deine Aufgabenstellung ist etwas unpräzise, wann soll denn die Zelle R33 jedesmal geprüft werden?
Da gibt es mehrere Möglichkeiten:
- Wenn du in einer Zelle einen Wert änderst (Change Ereignis des Tabellenblattes)
- Wenn du das Blatt aufrufst (Activate Ereignis des Tabellenblattes)
- Oder per Doppelklick auf eine best. Zelle (BeforeDoubleClick des Tabellenblattes)
- Per Button
prüfen auf Zahl:
If Not IsNumeric = Cells(33, 18).Value Then Exit Sub
Gruß Matze

Anzeige
AW: VBA Zelle prüfen ob leer
06.01.2015 18:50:46
Charls85
Hallo Mathias erstmal danke für deine rasche Antwort. Wenn auf ein Button geklickt wird soll die abfrage erfolgen! Man soll so zusagen gezwungen werden in die Zeile was einzugeben. der Wert ist egal Hauptsache nur Zahlen

AW: VBA Zelle prüfen ob leer
06.01.2015 18:52:32
Charls85
Er soll so lange in der Schleife bleiben bis die Eingabe erfüllt ist nur nach Eingabe soll der Code weiter gehen

Anzeige
AW: VBA Zelle prüfen ob leer
06.01.2015 19:19:53
Matze
Hallo Charls85,
hier mit einer Inputbox wo eine numerische Eingabe gefordert wird.
Sub InputBoxD()
   Dim vValue As Variant
   Do
      vValue = InputBox("Bitte eine Ganzzahl eingeben:", "Numerische Eingabe")
      If IsNumeric(vValue) Then Exit Do ' Wenn Zahl dann Schleife beenden 
   Loop
   MsgBox vValue & " wurde eingegeben " 'nur Beispielmeldung 
   Cells(33, 18).Value = vValue
End Sub
Gruß Matze

Anzeige
Achtung ändern!
06.01.2015 19:22:57
Matze
sorry, ersetzte
Dim vValue As Variant
durch
Dim vValue As Long

Wenn Kommazahlen, dann so
06.01.2015 19:30:41
Matze
Sub InputBoxD()
   Dim vValue As Variant 'mit kommazahl 
      Do
      vValue = InputBox("Bitte eine Zahl eingeben:", "Numerische Eingabe")
      If IsNumeric(vValue) Then Exit Do ' Wenn Zahl dann Schleife beenden 
   Loop
   MsgBox vValue & " wurde eingegeben " 'nur Beispielmeldung 
   Cells(33, 18).Value = vValue * 1 'das * 1 wandelt die Textzahl zur Zahl 
End Sub
Gruß Matze

Anzeige
AW: Wenn Kommazahlen, dann so
06.01.2015 19:38:28
Daniel
Hi
das hätte den Nachteil, dass es immer läuft, auch wenn die Zelle schon gefüllt ist:
ich würde es so machen, klappt auch mit Kommazahlen:
Dim Eingabe As String
With Cells(33, 18)
Do While .Value = ""
Eingabe = InputBox("Zahl eingeben")
If IsNumeric(Eingabe) Then .Value = CDbl(Eingabe)
Loop
End With

Gruß Daniel

Anzeige
AW: Wenn Kommazahlen, dann so
06.01.2015 19:44:48
Charls85
Daniel jetzt ist es perfekt :)) Bin voll Happy.... vielen Dank euch

AW: VBA Zelle prüfen ob leer
06.01.2015 19:31:21
Charls85
Funktioniert supe Matthias :) könnten wir das aber evtl. auch so bauen das wenn eine Zahl eingegeben wir in Zeile R33 dann soll die Input box nicht erscheinen. Sie soll nur dann erscheinen wenn in R33 vergessen wird eine Zahl einzutragen.
Aber Top Danke dir :)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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

VBA Zelle prüfen ob leer


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu prüfen, ob eine Zelle leer ist, kannst du eine einfache Schleife verwenden, die sicherstellt, dass der Benutzer eine Zahl eingibt. Hier ist ein Beispiel, das zeigt, wie du dies umsetzen kannst:

  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub InputBoxD()
    Dim vValue As Variant
    Do
        vValue = InputBox("Bitte eine Ganzzahl eingeben:", "Numerische Eingabe")
        If IsNumeric(vValue) Then Exit Do ' Wenn Zahl dann Schleife beenden
    Loop
    MsgBox vValue & " wurde eingegeben" 'nur Beispielmeldung
    Cells(33, 18).Value = vValue
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Eingabe zu testen.

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Dieser Fehler tritt auf, wenn du versuchst, einen nicht numerischen Wert in eine Zelle zu schreiben. Stelle sicher, dass du nur Zahlen eingibst.
  • Fehler: Das Makro läuft endlos

    • Überprüfe, ob die Abfrage korrekt ist. Du solltest sicherstellen, dass die Schleife nur dann läuft, wenn die Zelle leer ist.
  • Lösung für leere Zelle prüfen

    • Verwende If Cells(33, 18).Value = "" Then um zu prüfen, ob die Zelle R33 leer ist.

Alternative Methoden

Es gibt verschiedene Wege, um zu prüfen, ob eine Zelle leer ist:

  1. Change-Ereignis: Du kannst das Change-Ereignis verwenden, um die Eingabe zu überprüfen, sobald der Benutzer etwas in die Zelle eingibt.

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$R$33" Then
           If Target.Value = "" Then
               MsgBox "Die Zelle darf nicht leer sein."
           End If
       End If
    End Sub
  2. Button zur Prüfung: Füge einen Button hinzu, der bei Klick die Zelle R33 auf leere Zelle prüft.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du in Excel VBA eine Zelle auf Inhalt prüfen kannst:

  1. Eingabe über InputBox und Prüfung auf leere Zelle:

    Sub CheckInput()
       Dim Eingabe As String
       With Cells(33, 18)
           Do While .Value = ""
               Eingabe = InputBox("Zahl eingeben")
               If IsNumeric(Eingabe) Then .Value = CDbl(Eingabe)
           Loop
       End With
    End Sub
  2. Prüfung vor dem Speichern:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       If Cells(33, 18).Value = "" Then
           MsgBox "Bitte fülle die Zelle R33 aus, bevor du speicherst."
           Cancel = True
       End If
    End Sub

Tipps für Profis

  • Nutze Application.InputBox für eine verbesserte Benutzeroberfläche, da diese eine Datentyp-Prüfung ermöglicht.
  • Verwende WorksheetFunction.CountA um schnell zu prüfen, ob eine Zelle leer ist: If Application.WorksheetFunction.CountA(Cells(33, 18)) = 0 Then.
  • Schreibt die Eingabe in Variablen, um die Wiederverwendbarkeit deines Codes zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob eine Zelle leer ist, ohne eine Schleife zu verwenden?
Du kannst If Cells(33, 18).Value = "" Then verwenden, um zu prüfen, ob die Zelle R33 leer ist.

2. Wie kann ich sicherstellen, dass nur Zahlen in die Zelle eingegeben werden?
Verwende die Funktion IsNumeric, um zu überprüfen, ob der eingegebene Wert eine Zahl ist.

3. Was passiert, wenn ich einen Text anstelle einer Zahl eingebe?
In diesem Fall wird die Eingabe ignoriert, wenn du If IsNumeric(vValue) Then verwendest.

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