Probiere gerade ein Programm zu basteln, dass veränderte Zellen mit Hilfe einer Variablen wieder ihren Ursprungswert bekommen.
Mein Ansatz:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a
a = ActiveCell.Value
If Not Intersect(Target, Range(„A:A“)) Is Nothing Then
Target.Value = a
End If
End Sub
Der Fehler, die Variable wird von der neu angeklickten Zelle ausgelesen… was eigentlich richtig ist mit dem Befehl „ActiveCell“. Wie könnte ich es schaffen den richtigen Zellenwert einzulesen.
Zellen mit Hilfe einer Variablen wieder ihren Ursprungswert
Mein Ansatz:
Dim a
a = ActiveCell.Value
Hallo Snetto
Eine Statische Variable könnte Dir wahrscheinlich helfen:
Statische Variable: Static statt Dim:
Static a = ActiveCell.Value
Mit Static bleibt der Wert der Variablen unverändert erhalten bis Excel beendet wird. Die Variable steht nur der betr. Prozedur zur Verfügung.
Oder: Die Variable wird (mit Dim) ganz am Anfang des Moduls definiert, also vor Sub …
Die Variable steht dann für alle Prozeduren in diesem Modul zur Verfügung.
Ich habe keinen Test für Dein Makro gemacht. Ich hoffe trotzdem, diese Angaben helfen Dir.
Probiere gerade ein Programm zu basteln, dass veränderte
Zellen mit Hilfe einer Variablen wieder ihren Ursprungswert
bekommen.
warum sperrst du nicht diese Zellen gegen Veränderungen über Blattschutz?
Der Fehler, die Variable wird von der neu angeklickten Zelle
ausgelesen… was eigentlich richtig ist mit dem Befehl
„ActiveCell“. Wie könnte ich es schaffen den richtigen
Zellenwert einzulesen.
Der Unterschied zwischen Target.Address und Activecell.Address wird in Extras–Optionen festgelegt, wo man festlegt wohin gehüpft wird nach Zelländerung.
Wenn ich dich recht verstehe, müßtest du in diesem Ereigniscode:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
den Inhalt der jeweiligen Zelle entweder in eine globale variable oder eine feste Hilfszelle abspeichern.
Dies fügst du dann bei deinem Change-Erignis-Code anstatt a ein.
Eine Statische Variable könnte Dir wahrscheinlich helfen:
Statische Variable: Static statt Dim:
Static a = ActiveCell.Value
Grüezie Niclaus,
ich glaube du irrst. Wenn z.B. A6 geändert wird dann ist im Worksheet_Change-Ereignis die Zelle A6 das/der target. Aber activecell ist dann eine andere.
In meinen Optionseinstellungen halt A7.