Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

in VBA Null, "", und 0 richtig erkennen

in VBA Null, "", und 0 richtig erkennen
04.07.2008 19:45:00
Karsten
Hallo VBA Freaks,
in meiner Tipprundentabelle soll allen Mannschaften, die noch nicht gespielt haben, 0 Punkte zugewiesen werden. die Zellen sind als Zahl ohne Dezimalstellen formatiert. Nun versuche ich, genau diese Konstellation abzufragen (Erster teil der If Abfrage). Der zurückgegebene Wert ist aber immer 0. Somit wird dieser Teil der Abfrage immer übersprungen. Hat jemand eine Lösung?
Hier nun die Zeilen meines VBA-Codes (zum Verständnis etwas vereinfacht)
'Bei Spieltagen , die nur zum Teil gespielt sind (Freitag ein Spiel, Samstag 6 Spiele, Sonntag 2 Spiele)
'die Punkte der Mannschaften auf Null setzen, die noch nicht gespielt haben
If IsNull(Zelle1)) Then
Punkte1 = 0
Punkte2 = 0
Else
'Punkte berechnen
If TG1 > TG2 Then Punkte1 = 3
If TG1 If TG1 = TG2 Then
Punkte1 = 1
Punkte2 = 1
End If
End If
Vielen Dank für die Anregungen/Lösungen im Vorraus
Gruß Karsten

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in VBA Null, "", und 0 richtig erkennen
04.07.2008 20:04:23
Reinhard
Hi Karsten,

Punkte1 = (1 - 2 * (TG1 > TG2) - 2 * (TG2 > TG1)) * ((Range("A1") * 1  0) * -1)
Punkte2 = Punkte1


Gruß
Reinhard

AW: in VBA Null, "", und 0 richtig erkennen
04.07.2008 20:15:30
Karsten
Hallo Reihard,
ich verstehe diese Formel nicht. Kannst Du das mal inmeinen Code einbauen?
Gruß Karsten

AW: in VBA Null, "", und 0 richtig erkennen
04.07.2008 20:20:08
Reinhard
Hi Karsten,
in deinen Code einbauen geht nicht, der Zweizeiler ersetzt deinen Code
Gruß
Reinhard

AW: in VBA Null, "", und 0 richtig erkennen
04.07.2008 20:50:42
Karsten
Hallo Reinhard,
hier nun etwas ausführlicher.
Ich lese aus bestimmten Zellen die Ergebnisse des aktuellen Bundesligaspieltages aus und übergebe diese an ein Array. Beim Auslesen der Ergebnisse bekomme ich dann für diejenigen Begegnungen , die noch nicht gespielt wurden und ich auch keine Werte im Sheet eingetragen habe immer eine 0 zurück.
Wenn eine Spielpaarung noch nicht stattgefunden hat, dann soll meine VBA-Prozedur 0 Punkte für die Vereine x und Vereine y im Array speichern. Hier speichert mir die VBA-Prozedur aber immer die Ziffer 1. Weil diese beiden Nullen (0) ein Unentschieden vortäuschen, für ein Spiel, welches noch gar nicht stattgefunden hat. Somit wird für beide Vereine eine 1 als Punkt vergeben.
Das soll nicht sein, Ich erwarte hier eine 0 als Punkt für die beiden Vereine.
ich weiß nicht, ob der VBa-Code filfreich ist, aber ich stelle ihn mal zur Verfügung.

Public Function Spieltage_lesen(a, b, c, d, f)
'Spieltage 1 bis zum aktuellen Spieltag vom Sheet "Master" lesen
Debug.Print "k", "Spt", "TG", "TK", "TD", "Verein"
If Sheets("Master").Visible = False Then
Sheets("Master").Visible = True
Aktuelles_Sheet_ausblenden
'Sheets("Master").Select
End If
'Spiele vom Sheet Master einlesen
If a = 1 Then 'Spieltage 1-17 bzw. 18-34
a = 1
Else
a = 18
End If
k = 1 'Variablen innerhalb eines Spieltages auf eins setzen
For x = 4 To 220
With myErgebnis(a)
.Verein(k) = Cells(x, b)
.TG(k) = Cells(x, d)
.TK(k) = Cells(x, f)
.TD(k) = .TG(k) - .TK(k)
Debug.Print k, a, .TG(k), .TK(k), .TD(k), .Verein(k)
k = k + 1 'Variablen innerhalb eines Spieltages um eins erhöhen
.Verein(k) = Cells(x, c)
.TG(k) = Cells(x, f)
.TK(k) = Cells(x, d)
.TD(k) = .TG(k) - .TK(k)
Debug.Print k, a, .TG(k), .TK(k), .TD(k), .Verein(k)
'Nur bis zum aktuellen Spieltag einlesen
'fehlt noch
'Bei Spieltagen , die nur zum Teil gespielt sind (Fr/Sa/So)
'die Punkte auf Null setzen, bei den Mannschaften, die noch nicht gespielt haben
If IsNull(.TG(k - 1)) Then
.Punkte(k - 1) = 0
.Punkte(k) = 0
Else
'Punkte berechnen
If .TG(k - 1) > .TG(k) Then .Punkte(k - 1) = 3
If .TG(k - 1) 


Anzeige
AW: in VBA Null, "", und 0 richtig erkennen
08.07.2008 14:23:50
ede
hallo,
dann schau Dir mal die Funktion IsEmpty() an!
Aus der Hilfe:
IsEmpty-Funktion (Beispiel)
In diesem Beispiel wird die IsEmpty-Funktion verwendet, um zu bestimmen, ob eine Variable initialisiert wurde.
Dim Var1, Test1
Test1 = IsEmpty(Var1) ' Liefert True.
Var1 = Null ' Null zuweisen.
Test1 = IsEmpty(Var1) ' Liefert False.
Var1 = Empty ' Empty zuweisen.
Test1 = IsEmpty(Var1) ' Liefert True.
Gruss
FE

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige