Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA MsgBox Wenn Funktion
#1
Hallo zusammen,

Hinsichtlich der Programmierung von MessageBoxen bin ich ein voller Anfänger. Allerdings habe ich mich schon durch viele Tutorials gelesen, finde aber immer noch keine Antwort auf mein Problem.

Und zwar möchte ich eine MsgBox aufrufen lassen, wenn in der Zelle E8 der Text "keine Kosten" steht. Der Text "keine Kosten" wird durch eine Wenn Formel in Excel erstellt, falls die Info für die VBA wichtitg ist.

Das Design der MessageBox habe ich schon: MsgBox "Prüfung kritisches Bauteil", vbExclamation + vbOKCancel, "Achtung"
Allerdings bekomme ich die If-Verknüpfung zu der Zelle und dem Text nicht hin. Könnt ihr mir dabei weiterhelfen?

Im zweiten Schritt würde ich gerne einen Schritt weiter gehen. Und zwar,wenn man in der MsgBox "Ok" anklickt , dass sich ein weiteres Dokument öffnen lässt und bei "Abbrechen" einfach die MsgBox schließen. Gerne reicht mir aber der erste Schritt schon!!!

Danke euch!
Antworten Top
#2
Hallo Susi,

das ist schon entscheidend ob per Formel oder mit händischer Eingabe. Hierzu sollte man aber wissen, in welcher Zelle eine Eingabe erfolgt, die dann deine Formel in E8 auslöst. Zeig mal die Formel in E8.

Gruß Werner
Antworten Top
#3
Habe eine Lösung gefunden:

Private Sub Worksheet_Calculate()
 If ActiveSheet.Range("E8").Value = "Keine Kosten" Then
 If MsgBox(prompt:="Prüfung kritisches Bauteil", _
            Buttons:=vbExclamation + vbOKCancel, _
            Title:="Achtung") = vbOK Then
    Workbooks.Open Filename:="filename...."
End If
 
 End If

 End Sub

Trotzdem Danke!
Antworten Top
#4
Hallo Susi,

dann viel Spaß damit. Das Makro löst bei jeder Neuberechnung, egal wo auf dem Blatt diese Berechnung stattfindet, aus.

Gruß Werner
Antworten Top
#5
Hallöchen,

um das mal noch zu konkretisieren - wenn in E8 "Keine Kosten" steht, dann bekommst Du die Meldung bei jeder Neuberechnung, wie Werner es meint. Steht dort was anderes, dann kommt natürlich keine Meldung.

Wenn Du auf eine Eingabe der in der Formel verwendeten Zellen reagierst, dann kommt die Meldung nur dann, wenn Deine Eingabe zu dem Ergebnis führt. Allerdings musst Du eventuell mehrere Blätter berücksichtigen oder beim Öffnen der Datei auch eine andere Mappe, falls sich die Formel auf "externe" Daten bezieht.

Weiterhin gibt es Sonderfälle, wo kein Change-Ereignis ausgelöst wird, z.B. bei Eingabe über eine Combobox Sad

Aber, wie Werner schon sinngemäß schrieb, wäre die Kenntnis Deiner Formel angebracht...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste