Discussion:
Makros einer Zelle zuweisen?
(zu alt für eine Antwort)
Jörg Rösch
2006-06-19 06:57:02 UTC
Permalink
Hallo,

ist es nicht möglich einer Zelle ein Makro zuzuweisen wennn der Wert pos bzw
neg ist? Wenn doch wie?

Exel2003

Gruß Jörg
Jörg Rösch
2006-06-19 07:28:01 UTC
Permalink
Nachtrag:

Ich will lediglich erreichen :
WENN Feld 1 = "UNWAHR" - DANN 0 - SONST ??? Call Makro Infobox ????

Gibt es etwas dergleichen wie den call Befehl zum aufrufen eines Makros oder
können diese tatsächlich nur Objekten zugewiesen werden?

Gruß Jörg
Eike Bimczok
2006-06-19 07:48:36 UTC
Permalink
Post by Jörg Rösch
WENN Feld 1 = "UNWAHR" - DANN 0 - SONST ??? Call Makro Infobox ????
Gibt es etwas dergleichen wie den call Befehl zum aufrufen eines Makros oder
können diese tatsächlich nur Objekten zugewiesen werden?
Gruß Jörg
Hallo Jörg,

dafür gibt es das Change-Ereignis für das Tabellenblatt:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "A1" Then
MsgBox ("Zelle A1 geändert")
End If
End Sub

Das Makro in den Code des Tabellenblatts kopieren (rechte Maustaste auf
den Tabellenreiter, Code anzeigen).

Gruß
Eike
Jörg Rösch
2006-06-19 09:46:02 UTC
Permalink
Hmm,

bin in VBA nicht die Leuchte! Den Code hab ich eingefügt weiß aber nicht wie
ich die Zelle (Tab/zel/Spalte)nun zuweisen soll. Auch wenn ich zum Test den
Code starte werden nur die bestehenden Makros angezeigt die ich aus dem
Kontext ausführen, bearbeiten, löschen usw kann.

Hast du ein Anschauliches Beispiel hierfür?

Gruß Jörg
unknown
2006-06-19 09:56:06 UTC
Permalink
Post by Jörg Rösch
Hmm,
bin in VBA nicht die Leuchte! Den Code hab ich eingefügt weiß aber nicht wie
ich die Zelle (Tab/zel/Spalte)nun zuweisen soll. Auch wenn ich zum Test den
Code starte werden nur die bestehenden Makros angezeigt die ich aus dem
Kontext ausführen, bearbeiten, löschen usw kann.
Hast du ein Anschauliches Beispiel hierfür?
Gruß Jörg
Kopiere den Code wie beschrieben in "DiesesTabellenblatt" - nicht in die
Mappe und nicht in ein Modul - speichere die Mappe, lade sie und tue was
in A1. Das dürfte mehr aussagen als viele Erklärungen :-)
--
Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
Jörg Rösch
2006-06-19 11:00:02 UTC
Permalink
Ja du hast recht das sagte mehr.

Leider zeigt mir dies aber nur tatsächliche "manuelle" Veränderungen an,
nicht aber errechnete Werte und auch nicht von einen Wert 0/1 abhängig.

Mir würde schon reichen, wenn überprüft werden kann od der errechnete Werte
gleich eins(oder wahr) ist und sich darauf die msgbox öffnen würde mit einer
Warnung.

Gruß Rösch
Wolfgang Habernoll
2006-06-19 14:37:50 UTC
Permalink
Hallo Jörg

in der Tat wird durch Berechnung Worksheet_Change nicht ausgelöst. Aber
versuche es doch mal mit "Calculate"

Private Sub Worksheet_Calculate()
If ActiveSheet.Range("A1") = 1 Or _
ActiveSheet.Range("A1") = True Then
'Hier Msgbox oder Makroname
MsgBox ("Achtung A1 ist Wahr")
End If
End Sub

wo der Code hingehört hast du ja schon erfahren. Eventuell reicht dir schon
eine Bedingte-Formatierung von A1
"Zellwert ist gleich 1" und dann schön rot machen

mfG
Wolfgang Habernoll
Post by Jörg Rösch
Ja du hast recht das sagte mehr.
Leider zeigt mir dies aber nur tatsächliche "manuelle" Veränderungen an,
nicht aber errechnete Werte und auch nicht von einen Wert 0/1 abhängig.
Mir würde schon reichen, wenn überprüft werden kann od der errechnete Werte
gleich eins(oder wahr) ist und sich darauf die msgbox öffnen würde mit einer
Warnung.
Gruß Rösch
Wolfgang Habernoll
2006-06-19 21:03:43 UTC
Permalink
Hallo Jörg

ersetze bitte "ActiveSheet" durch den Namen der Tabelle in der du A1 auswerten
möchtest.
also z.B. Worksheets("Tabelle1").Range.Grund ist das Calculate bei Berechnung
ausgelöst wird, wenn du diese aber auf einem anderen Sheet ausführst es nun
mal das ActiveSheet und es wir hier A1 geprüft.

mgG
Wolfgang Habernoll
Post by Eike Bimczok
Hallo Jörg
in der Tat wird durch Berechnung Worksheet_Change nicht ausgelöst. Aber
versuche es doch mal mit "Calculate"
Private Sub Worksheet_Calculate()
If ActiveSheet.Range("A1") = 1 Or _
ActiveSheet.Range("A1") = True Then
'Hier Msgbox oder Makroname
MsgBox ("Achtung A1 ist Wahr")
End If
End Sub
wo der Code hingehört hast du ja schon erfahren. Eventuell reicht dir schon
eine Bedingte-Formatierung von A1
"Zellwert ist gleich 1" und dann schön rot machen
mfG
Wolfgang Habernoll
Post by Jörg Rösch
Ja du hast recht das sagte mehr.
Leider zeigt mir dies aber nur tatsächliche "manuelle" Veränderungen an,
nicht aber errechnete Werte und auch nicht von einen Wert 0/1 abhängig.
Mir würde schon reichen, wenn überprüft werden kann od der errechnete Werte
gleich eins(oder wahr) ist und sich darauf die msgbox öffnen würde mit einer
Warnung.
Gruß Rösch
Loading...