Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VB-Code mit Fehler?

VB-Code mit Fehler?
15.07.2008 10:38:31
HannaG
Hallo,
hab hier Code von Chris gefunden, der mich interessiert.
Wenn man in A1 Wert über 100 eingibt, ertönt Wave und ein Popup erscheint. Bei manueller Eingabe einer Zahl über 100 klappt es.
Aber
Jetzt habe ich inZelle A1 folgend Formel eingetragen:
=WENN(F31>100;150;20)
Wenn sich der Wert in F31 ändert, ändert sich natürlich auch der Wert in A1. Aber der Sound/Popup bleibt aus. Was hab ich da übersehen?
LG Hanna

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column  1 Then Exit Sub
If Target.Address = "$A$1" Then
If Range("A1") > 100 Then
Call sndPlaySound32("C:\ton.wav", 1)
UserForm1.Show
End If
End If
End Sub


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VB-Code mit Fehler?
Matthias
Hallo Hanna,
das Worksheet_Change-Ereignis wird nur bei manuellen Zelleingaben ausgelöst, nicht bei Berechnungen.
Dafür brauchst du das Workshet_Calculate-Ereignis, welches aber bei jeder Berechnung ausgelöst wird, egal welche Zelle(n) davon betroffen sind:

Private Sub Worksheet_Calculate()
Static tmp1, tmp2
tmp2 = tmp1
tmp1 = Range("A1")
If tmp1  tmp2 Then
If Range("A1") > 100 Then
Call sndPlaySound32("C:\ton.wav", 1)
UserForm1.Show
End If
End If
End Sub


Das Trick mit den statischen Variablen sorgt dafür, dass die UF nur aufgerufen wird, wenn sich der Wert von A1 auch wirklich geändert hat (und nicht nur ein Wert in einer ganz anderen Zelle berechnet wurde).
Gruß Matthias

Anzeige
AW: VB-Code mit Fehler?
16.07.2008 10:44:48
mpb
Hallo Hanna,
versuche mal (ungetestet)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column  6 Then Exit Sub
If Target.Address = "$F$31" Then
If Range("A1") > 100 Then
Call sndPlaySound32("C:\ton.wav", 1)
UserForm1.Show
End If
End If
End Sub


Ich bin davon ausgegangen, dass der Wert in F31 geändert wird und dann geprüft werden soll, ob in A1 der über die Formel berechnet Wert größer 100 wird.
Gruß
Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige