Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
636to640
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
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zelländerung zählen

Zelländerung zählen
15.07.2005 17:30:37
Frank
An alle Profis,
Ich habe ein Problem denn ich möchte eine verknüpfte Zelle zählen, wie oft sie sich verändert. Der Wert wird von einer SPS ausgelesen und ändert sich nur zwischen 0 und 1. Immer wenn der Wert 0 ist soll der Zähler in einer Tabelle um eins addiert werden. Die Tabelle sieht so aus. In Zelle A1 00:00 in B1 00:59 ins A2 01:00 B2 01:59 usw. bis 24h um sind. In Spalte C soll die Veränderung einer beliebigen Zelle (z.B. D1) gezählt werden je nach Tageszeit. Im nachfolgenden Code kann ich zwar eine Verknüpfte Zelle zählen aber nur mit Tastendruck. Ich bekomme es nicht hin, das die Zelle gezählt wird wenn sie sich intern verändert (ohne Tastendruck) und wenn Zelle D1 einmal gezählt wird, dann kann ich auf einmal in allen Zellen die Veränderung zählen. Das soll auch nicht sein.
-------------------------------------------------------------------------------------

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target = Range("d1") Then Addieren
End Sub

-----------------------------------------------------------------------------
Macro
Public Sub Addieren()
Stunde = Hour(Now)
Zeile = Stunde + 1
Wert = Range("C" & Zeile)
Wert = Wert + 1
Range("C" & Zeile) = Wert
End Sub
----------------------------------------------------------------------------
Meine Beispieldatei
https://www.herber.de/bbs/user/24751.xls
Besten Dank in Voraus
Frank

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelländerung zählen
15.07.2005 18:08:25
IngGi
Hallo Frank,
nimm an Stelle des Change-Ereignisses des Tabellenblattes das Calculate-Ereigniss. Dieses tritt bei jeder Neuberechnung des Tabellenblattes ein. Problem: Bei einer Neuberechnung muss sich der Inhalt von D1 nicht notwendigerweise ändern. Du willst aber nur dann zählen, wenn sich D1 tatsächlich im Wert ändert. Also musst du noch prüfen, ob sich D1 geändert hat. Dafür brauchst du aber neben dem jetzigen Wert von D1 auch den "alten" Wert von vor der Neuberechnung. Den musst du vorher (also beim vorhergehenden Calculate-Ereignis) in eine Hilfszelle (z.B. Z1) retten.
Daraus ergibt sich dann folgendes Makro:

Private Sub Worksheet_Calculate()
If Me.Range("D1") <> Me.Range("Z1") Then 'Wenn Änderung gegenüber "altem" Wert
Me.Range("Z1") = Me.Range("D1") 'D1 nach Z1 retten für nächstes Calculate-Ereignis
Addieren 'Zählmakro aufrufen
End If
End Sub
Vor dem ersten Einsatz musst du in Z1 natürlich von Hand den aktuellen Wert von D1 eintragen, später wird das vom Makro gemacht.
Gruß Ingolf
Anzeige
AW: Zelländerung zählen
15.07.2005 20:23:54
Frank
Danke für die schnelle Antwort Ingolf.
Werde es nachher gleich ausprobieren.
Freue mich wenn es klappt.
Gruß Frank
AW: Zelländerung zählen
16.07.2005 09:31:59
Hajo_Zi
Hallo Frank,
wenn Du es testen willst, liegt es doch an Dir das der Beitrag noch offen ist. Stelle den Beitrag doch offen falls Du es getestet hast und noch Probnleme hast.
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
AW: Zelländerung zählen
17.07.2005 12:14:17
Frank
Hallo Ihr Helfer,
hat leider nicht geklappt. Will einfach nicht zählen.
Ich habe den Code in mein Tabellenblatt kopiert und den alten gelöst aber das Macro will nun nicht mehr starten.
Gruß Frank
Anzeige
AW: Zelländerung zählen
18.07.2005 13:32:18
IngGi
Hallo Frank,
hast du unter Extras-Optionen-Berechnung die Berechnung auf automatisch eingestellt?
Gruß Ingolf
AW: Zelländerung zählen
18.07.2005 19:55:21
Frank
Hallo,
habe ich auf Automatik und es will nicht funktionieren.
Auch wenn ich es per Hand eingebe kein Erfolg. Bei meinem Beispiel
geht es ja soweit nur das es nicht die Zellenänderung von der SPS zählt.
Gibt es noch einen Trick.
Gruß Frank
AW: Zelländerung zählen
19.07.2005 10:09:00
IngGi
Hallo Frank,
jetzt muss ich nochmal grundsätzlich fragen, da ich befürchte, dass ich ganz auf dem falschen Dampfer bin. Auf welche Weise ändert sich der Inhalt von D1 von 0 nach 1 und umgekehrt? Du hast von einem Verweis gesprochen und ich bin daher davon ausgegangen, dass in der Zelle eine Formel steht, mit mindestens einem Verweis auf eine andere Zelle oder sonstige Datenquelle. Wenn sich nun diese andere Zelle ändert, ändert sich über die Formel natürlich auch D1. Allerdings spricht das Change-Ereignis darauf nicht an. Daher mein Lösungsansatz über das Calculate-Ereignis. Trifft das so zu, dass sich in D1 eine Formel mit einem Verweis auf eine andere Datenquelle befindet?
Gruß Ingolf
Anzeige
AW: Zelländerung zählen
20.07.2005 18:10:40
Frank
Hallo Ingolf,
in D1 steht nur eine Verküpfung zu einer anderen Zelle aus einem anderen Tabellenblatt.Dort werden die Daten von der SPS ausgelesen. (Betriebszustand einer Umwälzpumpe 0=aus und 1=an)
zb. =test!D5
Nun wollte ich auf einen anderen Tabellenblatt die Pumpe überwachen und zählen wie oft sie sich ausschaltet.
Gruß Frank

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige