Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro arbeitet nur bei Zelländerung von Hand

Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 14:15:24
Hand
Hallo!
Wenn sich in Zelle U849 der Wert ändert von Up auf Dwn oder von Dwn auf Up, sollte ein Makro ausgeführt werden. Macht es aber nicht! Ändere ich die Zelle jedoch per Hand (also schreibe ich irgendwas hinein), dann wird das Makro ausgeführt. Verstehe ich nicht. Wo liegt da der Hund begraben?
Formel in Zelle:
=WENN(UND(T849T848;E849-D848 Makro in Tabelle:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$U$849" Then
Call signalwechsel
End If
End Sub

Anders herum ... nachfolgendes Makro funktioniert, aber dann galeich dreimal hintereinander (was aber auch nicht nach meinem Sinn steht).

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("U848").Value = "Dwn" And Range("U847").Value = "Up" Then
Call signalwechsel
End If
If Range("U848").Value = "Up" And Range("U847").Value = "Dwn" Then
Call signalwechsel
End If
If Range("U849").Value = "Dwn" And Range("U848").Value = "Up" Then
Call signalwechsel
End If
If Range("U849").Value = "Up" And Range("U848").Value = "Dwn" Then
Call signalwechsel
End If
End Sub

Möchte noch anmerken, dass ich per Makro die letzte Zeile alle 60 Minuten immer um eine Zeile fortschalten lasse und am Anfang eine Zeile entferne. So bleibt die Tabelle immer auf gleicher Größe und Zeilenanzahl.
Hat wer von Euch eine Idee, warum mir obiges erstes Makro nur per Hand funktioniert und nicht dann wenn die Formel den Wert selbst ändert?
Gruss Norbert

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 14:28:27
Hand
Hallo Norbert,
Hat wer von Euch eine Idee, warum mir obiges erstes Makro nur per Hand funktioniert und nicht dann wenn die Formel den Wert selbst ändert?
Weil das Worksheet_Change() Ereignis nur auf Änderung von Zellen anspricht, nicht aber auf Werteänderung durch Berechnung.
Dazu gibt es das Ereignis Worksheet_Calculate().
Gruß Matthias
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 16:18:06
Hand
Hallo Norbert,
Hat wer von Euch eine Idee, warum mir obiges erstes Makro nur per Hand funktioniert und nicht dann wenn die Formel den Wert selbst ändert?
Weil das Worksheet_Change() Ereignis nur auf Änderung von Zellen anspricht, nicht aber auf Werteänderung durch Berechnung.
Dazu gibt es das Ereignis Worksheet_Calculate().
Gruß Matthias
__________________________________________________
Jö, danke Matthias!
Werde ich in den nächsten Stunden "sehen" wie es klappt ;-)
Gruss Norbert
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 17:07:30
Hand
Hallo Matthias - es klappt auch Calculate so nicht, es wird eine Fehlermedung wird ausgegeben (Deklaration entspricht nicht Prozedur mit demselben Namen):

Private Sub Worksheet_Calculate(ByVal Target As Range)
If Target.Address = "$U$849" Then
Call signalwechsel
End If
End Sub

Es ändert sich immer nur ein Text auf Buy oder Sell. Der Text soll durch das Makro ein andseres dann aktivieren.
Gruss Norbert
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 17:20:59
Hand
Hallo Norbert,
Worksheet_Calculate() hat kein Target-Argument. Es wird immer aufgerufen, wenn irgendwas im Blatt neu berechnet wurde.
Gruß Matthias
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 17:30:38
Hand
Sorry, geht nicht... aber ich probier es mal so. Das "End If" muß ich dabei aber ausklammern, sonst kommt da ebenfalls ne Fehlermeldung. Aber so wie unten dürfte es mal klappen. Es soll sich ja nur was bemerkbat machen wenn sich ausschließlich in Zelle U849 was ändert:

Private Sub Worksheet_Calculate()
If Range("$U$849") = Range("$U$848") Then Exit Sub
Call signalwechsel
' End If
End Sub

Gruss Norbert
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 17:55:10
Hand
Hallo,
im Beispiel wird die Zelle A1 überwacht:
Option Explicit
Dim oldA1Value As Double

Private Sub Worksheet_Activate()
oldA1Value = [a1]
End Sub


Private Sub Worksheet_Calculate()
If [a1] <> oldA1Value Then
Call signalwechsel
oldA1Value = [a1]
End If
End Sub

Gruß K.Rola
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
25.07.2006 18:05:21
Hand
Danke Rola, ist was Neues!
Melde mich später, im Augenblick muß ich mal passen - brauche ne Pause. Es hat 32 Grad im Büro (selber Schuld - habe alle Fenster offen und die zur Westseite gelegen!).
Gruss Norbert
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 20:14:12
Hand
Hallo K.Rola!
Wie ändere ich Dein Makro, so dass es ausgeführt wird nur wenn sich der Text in der betreffenden Zelle ändert (sie wird sonst bei der geringsten Änderung aufgerufen). Die Formel darin ist:
=WENN(UND(T849&ltT848;C848-E849&ltE$3);"Dwn";WENN(UND(T849&gtT848;E849-D848&ltE$3);"Up";U848))
Option Explicit
Dim oldA1Value As Double

Private Sub Worksheet_Activate()
oldA1Value = [a1]
End Sub


Private Sub Worksheet_Calculate()
If [a1] <> oldA1Value Then
Call signalwechsel
oldA1Value = [a1]
End If
End Sub

Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 21:36:00
Hand
Hallo,
statt [a1] die Zelle, in der sich die Formel befindet.
Gruß K.Rola
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 22:17:00
Hand
#statt [a1] die Zelle, in der sich die Formel befindet.#
Nein, nein - das weiß ich. Die Formel befindet sich beispielsweise in h1 und es wird eben nur Up oder Dwn ausgegeben. Aber komisch ist, dass das Makro was ausgibt ohne dass sich etwas in der Zelle ändert (Wechsel von Dwn uf Up oder zurück). Das verstehe ich nicht, dass da das Makro anspringt, obwohl die Zelle h1 immer Dwn zeigt.
Aber es ändert sich in anderen Zellen ständig durch Berechnungen etwas, wenn ein anderer Kurs hereinkommt. Die Zelle h1 reagiert dann, wenn sich die Werte in anderen Zellen so weit geändert haben, dass eben das Ktiterium auftritt, wo Zelle h1 selbst in Aktion tritt und Dwn oder Up ausgibt. Vielleicht hängt das damit zusammen, dass das Makro welche die Zelle h1 abfragt anspringt obwohl h1 selbst immer den Text Dwn anzeigt.
Da muß ich dahinter kommen, das muß doch irgendwie ordentlich zum Funktionieren zu bringen sein. ich dachte halt, dass man was anderes in das Makro setzen kann so dass es nur auf Text reagiert und nicht auf "Wert".
Gruss Norbert
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 22:26:24
Hand
Hallo,
wenn du alles so umgesetzt hast, wie ich es beschrieben habe, kann ich mir nicht vorstellen, dass das Calculate-Ereinis reagiert.
Lad die Mappe, falls möglich, mal hoch, sonst raten wir noch, wenn es warm wird.
gruß K.Rola
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 22:40:57
Hand
Hallo,
sonst raten wir noch, wenn es warm wird.
<schwitz>in welch kühler Gegend sitzt Du denn gerade?</schwitz>
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 23:08:40
Hand
Ich habe hier im Büro 31 Grad plus! Macht nix- hab mich schon daran gewöhnt ;-))
Ich probiere es noch mal anders - mache mir extra für die Formel eine Tabelle und hole mir nur die Werte aus dem Berechnungssheet in diese Tabelle rein. Mir fällt nämlich ein, dass ich eine andere kleine Tabelle habe, die korrekt auf Textänderung reagiert. Aus der Abfrageformel der Zelle heraus wird ein Makro aufgerufen ... wenn Zelle 1 ungleich Zelle 2 dann "schreie laut durchs Büro Kaufen" ... und das funzt. Krieg ich damit auch das derzeitige Problem in Griff schreibe ich es hier rein ...
Gruss Norbert
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 23:21:13
Hand
Hallo,
kann mich nur wiederholen, lad den Problemfall einfach mal hoch.
Gruß K.Rola
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 23:52:25
Hand
Hallo K.Rola!
Der "Problemfall" steht mit ... mal zählen ... 7 Tabellen in Verbindung. Es nutzt nichts, wenn ich die eine hochlade in der das Makro arbeiten soll. Ein Makro arbeitet ja mein Problem bis dato ohnehin ab, aber es gefällt mir nicht so richtig. Wollte nur was Besseres haben als dieses:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("U848").Value = "Dwn" And Range("U847").Value = "Up" Then
Call signalwechsel
End If
If Range("U848").Value = "Up" And Range("U847").Value = "Dwn" Then
Call signalwechsel
End If
Dieses Makro ruft "sich selbst" ebenfalls dreimal hintereinander auf, obwohl sich der wert in Zelle U848 nur einmal ändert. Und weil ich SMS ans Handy dann dreimal bekomme, zahle ich für drei SMS obwohl ich nur eines brauche. Es muß der Hund noch wo anderes begraben sein. Vielleicht kommen sich da ein paar Makros in die Quere. Es werkeln nämlich 37 Makros und hunderte Formeln an meiner EXCEL-"Geldmaschine" herum :-))
Gruss Norbert
Anzeige
AW: Makro arbeitet nur bei Zelländerung von Hand
26.07.2006 23:24:36
Hand
Hallo,
"in welch kühler Gegend sitzt Du denn gerade?"
Was bedeuten die Tags?
Sorry, musste gerade mal die Klimaanlage justieren, 20° waren dann doch etwas
knapp.
Gruß K.Rola

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige