Hallo Claus,
Post by Claus BuschHallo Erich,
Post by E.WögerIch muß ergänzen : in Zeile 78 stehen auch Formeln, die Zahlen als Differenz zweier anderer Zellen anzeigen.
Kann es sein, daß deshalb in N13 nichts angezeigt wird wegen ..Is Nothing .. im Code?
Da diese Zahlen in Z13 aber um eine Spalte versetzt von Z 78 angezeigt werden, müßte ich die Zeile 13 auswerten.
dieses Nothing im Code ist dazu da, dass der Code nicht ausgeführt wird,
wenn keine Zelle im Bereich B78:K78 geändert wird. Zeile 13 könntest du
nur über Worksheet_Calculate auswerten, aber dann kannst du nicht auf
die zuletzt aktualisierte Zelle zugreifen. Es muss also Zeile 78 sein.
Post by E.WögerWenn ich den Code in das Code-Fenster einfüge, ergibt das
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
|
End Sub
Also zwei zusätzliche Zeilen oben
Kopiere ich den Code zwischen Zeile 1 und 2 kommt Fehlermeldung "End Sub erwartet", obwohl jetzt ein zweites End Sub darunter steht.
Kommentiere ich die ersten zwei Zeilen aus, kommen zwar keine Fehlermeldungen, aber in ZN13 wird auch nichts angzeigt.
Wenn du einen Rechtsklick auf den Tabellenblattreiter machst und Code
anzeigen auswählst, bekommst du ein leeres Codefenster.
Eben nicht. Da bekomme ich das Fenster mit den zwei vorgegebenen Zeilen und dazwischen blinkendem Curser
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
|
End Sub
Im Declarationsfeld steht : Change. Auswählbar wäre : Activate, BeforeDoppelClick, BeforeRightClick, Calculate, Change, Deactivate, SelectionChange. liegt da ev. das Problem?
Post by Claus BuschGehst du zuerst in den Editor und wählst dort Worksheet * in meinem Fall > Tabelle6 EinAus < *
ergänzt sich das > SelectionChange automatisch.
Nein. Dann erhalte ich ein leeres Fenster
Post by Claus BuschAber dieses Event reagiert auf Anwählen
einer Zelle und nicht auf eine Änderung. Es ist also das falsche Event.
End Sub darf nur am Ende einer Prozedur vorkommen, zweimal untereinander
ergibt auch diesen Fehler. Außerdem dürftest du nur die Zeilen zwischen
Private Sub.... und End Sub einfügen.
Ich habe meine Antwort wie immer getestet und es ist egal, ob in Zeile
78 Werte und Formeln vorkommen. Der Wert, der geändert wird erscheint in
M13.
Oder willst du die geänderten Formel-Ergebnisse im M13? * es muß N 13 sein *
Ja nur die durch Formelübernahme geänderten Werte der Zeile 13 in N13
Dann müsste man
Post by Claus Buschwissen, welche Formeln wo stehen und auf welche Zellen sie zugreifen, so
dass man z.B. bei einer Änderung in C78 weiß, dass dann das Ergebnis in
E78 geändert wird.
Ich versuche das nochmal besser zu erläutern :
In Zelle A80 erscheint als Übernahme aus Blatt 1 mit =kap106!L18 der letzte dort manuell eingegebene Stand.
Über mein Makro wird dieser Wert ohne Formel nach A79 und B13 kopiert
In Zeile 79 B bis M wird die Differenz mit =WENN(B79>0;B14-B76;0) alter Stand zu neuem Stand gebildet.
In Zeile 13 erscheint dann in Zelle C13 (nächster Monat) mit =B78 .. bis L78 der reduzierte neue Stand.
Und hier soll jetzt das neue Makro den jeweils letzten Wert (je nach Monat) in die Zelle N13 als Wert ohne Formel kopieren.
Die Zeilen 78 und 13 ändern sich also nicht durch Eingabe, sondern über die Formeln.
In zwei Versuchen hab ich jetzt mal Deinen Code ( geändert auf meine Zellen) einmal in ein Fenster über den Blattreiter "EinAus" mit den vorgegebenen Zeilen,
dann über das Fenster über den Editor "Tabelle6 EinAus" ohne diese Zeilen einkopiert, aber leider wird in Zelle N13 nichts angezeigt. Die Zelle N13 wird aber nicht mehr mit den Koordinaten N13, sondern mit table_3 angezeigt.
Der geänderte Code ist z.Zt. :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B78:M78")) Is _
Nothing Then Exit Sub
Range("N13") = Target.Value
End Sub
Ich hoffe, das hilft etwas weiter.
mfg Erich Wöger