Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zelle bei Änderung in Msgbox ausgeben

Betrifft: Zelle bei Änderung in Msgbox ausgeben von: Markus
Geschrieben am: 06.11.2014 09:13:34

Hallo Zusammen,

ich möchte eine Zelle z.Bsp. B3 als Msgbox ausgeben, aber nur wenn sich Zelle B3 ändert. Die Zelle wird mit einer Formel berechnet. Die Msgbox sollte nur einmal
angezeigt werden und erst bei der nächsten Änderung der Zelle B3 und auch nur in diesem Sheet.
Ich habe es auch schon mit Calculate versucht jedoch ohne Erfolg!

Das ist mein Ansatz.
Die Msgbox wird jedoch bei jedem Zugriff auf eine Zelle angezeigt.

If Worksheets("Test").Cells(2, 3).Value = "0" Then
Exit Sub
Else
MsgBox "Achtung! " _
& vbCrLf & "Bitte folgende Info beachten! " _
& vbCrLf _
& vbCrLf & [b3]
End If

Vielen Dank für Eure Hilfe.
Gruß Markus

  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: Frank
Geschrieben am: 06.11.2014 12:01:35

Hallo Markus,

dafür bietet sich das Ereignis Worksheet_Change-Ereignis an.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then
    Dummy = MsgBox("Es ist vollbracht!", vbOKOnly, "B3 hat sich geändert")
End If
End Sub
Grüsse, Frank


  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: Markus
Geschrieben am: 06.11.2014 13:26:47

Hallo,

funktioniert bei mir nicht!
Die Variable ist nicht definiert und ohne läuft es auch nicht.
Habe es in das Sheet geschriebn!?

Danke.
Gruß Markus


  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: hary
Geschrieben am: 06.11.2014 13:54:10

Moin
Evtl. besteht die Moeglichkeit den Wert aus B3 in eine andere Zelle zu setzen. Nach dem Calculate wird verglichen und neu reingeschrieben.
D5 ist nur eine Bsp. Zelle

Private Sub Worksheet_Calculate()
 If Range("D5").Value <> Cells(3, 2).Value Then
  MsgBox "Wert geaendert"
  Range("D5").Value = Cells(3, 2).Value
 End If
End Sub

ansonsten mal mit einer Public Variablen probieren.
In Open Ereigniss die variable setzen und auch vergleichen.
gruss hary


  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: Frank
Geschrieben am: 06.11.2014 16:42:12

Hallo Markus,

Die Variable ist nicht definiert und ohne läuft es auch nicht - Dann in den Abschnitt Deklarationen ein Dim Dummy einfügen oder das Option explicit löschen. Dann läuft es auch, ohne die Variable zu deklarieren.

MsgBox Target.Value funktioniert auch, einfach so als Zeile. Die Variablenzuweisung braucht man nur, wenn man noch Optionen für die Msgbox nutzen will (hier: Titelzeile und OK-Button). Weil man die Variable hier für sonst nix braucht, heisst die auch Dummy.

Den Code meines vorigen Postings kopieren, mit Alt-F11 den VBA-Editor öffnen, links in der Baumansicht des Projekts auf das Tabellenblatt doppelklicken und den Code einfügen. Ggf. noch das "Es ist vollbracht!" durch Target.value ersetzen (schreibt statt des Textes den Inhalt der Zelle in die MsgBox).

Grüsse,
Frank


  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: Markus
Geschrieben am: 06.11.2014 16:54:35

Hallo,
habe es jetzt über einen Vergleich gemacht und läuft!
Danke für eure Hilfe und den richtigen Tip.

Gruß Markus

Private Sub Worksheet_Calculate()
  
  If Range("B9").Value <> Range("S4") Then
    If ActiveSheet.Range("Q4").Value = "0" Then
     Range("S4").Value = Range("B9").Value
     Exit Sub
    Else
     MsgBox "Achtung! " _
           & vbCrLf & "Bitte folgende Info beachten! " _
           & vbCrLf _
           & vbCrLf & Worksheets("Test").Range("Q4")
    End If
      Range("S4").Value = Range("B9").Value
    End If
End Sub



  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: hary
Geschrieben am: 06.11.2014 17:23:38

Moin Frank
Falls du nochmal reinschaust.
Sollte reichen.

Private Sub Worksheet_Calculate()
If Range("B9").Value <> Range("S4") Then
  If Range("Q4").Value <> "0" Then
    MsgBox "Achtung! " & vbCrLf & "Bitte folgende Info beachten! " & vbCrLf & vbCrLf &  _
Worksheets("Test").Range("Q4")
   End If
  Range("S4").Value = Range("B9").Value
End If
End Sub

Und 'ne schoenere MsgBox:
MsgBox "Bitte folgende Info beachten! " & vbCrLf & vbCrLf & Worksheets("Test").Range("Q4"), vbInformation, "Achtung"
gruss hary


  

Betrifft: AW: Sry, meinte Markus gruss owT von: hary
Geschrieben am: 06.11.2014 17:24:53

.


  

Betrifft: AW: Zelle bei Änderung in Msgbox ausgeben von: hary
Geschrieben am: 06.11.2014 16:55:02

Moin Frank
Zitat:
"sich Zelle B3 ändert. Die Zelle wird mit einer Formel berechnet"
da hilft Change nicht.
gruss hary


  

Betrifft: Ja, danke, habe ich übersehen owT von: Frank
Geschrieben am: 06.11.2014 17:04:36




 

Beiträge aus den Excel-Beispielen zum Thema "Zelle bei Änderung in Msgbox ausgeben"