Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Inhaltsverzeichnis

Zählenwenns zum prüfen ob Daten vorhanden

Zählenwenns zum prüfen ob Daten vorhanden
29.06.2016 10:21:03
Juliane
Hallo,
ich habe eine riesen Excel-Tapete und würde gern eine Möglichkeit zur "Warnung" einrichten, um den Nutzer darauf aufmerksam zu machen, wenn Werte fehlen.
In der Theorie (die leider nicht klappt) hatte ich mir das so gedacht:
1. Schritt: Über der Spaltenüberschrift mache ich mir eine Hilfs-Zelle in der steht:
=ZÄHLENWENNS(A:A<>"";B:B="")
Leider funktioniert die Formel nicht.
2. Schritt: Nun wollte ich in dem Fall, dass in der Zelle eine Zahl größer 0 erscheint, eine Warnung ausgeben. Eine Möglichkeit wäre, diese Zelle dann einfach rot einzufärben. Das fällt schonmal auf. Bessere Möglichkeit wäre, wenn es ein Popup-Fenster gäbe. Das die Info ausgibt, man möge doch die Einträge überprüfen. Dieses soll aber die Eingabe nicht verhindern, sondern nur als Info erscheinen.
VG und lieben Dank vorab
Juliane

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zählenwenns zum prüfen ob Daten vorhanden
29.06.2016 10:23:43
SF
Hola,
zu 1.
=zählenwenns(A:A;"";B:B;"")
Zu 2.
Das PopUp Fenster wird so wohl nur über VBA zu realisieren sein. Ansonsten wäre für eine Rotfärbung die bedingte Formatierung da.
Gruß,
steve1da

AW: Zählenwenns zum prüfen ob Daten vorhanden
29.06.2016 10:46:02
Juliane
Ok, die Formel passt jetzt. Danke.
Zu 2.: Gibt es hier evtl. eine ähnliche Funktion wie bei "Datenüberprüfung". Ich finde es super, dass sich hier Warn- bzw. Hinweis aufpoppen lassen. Nur leider funktioniert das bei mir nur, wenn Daten tatsächlich eingegeben werden und nicht wenn sich der nicht-zulässige Wert aufgrund einer Formel automatisch ergibt.
Oder geht das doch irgendwie?

Anzeige
per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 11:16:46
Juliane
Also ich wollte es jetzt doch mal mit VBA probieren. Aber leider geht ach das nicht. Kann mir vielleicht hier jemand einen Tipp geben?
In C6 steht die zählenwenns-funktion drin. Wenn hier der Wert größer 0 ist, dann soll wie gesagt eine Fehlermeldung kommen.
Ich habe bereits ein Makro. In diesem habe ich einfach am Ende ergänzt:
...
If zSh.Range("C6") > "0" Then
MsgBox "Warnung"
End If
...
~f~
Zur Info, z.Sh hatte ich schon vorher im Marko definiert als
~f~
=Set zSh = Sheets("Reiter 1")
Beim Kompilieren markiert er mir die If-Zeile gelb. Woran könnte das liegen?
VG und besten Dank

Anzeige
AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 12:09:40
Christian
Hi,
wenn du den folgenden Code in das Blatt kopierst sollte es funktionieren:
(Rechtsklick auf den Blattnamen und dann Menüpunkt 'Code Anzeigen', und dann Code einfach einfügen.)
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C6").Value > 0 Then
MsgBox "Fehler in Spalte 1 und/oder 2", vbCritical
End If
End Sub
Gruß, Christian

AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 12:21:35
Juliane
Super, danke. Ich probiere es nachher mal aus.
VG

AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 12:16:19
Zwenn
Hallo Juliane,
wenn Du den folgenden Code in den Code Bereich des zu überwachenden Tabellenblattes einfügst (NICHT in ein Modul), dann wird das Makro bei jeder Neuberechnung von Formeln ausgelöst. Im Select Bereich wird Deine Zelle C6 überwacht und entsprechend ihres Wertes wird reagiert. Ergibt die Formel in C6 einen Wert größe 0, wird die Zelle rot eingefärbt und es kommt der Warnhinweis. Ergibt die Formel genau 0, dann wird die Farbe zurückgesetzt und es passiert gar nix weiter.
Problem bei der Sache und für Dich der nächste Nervfaktor ;-) Die Formel in C6 wird bei Anpassungen in den überwachten Spalten jedesmal neu berechnet und deshalb kommt jedesmal der Warnhinweis, solange es nicht die letzte Anpassung war und endlich 0 in C6 steht. Deshalb lasse ich das Problem mal offen.

Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Select Case Range("C6").Value
Case 0
Range("C6").Interior.Color = xlNone
Case Is > 0
Range("C6").Interior.Color = RGB(255, 0, 0)
MsgBox "Warnung"
End Select
Application.EnableEvents = True
End Sub
Viele Grüße,
Zwenn

Anzeige
AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 12:22:17
Juliane
Danke Zwenn,
(auch fürs Mitdenken). Ich werde nachher mal ein bisschen rumspielen und gucken was passiert ;)
Super Lösung!

AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 13:41:42
Juliane
Hallo Zwenn,
du hast Recht! Leider "nervt" das Makro so wie es jetzt ist. Sobald ich nur irgendetwas in dem Reiter arbeite, erscheint jedes Mal die Nachricht.
Kannst du mir nicht helfen, es in das bereits vorhandene Modul zu integrieren? Ich habe in dem gleichen Reiter ja bereits einen Button, der Werte aktualisiert. Wenn das Makro durchläuft, könnte ich doch eigentlich am ende noch die Prüfung von D6 ranhängen, oder nicht? Dann prüft er doch nur bei jedem Makro-Durchlauf, nicht aber bei jeder Berechnung im Blatt, richtig?
VG

Anzeige
AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 14:05:24
Zwenn
Hallo Juliane,
Du kannst einfach den Select-Block an der richtigen Stelle in Deinem Modul einbauen. Dann passiert die Überprüfung der Zelle bei jedem Makrodurchlauf, wie Du geschrieben hast. Du musst nur entscheiden, ob die Prüfung am Anfang durchgeführt und das Makro ggf. abgebrochen werden soll oder ob Dir eine Prüfung am Ende reicht.

... 'Hier Code vor der Prüfung
Select Case Range("C6").Value
Case 0
Range("C6").Interior.Color = xlNone
Case Is > 0
Range("C6").Interior.Color = RGB(255, 0, 0)
MsgBox "Warnung"
End Select
... 'Hier Code nach der Prüfung
Viele Grüße,
Zwenn

Anzeige
AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 14:12:13
Juliane
Ok, danke.
d. h.
Application.EnableEvents = False
und dann noch mal am ende = True, so wie du es vorher im Code hattest, brauche ich dann nicht mehr?
Zur Itneresse: Was bewirken diese Zeilen?
Danke dir

AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 14:33:56
Zwenn
Hi Juliane
Das Makro, dass Du in das Tabellenblatt eingefügt hast reagiert auf ein sogenennates Event. In dem Fall auf die Neuberechnung von Formeln, Das Calculate-Event. Die erste Zeile des Makros ...
Private Sub Worksheet_Calculate()
... ist in Excel sozusagen fest verankert. Sie sagt Excel, das dieses Makro auf das Calculate-Event reagieren soll. Christian hat das Change-Event in seinem Makro verwendet, dass er Dir zur Lösung angeboten hat. Bei dem reagiert Excel auf die erste Zeile des Makros, wenn eine Änderung im Tabellenblatt stattfindet. Die Neuberechnung einer Formel löst das Change-Event aber nicht aus, weshalb ich annehme, seine Lösung hat für Deinen Fall nicht funktioniert.
Die Zeilen ...
Application.EnableEvents = False
... und ...
Application.EnableEvents = True
... schalten die Event Erkennung aus, bzw. wieder ein. Das wird gebraucht, falls innerhalb dieser Zeilen etwas gemacht wird, was das Event neu auslöst. Es wird also verhindert, dass das Makro sich selbst aufrufen kann.
Viele Grüße,
Zwenn

Anzeige
AW: per Makro kriege ich die MsgBox leider auch nicht
29.06.2016 14:39:18
Juliane
Danke für die Erklärung.
Liebe Grüße

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige