Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi
Zitat:@Elex, dein Code funktioniert bei mir leider nicht, Laufzeitfehler 9; Index außerhalb des gültigen Bereichs.
dann passen deine Registernamen wahrseinlich nicht.
[attachment=17578]
Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:1 Nutzer sagt Danke an Elex für diesen Beitrag 28
• diving_excel
Registriert seit: 19.10.2017
Version(en): 2016
Danke, das wars! Hab die Tabellen Nummer anstatt den Tabellen Namen verwendet, mit dem Namen funktioniert das super!
Registriert seit: 19.10.2017
Version(en): 2016
09.05.2018, 11:51
(Dieser Beitrag wurde zuletzt bearbeitet: 09.05.2018, 11:51 von diving_excel.)
Sorry dass ich das Thema nochmal aufmachen muss, aber ist es auch möglich zwei Zellen gleichzeitig zu überwachen? Also neben D7 noch F7? Falls sich einer der beiden Werte ändert soll dann fortlaufend in Spalte A und Spalte D kopiert werden. Also wie bisher nur erweitert um eine weitere Überwachte Zelle.
Bekomme das zwar ansatzweise hin, aber nicht wirklich zufriedenstellend, bzw. bis jetzt hab ich das ganze per Formel überwacht, also wenn dein VBA Code einen neuen Wert erzeugt hat, wird der Wert aus F7 daneben kopiert.
Problem hierbei ist das ich immer nur den aktuellsten Wert bekomme und nicht wie D7 eine Art Historie / Log Liste.
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi @ diving_excel,
für eine Frage brauchst du dich nicht entschuldigen.
Leider ist die Beschreibung für mich nicht eindeutig.
Wenn sich ein Wert ändert (D7 oder F7), sollen trotzdem beide in Tabelle12 Spalte A und D Protokolliert werden.
Oder jeweils nur der geänderte Wert und die Listen in A und D können unterschiedlich lang werden.
Registriert seit: 19.10.2017
Version(en): 2016
Genau, wenn sich ein Wert ändert (D7 oder F7) dann sollen trotzdem beide in Tabelle12 Spalte A und D protokolliert werden.
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
OK.
Code:
Private Sub Worksheet_Calculate()
Set n = Sheets("Tabelle12").Range("A" & Sheets("Tabelle12").Cells(Rows.Count, 1).End(xlUp).Row)
If Range("D7").Value <> n.Value Or Range("F7").Value <> n.Offset(0, 3).Value Then
n.Offset(1) = Range("D7").Value
n.Offset(1, 3) = Range("F7").Value
End If
End Sub
Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:1 Nutzer sagt Danke an Elex für diesen Beitrag 28
• diving_excel
Registriert seit: 19.10.2017
Version(en): 2016
Hab deinen Code etwas angepasst und mit dem Datum ergänzt. Außerdem noch EnableEvents eingebaut, da sich der Code sonst wieder in einer Schleife festgefahren hat. Jetzt funktioniert alles, vielen Dank, wieder was neues gelernt :19:
Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Set n = Sheets("Tabelle12").Range("A" & Sheets("Tabelle12").Cells(Rows.Count, 1).End(xlUp).Row)
If Range("D7").Value <> n.Value Or Range("F7").Value <> n.Offset(0, 2).Value Then
n.Offset(1) = Range("D7").Value
n.Offset(1, 1) = Range("F7").Value
n.Offset(1, 2) = Date
End If
Application.EnableEvents = True
End Sub
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
Nur ein ergänzender Warnhinweis:
Wenn Du in einem Ereignis-Makro die Events abschaltest, solltest Du immer, ständig und überhaupt eine Fehler-Routine einbauen, die sicherstellt, dass die Events auch bei Abflug des Programms wieder auf true gestellt werden!
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• diving_excel
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Set n = Sheets("Tabelle12").Range("A" & Sheets("Tabelle12").Cells(Rows.Count, 1).End(xlUp).Row)
If Range("D7").Value <> n.Value Or Range("F7").Value <> n.Offset(0, 2).Value Then 'die rote Zahl in der Zeile
n.Offset(1) = Range("D7").Value
n.Offset(1, 1) = Range("F7").Value 'und in der sollten gleich sein
n.Offset(1, 2) = Date
End If
Application.EnableEvents = True
End Sub
Und es sollte auch ohne Application.EnableEvents gehen. Bei mir jedenfalls geht das.
Gruß Elex
Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:1 Nutzer sagt Danke an Elex für diesen Beitrag 28
• diving_excel