Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1260to1264
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
Inhaltsverzeichnis

Zeit bei positiver und negativer Flanke speichern

Zeit bei positiver und negativer Flanke speichern
Michel
Hi Leute,
habe ein Problem.
Ich habe eine Zelle, die einen Boolwert anzeigt. Nun möchte ich die aktuelle Uhrzeit in einer anderen Zelle speichern, wenn die Zelle von false auf True wechselt und dann wieder, wenn sie von True auf false springt.
Ich habe bisher die positive Flanke abgefragt mit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("G20") And Range("G20") = True Then
Cells(22, 1) = Time()
Cells(22, 2) = "TRUE"
End If
End Sub

Dies Funktioniert auch. Dann wollte ich die negative Flanke abfragen indem ich die selbe Sache _ nochmal mache, aber den Wert erst in die Zelle 23, 1 anzeigen lassen wenn in Zelle 22,1 die Zeit steht.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("G20") And Range() = Time() Then
Cells(23, 1) = Time()
Cells(23, 2) = "False"
End If
End Sub

Dies funktioniert nicht. Ausserdem kann ich den Worksheet_Change nur einmal programmieren. So bekomme ich nämlich einen Fehler, weil Worksheet_Change doppelt ist.
Da ich wenig Erfahrung mit Excel und VBA habe versuche ich es halt mit solchen Bauernsachen.
Habt ihr vieleicht ideen wie ich es besser machen kann oder anders?
Über eure Hilfe wäre ich sehr Dankbar.
Gruß Michel
AW: Zeit bei positiver und negativer Flanke speichern
23.04.2012 11:09:23
Rudi
Hallo,
so?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "G20" Then
Select Case Target
Case True
Cells(22, 1) = Time()
Cells(22, 2) = True
Case False
If Cells(22, 1)  "" Then
Cells(23, 1) = Time()
Cells(23, 2) = False
End If
End Select
End If
End Sub

Gruß
Rudi
AW: Zeit bei positiver und negativer Flanke speichern
23.04.2012 14:01:04
Michel
Hi Rudi,
super vielen Dank für die schnelle Antwort.
Ich habe es mittlerweile auch hinbekommen. Deine Lösung sieht aber wesentlich edler aus wie meine.
Kannst du mir nur kurz erklären was das Adresse(0,0) bedeutet.
Hier wird ja nicht auf die Zelle 0,0 zugegriffen oder?
Vielen Dank nochmal
Gruß Michel
Anzeige
AW: Zeit bei positiver und negativer Flanke speichern
23.04.2012 21:01:56
Reinhard
Hallo Michel,
0,0=A1
1,1=$A$1
Rest siehe Vba-Hilfe.
Probier mal diesen Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0)  "G20" Then Exit Sub
Application.EnableEvents = False
Select Case Target
Case True
Cells(22, 1) = Time()
Cells(22, 2) = True
Case False
If Cells(22, 1)  "" Then
Cells(23, 1) = Time()
Cells(23, 2) = False
End If
End Select
Application.EnableEvents = True
End Sub

Gruß
Reinhard
AW: Zeit bei positiver und negativer Flanke speichern
24.04.2012 16:56:32
Michel
Hey Rudi und Reinhard,
echt nochmal vielen vielen Dank ihr habt mir wirklich sehr geholfen. Es geht soweit. :-)
Nun nochmal auf die (0,0) zurück. Ich weiss das es A1 bedeutet aber ich verstehe nicht warum es in z.B Rudis Code- Beispiel in der 2. Zeile heisst
If Target.Adress (0,0) ="G20" Then
Select Case Target
Ich schaue doch nach einer Änderung in Zelle 20 und nicht in A1.
Was heisst es genau?
Ich dachte: Wenn die Zieladresse (0,0) gleich der von G20 ist , dann wähle Fall.....
Aber ist ja eigentlich humbuck oder?
Noch eine andere Frage. Ich würde diese Werte (Time() und True) gerne direkt in den Zellen eines anderen Tabellenblatts ausgeben lassen. Ist das möglich?
Geht das nur mit Modul oder auch direkt in deisem Code?
Schonmal vielen Dak für die Mühen.
Gruß Michel
Anzeige
AW: Zeit bei positiver und negativer Flanke speichern
24.04.2012 17:19:48
Reinhard
Hallo Michel,
A1 ist nur ein Stellvertreter so wie ich es benutzt habe. Stellvertreter für die Zelladresse um
die es eigentlich geht. Wichtig sind die Dollarzeichen.
Die bestimmen den Unterschied zwischen relativer und absoluter Zelladresse.
Und da gibt es genau vier Möglichkeiten
A1
$A1
A$1
$A$1
Konkret, die Zelle G20 wurde markiert, ausgewählt, geändert, ist also die Zelle "target"
und du schreibst es so
If Target.Adress ="G20" Then
dann geht das schief. Denn Target.Address entspricht Target.Address(1,1) also $G$20
und das ist ja ungleich zu G20, ergo wird die Bedingung nie erfüllt.
Abhilfe/Lösung, entweder so:
If Target.Address(0,0) ="G20" Then
oder
If Target.Address ="$G$20" Then
oder
If Target.Address(1,1) ="$G$20" Then
Frage noch offen wegen der anderen Frage von dir.
Gruß
Reinhard
Anzeige
AW: Zeit bei positiver und negativer Flanke speichern
26.04.2012 13:49:54
Michel
Hi Reinhard,
vielen Dank für die Erklärung. Habs verstanden. :-)
Die andere Frage hat sich erledigt, da ich das Problem selbst lösen konnte.
Ich habe leider aber schon wieder ein neues Problem und hoffe das du (ihr) mir nochmal helfen könntet.
Ich poste dazu noch Bilder.
Userbild
Im Bild zu sehen bekomme ich ein gefülltes Array "Y" übertragen von meiner SPS- Steuerung.
Nun meine Frage. Ich möchte dieses Array nun gerne auswerten.
Wie kann ich den Inhalt dieses Arrays nun in excel anzeigen lassen bzw. verarbeiten.
Gibts da einen Befehl?
Würde aus den Werten gerne eine Min Max Auswertung machen.
Vielen Dank schonmal und nochmal tausend Dank für die bisherige Hilfe.
Gruß Michel
Anzeige

230 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige