If is_numeric...?

Hi Leute,

ich werd grade noch wahnsinnig, weil ich nicht finde was ich brauche *g*
Naja ab und an hilft rumprobieren ja aus, aber wenn man sich nicht auskennt und auch nicht weiss wie man suchen müsste dann wirds etwas schwer…
Deswegen versuche ich mal wieder hier Hilfe zu bekommen…

Ich möchte nämlich überprüfen ob ein Wert leer ist bevor ein Makro aufgerufen wird oder nicht.
Im Detail geht es darum dass in einem bestimmten Feld eine Zahl stehen muss um das Makro zuzulassen…
Es würde mir aber auch reichen, wenn das Feld eben „nicht leer“ ist.
Nur wie macht man das?

 Range("F3").Select
 ID = ActiveCell.Value
 If Test = "" Then
 MsgBox ("ID: " & ID)
 end Sub
 End If

ich hab schon mit if Test = Empty oder Null versucht aber irgendwie klappts so garnicht :frowning:

Bitte helft mir…
Danke & Ciaó
Munich

… also ist Test gleich dem Feld dessen Wert nicht sein
darf ? …

… dann füge hinzu:

dim Test a string
Range(„Dein ‚Sperrfeld‘“).Select
Test = ActiveCell.Value

Range(„F3“).Select
ID = ActiveCell.Value
If Test = „“ Then
MsgBox ("ID: " & ID)
end Sub
End If

gna ich bin sooo doof…
Test war natürlich nicht definiert… Das hat man davon, wenn man sich immer alles aus anderen Funktionen zusammenkopiert. Auf ID sollte getestet werden, nicht auf Test.

Danke für den Augenöffner :wink:

Hallo,

ich werd grade noch wahnsinnig, …

das ist normal bei Microsoft :wink:)

Im Detail geht es darum dass in einem bestimmten Feld eine
Zahl stehen muss um das Makro zuzulassen…
Es würde mir aber auch reichen, wenn das Feld eben „nicht
leer“ ist.

So ganz verstehe ich nicht, was du willst.
Test auf leere Zelle:

If IsEmpty(ActiveCell) …

Beachte: IsEmpty ist NICHT = 0 oder leerer String „“ !!
Ebenso Test auf IsNumeric, Is Date usw.

Gruß, Stucki

Ich möchte nämlich überprüfen ob ein Wert leer ist bevor ein
Makro aufgerufen wird oder nicht.
Im Detail geht es darum dass in einem bestimmten Feld eine
Zahl stehen muss um das Makro zuzulassen…
Es würde mir aber auch reichen, wenn das Feld eben „nicht
leer“ ist.
Nur wie macht man das?

Range(„F3“).Select
ID = ActiveCell.Value
If Test = „“ Then
MsgBox ("ID: " & ID)
end Sub
End If

ich hab schon mit if Test = Empty oder Null versucht aber
irgendwie klappts so garnicht :frowning:

Hallo Munich,

Mit folgenden IF-Abfragen sollte es funktionieren:

Sub Makro1()
'

 If IsNumeric(Range("F3")) = True Then
' If IsEmpty(Range("F3")) = False Then 'Alternative Abfrage auf Leer
 'Befehle wenn Zahl vorhanden
 Test = MsgBox("Zelle 'F3' ist ausgefüllt", vbOKOnly, "Leer prüfen")
 Else
 'Befehle wenn keine Zahl vorhanden
 Test = MsgBox("Zelle 'F3' ist leer", vbOKOnly, "Leer prüfen")
 Exit Sub
 End If
End Sub

Gruß
Franz

Test war natürlich nicht definiert… Das hat man davon, wenn
man sich immer alles aus anderen Funktionen zusammenkopiert.

Du solltest daher am Anfang jedes Moduls (Modulblattes) die Anweisung

 Option Explicit

stellen. Dann meckert der VBA-Interpreter, wenn du eine Variable benutzt, die nicht explizit in einer Dim-, Const-Anweisung definiert ist. Die implizite Def. von Variablen sollte wirklich den längst vergessenen Zeiten huddeligen Programmierstils angehören :wink:)

Gruß, Stucki

1 „Gefällt mir“

Hallo Munich!

Excel beinhaltet die Functions ISBLANK, ISNUMERIC, ISTEXT, usw…
Diese Funktionen nehmen den logischen Wert TRUE an, falls der Inhalt des Arguments leer, eine Zahl oder ein Text ist. Schreibst du beispielsweise in Zelle K7 rein
= ISNUMERIC(F3)
So wird die Zelle K7 den Wert TRUE annehmen, sobald in F3 eine Zahl steht, ansonsten hat sie den Wert FALSE. In einem Makro kannst dann die Zelle K7 in einem beliebigen logischen Ausdruck verwenden.

Gruß,

Thomas.