Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellwert kopieren bei Änderung VBA
#11
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:
  • diving_excel
Antworten Top
#12
Danke, das wars! Hab die Tabellen Nummer anstatt den Tabellen Namen verwendet, mit dem Namen funktioniert das super!
Antworten Top
#13
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.
Antworten Top
#14
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.
Antworten Top
#15
Genau, wenn sich ein Wert ändert (D7 oder F7) dann sollen trotzdem beide in Tabelle12 Spalte A und D protokolliert werden.
Antworten Top
#16
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:
  • diving_excel
Antworten Top
#17
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
Antworten Top
#18
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:
  • diving_excel
Antworten Top
#19
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:
  • diving_excel
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste