Excel VBA soll den Wert meiner Funktion erkennen?

... komplette Frage anzeigen

2 Antworten

Das liegt nicht an der Funktion.
Auch damit klappt es.
Allerdings sehe ich das Problem darin, dass Du das SelectionChange-Ereingins abrufst. DAS wird natürlich nicht ausgelöst, wenn sich durch die Formel (z.b bei Drücken von F9) etwas ändert, sondern nur wenn Du - zusätzlich eine andere Zelle anklickst.
Bei Deinem Code, der wie Du sagst funktioniert, wird übrigens immer, wenn eine andere Zelle angeklickt wird und in dem Moment gerade 1 in A1 steht zu A2 eine 1 addiert. Ich glaube nicht, dass das Absicht ist, oder? (Da müsstest Du das target noch einschränken, siehe mein Beispiel)

Sinnvoller wäre da schon das Change-Ereignis.
Allerdings wird DAS nur ausgelöst, wenn eine Zelle "per Hand" geändert wird, also nicht, wie in Deinem Beispiel mit ZUFALLSBEREICH.
DARAUF zu reagieren wird schwierig.
Ist DAS dann das, was Du wirklich in Deinem Vorhaben realisieren willst, oder war das nur ein Beispiel zur "Vereinfachung"?
Vielleicht kannst Du Dein Vorhaben mal umreißen?
Ich gebe schon mal ein Beispiel, mit -Change, bei dem in A1 eine Formel steht -hier zum Beispiel =B1*C1 - und der Wert in A2 immer um 1 erhöht wird, wenn das Ergebnis in A1 gleich 1 ist:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1:C1")) Is Nothing Then
If Range("A1").Value = 1 Then
Range("A2").Value = Range("A2").Value + 1
End If
End If
End Sub
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von hanshuberplayer
27.12.2015, 16:16

ja es ist eine vereinfachung ich möchte eine art Zähler basteln der wenn ich F9 drücke die einsen meines zufallsgenerators zählt jedoch weiß ich nicht genau wie das geht ....

0

Die Mischung aus Formel für den Zufallsgenerator und VBA ist eher nicht ideal. Wenn Du es nur mit Formeln lösen willst, dann nimmst Du ZUFALLSBEREICH einfach in einer Spalte untereinander, so viele Versuche Du eben auswerten willst und kannst mit ZÄHLENWENN die Anzahl der 1er ermitteln.

Oder auch die Zufallszahl in VBA ermitteln:
Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von hanshuberplayer
27.12.2015, 16:49

ok und wenn ich eine wenn funktion verwende =WENN(Prüfung;1;"") kann ich da dann irgendwie die 1er zählen????

0

Was möchtest Du wissen?