WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VBA: Vergleichen von Ergebnissen (http://www.wcm.at/forum/showthread.php?t=141103)

|\/| E P H I S t 0 05.08.2004 09:10

VBA: Vergleichen von Ergebnissen
 
Hallo!


Ich bin VBA Noob, und würd gern wissen warum folgendes nicht funktioniert:

[...]------------------------------------------------------------
Randomize
Dim z1, z2, erg, antwre

z1 = Int((100 * Rnd) + 1)
z2 = Int((100 * Rnd) + 1)
erg = z1 + z2

antwre = InputBox("Was ist " & z1 & " + " & z2 & " ?", "Rechenaufgabe")
If antwre = erg Then
GoTo mehrr
Else
GoTo mehrf
End If
[...]-------------------------------------------------------------

Es sollte folgendes machen: Rechenbeispiel stellen, bei Richtiger Antwort zur Marke "mehrr" springen, bei falscher zur "mehrf", er springt jedoch immer zu "mehrf", auch bei richtigem Ergebnis.

Was hab ich da falsch gemacht?
(Ich weiß, is ne dumme Frage, und ziemlich "noob-haft", aber jeder fängt mal an.

Dankes

xlazarus 05.08.2004 09:35

Naja, jeder Anfang ist schwer.
... aber über Syntax kann man ja streiten.
;)

Ich denke mal, du solltest vielleicht den Rückgabewert von :

antwre = CInt(inputbox(.....))


auf integer casten, denn sonst vergleichst du ja einen String mit einem Intergerwert, und das ist in Folge immer falsch!
... generell würde ich dir überhaupt empfehlen, deine Variablen ordentlich zu deklarieren, denn da fallen dir solche Fehler schneller auf.

Dim i,y,x as Interger
Dim wort as String

.. etc.

ich hoffe das hilft dir,
XL

|\/| E P H I S t 0 05.08.2004 09:37

Des weiteren funktioniert mein "Auto-Aktualisierungs-Makro" auch nicht so ganz wie ich mir das vorstelle:


---------------------------------------------------------------
Worksheets("Tabelle2").Range("A1").FormulaR1C1 = Now()
---------------------------------------------------------------

das sollte jede volle Sekunde ausgeführt werden. Mit GoTo oder Do Loop hat sich Excel jedoch immer aufgehängt:

---------------------------------------------------------------
Top:
Worksheets("Tabelle2").Range("A1").FormulaR1C1 = Now()
If Application.Wait(Now + TimeValue("0:00:01")) Then GoTo Top
---------------------------------------------------------------

was ja auch verständlich ist, da er in einer Endlos-Schleife landet.
Aber es muss doch möglich sein das mit geringe Systemleistung zu Automatisieren, oder?

flinx 05.08.2004 10:05

Application.Ontime ?

|\/| E P H I S t 0 05.08.2004 10:20

Danke, es hat funktioniert. Sorry nochmal, aber ich kenn mich halt noch nicht so aus.

|\/| E P H I S t 0 06.08.2004 08:01

Um nicht noch einen Thread eröffnen zu müssen (wird langsam peinlich ;) ) schreib ichs hier rein, ist nämlich wieder mal die Frage nach einem Befehl:

Mit welchem Befehl kann man feststellen, also mit Ture oder False Rückgabe, ob ein Sub läuft, oder nicht?

Der zu überprüfende Sub:
--------------------------------------------------------------------
Sub auto()

Worksheets("GUI").Range("D13").FormulaR1C1 = Now()
Application.OnTime Now + TimeValue("00:00:01"), "auto"

End Sub
--------------------------------------------------------------------

Da sich dieser Sub permanent ausführt, müsste man doch feststellen können ob er aktiv ist, und falls er es ist, fragen ob er abgestellt werden soll.

Jemand sollte den Thread in "Diverse VBA-Fragen" ändern ;)

Danke nochmal
Greetz


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag