Microsoft Excel

Herbers Excel/VBA-Archiv

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

Makro lt. Zelle auslösen

Betrifft: Makro lt. Zelle auslösen von: Rolf
Geschrieben am: 11.09.2004 15:38:46

Hallo Excelprofis,

Folgendes Makro möchte ich erweitern, wer kann mir helfen?

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target.Address = "$A$13" And Target.Value = "1" _
 Then Call Hallo
End Sub


Kurze Beschreibung:
Wenn ich in Zelle A13 den Wert 1 eintrage wird ein Makro mit dem Namen "Hallo" ausgelöst.
Dieses funktioniert gut.

Befindet sich aber eine Formel in Zelle A13 wird das Makro beim Wert 1 nicht ausgelöst.
Wie kann ich das Makro so ändern das es auch funktioniert wenn eine Formel in Zelle A13 steht?

Vielen Dank im voraus
Rolf
  


Betrifft: AW: Makro lt. Zelle auslösen von: Ramses
Geschrieben am: 11.09.2004 15:52:47

Hallo

"...Dieses funktioniert gut...."

Das ist Zufall :-)
du deklarierst 1 als String 1

Verwende die Anweisung so

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target.Address = "$A$13" And Target.Value = 1 _
 Then Call Hallo
End Sub


Dann geht es auch :-)

Gruss Rainer


  


Betrifft: AW: Makro lt. Zelle auslösen von: Rolf
Geschrieben am: 11.09.2004 16:39:23

Hallo Rainer,

funktioniert mit Formel in A13 nicht.
Danke für deine Mühe, vieleicht hast du noch eine andere Idee.

Gruss Rolf


  


Betrifft: Quatsch.... von: Ramses
Geschrieben am: 11.09.2004 16:44:38

Hallo

die Anweisung ist getestet und funktioniert mit dieser Formel in A13

=2/2

Sobald die Entertaste gedrückt wird, springt das Makro an

Vielleicht solltest du mal schreiben, was nicht funktioniert ?!

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$13" And Target.Value = 1 Then
Msgbox "TUT"
Call Hallo
End If
End Sub


Vielleicht kommen wir dann eher auf einen Zweig.
Wenn die MsgBox kommt funktioniert dein Makro nicht.

Kommt die MsgBox nicht, gibt es folgende Ursachsen:

EnableEvents wurde auf False gestellt
Die automatische Berechnung ist abgestellt
Die Zelle A13 ist eine verbundene Zelle
Du gibst nicht in A13 ein


Gruss Rainer


  


Betrifft: AW: Quatsch.... von: Frank
Geschrieben am: 11.09.2004 17:28:48

Hi Rainer
ich vermute mal, das eine Formel in A13 steht und diese von einer ANDEREN Zelle gespeist wird. Daher braucht Rolf wahrscheinlich eher das worksheet_calculate event.

Aber am besten wäre, wenn Rolf einfach mal schreibt, was tatsächlich in Zelle A13 steht :-)

Frank


  


Betrifft: AW: Quatsch.... von: Rolf
Geschrieben am: 11.09.2004 17:46:25

Hallo Rainer,

funktioniert noch nicht wie ich es möchte.
Ich habe mich vieleicht falsch ausgedrückt.
In der Zelle A13 steht z.B =D1, dann wird der Wert aus D1 (Ziffer 1) in Zelle A13 übertragen und das Makro soll ausgelöst werden.

Noch mal vielen Dank Rainer
Hast du noch eine Idee?

Gruss Rolf


  


Betrifft: AW: Quatsch.... von: Ramses
Geschrieben am: 11.09.2004 17:51:36

Hallo

Das geht nicht, da hatte Frank den richtigen Spürsinn.
Zellen die über Remote-bezüge aktualisiert werden, reagieren nicht auf das Change-Ereignis, weil der ZELLINHALT nicht geändert wurde, sondern nur das was angezeigt wird.

Da muss das Calculate-Ereignis ran.

If Range("A13") = 1 Then Call Hallo

Gruss Rainer


  


Betrifft: AW: Quatsch.... von: Nepumuk
Geschrieben am: 11.09.2004 17:59:05

Hallo Rainer,
das halte ich für nicht gut. Wenn in D1 eine 1 steht, wird bei jeder Berechnung in der Tabelle das Makro "Hallo" aufgerufen. Ich würde das so machen:

https://www.herber.de/bbs/user/10794.xls

Gruß
Nepumuk


  


Betrifft: Gute Alternative... von: Ramses
Geschrieben am: 11.09.2004 18:15:53

Hallo Nepumuk

... merk ich mir für was anderes :-)

Gruss Rainer


  


Betrifft: AW: Quatsch.... von: Rolf
Geschrieben am: 11.09.2004 18:49:24

Hallo Nepumuk,

deine Idee war gut.
Schon getestet mit erfolg.

Noch einmal Danke an Nepumuk, Ramses und Frank

Gruss Rolf