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

Forumthread: Wenn Variable XY ist keine Zahl, dann XY = 0 ?

Wenn Variable XY ist keine Zahl, dann XY = 0 ?
13.09.2005 14:15:02
Thomas
Hallo zusammen,
ich bin leider absoluter VBA-Anfänger und habe auf die Schnelle auch im Internet keine Lösung für mein Problem gefunden (evtl. hab ich auch die falschen Suchbegriffe verwendet).
Meine Frage: Wie lässt es sich in VBA eine WENN-DENN Beziehung für eine Stringvariable realisieren, bei der überprüft wird ob XY eine Zahl enthält oder nicht. Also z.B. Wenn Variable XY ist keine Zahl, dann XY = 0 ; Ansonsten Blablabla
Kann mir da jemand weiterhelfen?
Besten Dank im voraus!
Gruß Thomas
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn Variable XY ist keine Zahl, dann XY = 0 ?
13.09.2005 14:45:37
Chris
Hallo Thomas,
Deine Überprüfungsfunktion könnte wie filgt aussehen:

Sub num()
Dim x As Variant
x = ActiveSheet.Cells(1, 1)
If IsNumeric(x) = True Then 'Wenn es eine Zahl ist dann
ActiveSheet.Cells(2, 2) = 100
Else ' andernfalls
ActiveSheet.Cells(2, 3) = 200
End If
End Sub

Weiterhin viel Spass beim Programmieren
Gruß
Chris
Anzeige
AW: Wenn Variable XY ist keine Zahl, dann XY = 0 ?
13.09.2005 15:00:04
Thomas
Hallo Chris,
danke für deine Lösung. Ich konnte es gleich für meinen Fall anpassen und nun funktioniert alles so wie ich es mir vorstelle. :-)
DANKE!!!
Gruß Thomas
;

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

Überprüfung von Variablen in VBA: Wenn keine Zahl, dann Null


Schritt-für-Schritt-Anleitung

Um in VBA zu überprüfen, ob eine Variable eine Zahl ist oder nicht, kannst Du die Funktion IsNumeric verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du im Menü auf Einfügen > Modul klickst.

  3. Kopiere und füge den folgenden VBA-Code ein:

    Sub num()
        Dim x As Variant
        x = ActiveSheet.Cells(1, 1) ' Zelle A1
        If IsNumeric(x) Then ' Wenn es eine Zahl ist
            ActiveSheet.Cells(2, 2) = 100 ' Zelle B2
        Else ' andernfalls
            ActiveSheet.Cells(2, 3) = 200 ' Zelle C2
        End If
    End Sub
  4. Schließe den Editor und kehre zurück zu Excel.

  5. Führe das Makro aus, um die Überprüfung durchzuführen.

Dieser Code liest den Wert aus der Zelle A1 und prüft, ob dieser eine Zahl ist. Falls nicht, wird in Zelle C2 der Wert 200 gesetzt, andernfalls wird in Zelle B2 der Wert 100 gesetzt.


Häufige Fehler und Lösungen

  • Fehler: Der Wert in der Zelle wird nicht erkannt.

    • Lösung: Stelle sicher, dass die Zelle A1 tatsächlich einen numerischen Wert oder einen leeren Wert enthält. Wenn der Wert ein Text ist, wird IsNumeric diesen als nicht numerisch betrachten.
  • Fehler: VBA gibt einen Typkonflikt aus.

    • Lösung: Überprüfe, ob die Variable x als Variant deklariert ist. Wenn Du eine spezifische Typdeklaration wie Integer oder String verwendest, kann das zu Problemen führen, wenn die Zelle leer oder nicht numerisch ist.

Alternative Methoden

Eine alternative Methode zur Überprüfung, ob eine Zelle keine Zahl ist, besteht darin, die Funktion WorksheetFunction.IsNumber zu verwenden. Damit kannst Du überprüfen, ob der Wert in einer Zelle eine Zahl ist.

If Not Application.WorksheetFunction.IsNumber(ActiveSheet.Cells(1, 1)) Then
    ActiveSheet.Cells(2, 3) = 200
End If

Praktische Beispiele

Hier sind einige praktische Beispiele, die Du verwenden kannst:

  1. Wenn Zelle leer:

    If ActiveSheet.Cells(1, 1) = "" Then
       ActiveSheet.Cells(2, 3) = 0 ' Setze auf 0, wenn leer
    End If
  2. Wenn Zelle keine Zahl:

    If Not IsNumeric(ActiveSheet.Cells(1, 1)) Then
       ActiveSheet.Cells(2, 3) = 0 ' Setze auf 0, wenn es keine Zahl ist
    End If

Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Teste Deine Funktionen regelmäßig, um sicherzustellen, dass sie auch in unerwarteten Situationen funktionieren, wie z.B. bei leeren Zellen oder Textwerten.
  • Denke daran, dass die Verwendung von ActiveSheet nicht immer die beste Praxis ist. Erwäge die Verwendung von spezifischen Arbeitsblattreferenzen, um Verwirrung zu vermeiden.

FAQ: Häufige Fragen

1. Was passiert, wenn die Zelle leer ist? Wenn die Zelle leer ist, wird IsNumeric den Wert als False zurückgeben. Daher solltest Du sicherstellen, dass Du auch leere Zellen überprüfst.

2. Kann ich diese Methode auch in Excel-Formeln verwenden? Nein, diese Methode funktioniert nur in VBA. In Excel-Formeln kannst Du die Funktion ISTZAHL nutzen, um zu überprüfen, ob ein Wert eine Zahl ist.

3. Wie kann ich sicherstellen, dass mein Makro nur auf bestimmte Zellen zugreift? Du kannst spezifische Zellreferenzen angeben, anstatt ActiveSheet, indem Du den Namen des Arbeitsblatts verwendest, z.B. Sheets("Sheet1").Cells(1, 1).

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