Excel 03 VBA Pop-up wenn x=0

fiedlator

Commander
Dabei seit
Okt. 2002
Beiträge
2.192
Hallo zusammen,
ich möchte ich meiner Exteltabelle ein kleines Makro haben. Wenn der Wert einer Zelle kleiner ODER größer ist, als der einer anderen, soll ein Popup-Fenster mit einer Fehlermeldung auftauchen, welches dann mit ok bestätigt werden soll. Ich bin kein VBA-Künstler, aber ihr könnt mir da evtl. helfen!? :)

Merci!

Edit: Bin jetzt schon etwas weiter gekommen um habe so angefangen:

Private Sub Worksheet_Change(ByVal Target As Range)

Const MaxWert As Double = 0 'maximaler Wert
Const Adresse As String = "$A$57" 'zu prüfende Zelle

'Wenn geänderte Zelle ungleich Adresse abbrechen
If Target.Address <> Adresse Then Exit Sub

'Wenn Zellinhalt größer Maxwerte --> Messagebox zeigen
If Target.Value <> MaxWert Then
MsgBox "Bitte überprüfen Sie die Konfiguration", vbOKOnly, "Hinweis"
End If
End Sub

Das Problem: Die Bezugszellen erhalten ihren Wert durch Formeln. Gebe ich den Zahlenwert per Hand ein, funktioniert das Makro und das Pop-up kommt. Wird der Zelleninhalt dagegen durch die Formal geändert, weil ich den Wert in anderen Zellen ändere, kommt die Meldung nicht. Genau das soll jedoch funktionieren! Derzeit reagiert das Makro also nur auf direkte EIngabe in der Zelle. Wie kann ich das ändern?
 
Zuletzt bearbeitet:
M

Mr. Snoot

Gast
Da müsstest du wohl die Zelle prüfen, in der deine Eingabe erfolgt und nicht die, in der die Formel steht. Ist ja im Grunde dasselbe - du musst halt dann auch im Makro deine Eingabe in derselben Formel verwursten und das Ergebnis prüfen.

Alternativ gäbe es Worksheet_Calculate, aber das bezieht sich dann aufs ganze Tabellenblatt, ein Target gibt's hier leider nicht.
 

fiedlator

Commander
Ersteller dieses Themas
Dabei seit
Okt. 2002
Beiträge
2.192
Das Problem ist, dass sich die Formel auf eine Summe von Zellen bezieht. ALso nicht auf eine einzelne Zelle. Ich habe noch eine andere Lösung gefunden. Die sieht folgendermaßen aus.

Private Sub Worksheet_Calculate()

Const MaxWert As Double = -1 'maximaler Wert

'Wenn Zellinhalt größer Maxwerte --> Messagebox zeigen
If Range("D59").Value = MaxWert Then
MsgBox "Bitte überprüfen Sie die gewählte Konfiguration.", vbOKOnly, "Hinweis"
End If


End Sub


Das Problem von oben hab ich damit behoben. Jetzt habe ich allerdings noch dasProblem, dass ich eine AND Funktion brauche. Also zusätzlich zu Value D59 = Wert brauche ich noch UND Wert Zelle A5 = 0. Wahlweise würde auch gehen A5=0 UND D59=1, dann Meldung. Dieser Variante wäre eigentlich noch besser. Kann mir jmd sagen, wie ich das dann programmiere? Dann wäre das Thema auch abgehakt :)

Merci.
 
M

Mr. Snoot

Gast
If Range("D59").Value = 1 And Range("A5").Value = 0 Then
 
Zuletzt bearbeitet:

fiedlator

Commander
Ersteller dieses Themas
Dabei seit
Okt. 2002
Beiträge
2.192
Habs hinbekommen..alles gut :) - merci
 

fiedlator

Commander
Ersteller dieses Themas
Dabei seit
Okt. 2002
Beiträge
2.192
Mal noch eine kleine Frage aus Interesse: Wieviel Aufwand, wie kompliziert, ist es eigentlich, aus so einer Tabelle gleich ein entsprechendes .exe-Programm zu basteln? Kann man sowas mit moderatem Zeitaufwand lernen?
 
Top