Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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

MessageBox an Wenn-Bedingung knüpfen

MessageBox an Wenn-Bedingung knüpfen
25.01.2018 16:31:02
Gesa
Hallo zusammen,
bin ganz neu hier und versuche mich derzeit mit den Kinderfüßen der VBA-Welt.
Ich habe eine Datei, in der in Spalte "R" per Wenn-Formel das Wort "POP" steht, oder eben nicht. Ich würde gerne, sobald in einer Zeile von R irgendwo das Wort "POP" auftaucht, eine MessageBox öffnen lassen, in der der Hinweistext steht "Achtung!".
Kann mir da jemand helfen?
Ich habe mir einen Teil schon zusammen gebastelt, allerdings läuft das nur auf einer Zelle, die ich benenne. Sobald es eine andere ist, klappt der Code nicht mehr. Was muss ich anpassen?
Sub MessageBox()
Sheets("Umwandlung").Activate
If Cells(6, 18) = "POP" Then
MsgBox ("Achtung!")
End If
End Sub

Vielen Dank für die Hilfe
MfG
Gesa

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MessageBox an Wenn-Bedingung knüpfen
25.01.2018 17:26:11
Daniel
Hi
wenn du eine mehrere Zellen überwachen willst, könntest du ZÄHLENWENN verwenden.
ich würde hier auch keine Messagebox verwenden, sondern z.B. in die Zelle S1 diese Formel schreiben:
=Wenn(ZählenWenn(R:R;"POP")>0;"Achtung";"")

das hätte den Vorteil, dass die Meldung einerseits nicht weiter stört, andereseits aber auch erst dann verschwindet, wenn auch das letzte "POP" weg ist.
das ZählenWenn könntest du auch in dein Makro einbauen:
If Worksheetfunction.CountIf(columns(18), "POP") > 0 Then
Msgbox "Achtung", vbCritical
End If
Gruß Daniel
Anzeige
AW: MessageBox an Wenn-Bedingung knüpfen
25.01.2018 17:31:06
onur

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z, s, a
z = Target.Row
s = Target.Column
If s  18 Then Exit Sub
a = Target.Text
If Target.Text = "POP" Then MsgBox "Achtung"
End Sub

AW: MessageBox an Wenn-Bedingung knüpfen
25.01.2018 18:55:57
Daniel
HI Onur
1. Das POP wird nicht von Hand eingegeben, sondern per Formel erzeugt.
Somit ist CHANGE das falsche Event.
Wenn du hier mit CHANGE arbeiten willst, müsstest du diejenigen Zellen überwachen, auf welche sich die Formeln in Spalte R beziehen und nicht die Zellen mit der Formel selbst.
Wenn du die Spalte mit der Formel überwachen willst, musst du das CALCULATE-Event nehmen, welches auslöst wenn eine Formel auf dem Blatt neu berechnet wurde (wobei du nicht feststellen kannst welche und ob sich hierbei die Formelergebnisse geändert haben)
2. Sollte man beachten, dass TARGET im Change- und Selection-Change-Event auch mehr als eine Zelle enthalten kann und der Ausdruck "Target.Text" oder "Target.Value" ein Array ergibt und keinen Einzelwert was dann bei Target.Text = "POP" zu einem Fehler führt.
Lediglich beim Before_DoubleClick-Event ist TARGET immer eine Einzelzelle.
Gruß Daniel
Anzeige
AW: MessageBox an Wenn-Bedingung knüpfen
25.01.2018 19:46:49
onur
OOPS, habe vergessen, dass er "Veränderung durch Formel" schrieb.
AW: Rückfrage
25.01.2018 20:44:04
Gerd
Hi
...und der Ausdruck "Target.Text" oder "Target.Value" ein Array ergibt und keinen Einzelwert
Kannst du Ersteres belegen?
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print IsArray(Target.Text)
End Sub

cu Gerd
AW: Rückfrage
26.01.2018 11:22:26
Daniel
ok ist falsch.
gibt kein Array, sondern NULL
das ist für diese Prüfung genauso wenig brauchbar wie das Array und hat die gleichen Konsequenzen.
Auch mit dem Array von Target.Value kannst du nicht sinnvoll arbeiten, da die Zellen von Target ja nicht unbedingt lückenlos zusammen hängen müssen und das Array das nicht abbilden kann.
Gruß Daniel
Anzeige
AW: Rückfrage
25.01.2018 21:00:57
Gerd
Hi
...und der Ausdruck "Target.Text" oder "Target.Value" ein Array ergibt und keinen Einzelwert
Kannst du Ersteres belegen?
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print IsArray(Target.Text)
End Sub

cu Gerd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige