Excel vba: if-bedingung erkennt zellenwert nicht

Hallo,
ich habe eine exceldatei in der bestimmte zellen durch funktionen werte bekommen. nun habe ich ein makro geschrieben mit einer if abfrage. bei der if bedingung wird jedoch der inhalt der zelle mit der funktion nicht erkannt.

bsp.
vba: if worksheets(1).cells(1,1) = 2 then

so in der zelle 1,1 steht eine 2, jedoch ist dort eine funktion hinterlegt. eigentlich wäre die if bedingung erfüllt aber irgendwie wir die 2 in der zelle nicht erkannt.

kann mir einer helfen

vielen dank

Hallo, versuche es in einem Modul mit:
Sub test()
If Worksheets(1).Cells(1, 1) = 2 Then
MsgBox "Hier steht: " & Cells(1, 1)
End If
End Sub
Rufe das Makro dann auf.
Gruß Wolfgang

möglicherweise ist das ergebnis der formel nicht genau 2, aber das ergebnis wird ohne nachkommastellen dargestellt.

oder es wird als text ausgegeben und muß noch in eine zahl umgewandelt werden.

als erstes könntest du versuchen, die vorhandene formel noch mit „=ganzzahl(…)“ zu ergänzen.

eine freundin von mir sagt immer: es bleibt spannend …

Hallo,
komme gerade von einer langen Wanderung zurück und bin müde, trotzdem kurz auf die Schnelle: mit Cells(row,col) adressiert man normalerweise den Wert, d.h. genauer Cells(row,col).Value, man kann aber auch die Formel mit Cells(row,col).Formula abfragen.
Vielleicht hilfts, viel Erfolg
Rainer

Hallo,

einfach mal den Wert in Anführungszeichen setzen:

> if worksheets(1).cells(1,1) = „2“ then

Das sollte das Problem lösen…

Ich weiß ja nicht wie komplex die Abfrage ist bzw. worum es genau geht. Ich würde allerdings empfehlen mit Variablen und Select Case zu arbeiten.

Grüße,
Janski76

Hallo db_hans,

ich konnte das Problem leider nicht nachstellen. Bei mir hat es ausgezeichnet funktioniert. Habe es mit Excel2003 ausprobiert.

Alternativ kannst du noch versuchen mit
Value2
auf den Wert zuzugreifen. Also mit
worksheets(1).cells(1,1).Value2
das sollte dann auf jeden Fall funktionieren.

Viele Grüße
Philipp

Hallo,
bitte den Code vervollständigen. Es muss

if worksheets(1).cells(1,1).value = 2 then

heißen. Dann sollte es funktionieren.

Gruß
Natator

If worksheets(1).Cells(1,1). Value = 2 then

Hi,

Um den Wert abzufragen fehlt noch in der Bedingung .value, damit die die Bedingung weis, dass der Wert der Zelle gefragt ist .

Der Befehl sollte so aussehen

vba: if worksheets(1).cells(1,1).value = 2 then

Damit sollte es klappen.

mfg
Micha

Hallo,
danke für die schnelle Hilfe.
Gruß
Hans

Kein Problem.
Gern geschehen.

Gruß
Micha

lass dir den wert der zelle doch mal mit msgbox anzeigen, dann weißt du was excel zurückgibt
Dann kann man weiterschauen,

Gruß

Hallo,
kann ich mir nicht vorstellen, dass das nicht funktioniert. Selbst wenn die 2 in einem anderen Format (z.B. Text) dort stünde, müsste die if-Klausel das erkennen. Vielleicht liegt der Fehler woanders. Schick doch mal ne Musterdatei, wo das drin vorkommt.

Jürgen

Hallo db_hans,

ich hab mir ein Beispiel mal nachgebaut und bei mir erkennt die if-Abfrage den Wert 2 obwohl dieser aus einer Funktion stammt.

Probier mal folgendes worksheets(1).cells(1,1).value

Welche Funktion verwendest Du?

Hallo,
da problem hat sich erledigt. Es funktioniert jetzt auch bei mir!!

Hallo,
leider bin ich erst gestern vom Urlaub zurückgekommen und muss nun an die 100 E-Mails abarbeiten. Aus diesem Grund kann ich die nächsten Tage nichts zu Problemlösung beitragen. Ich hoffe, du findest jemand, der dir helfen kann.
Gruß
Mario