Worksheet Change?
07.12.2005 11:42:20
Manuel
Ich habe folgendes Problem:
Ich habe einen Excel Sheet. Darauf werden ab Zeile 11 Daten eingetragen (pro Zeile ein Datensatz: Name | Preis | Währung | Anzahl | Summe.
Ich stelle über vb fest wieviele Einträge ab Zeile 11 vorhanden sind und Summiere diese in der der Zeile unter dem letzten Eintrag. das funktioniert auch wenn ich es in Worksheet_activate reinschreibe. Aber dazu muss man ja erst auf ein anderen Sheet klicken und dann wieder zurück auf den mit den Einträgen.
Was ich aber möchte ist:
wenn eine Zeile ergänzt wurde in Spalte A dann soll der vba code nach der Änderung ausgeführt werden und die Summe unter dem ergänzten Datensatz stehen.
Vielleicht mit Change? oder so
Code
__________________________________________________________
Private Sub Worksheet_activate()
Dim EZ, LZ, Dif As Integer ' Erste Zeile , Letzte Zeile,
EZ = 11
Cells(EZ, 1).Select ' erste Zelle wird angewählt
Selection.End(xlDown).Select ' sprung zur letzten Zelle in der Spalte
LZ = ActiveCell.Row ' letztezeile = letzte Zelle in der Reihe
'MsgBox "" & -(LZ - EZ) & ""
Dif = (LZ + 1) - EZ
' Löschen der Werte
Range("AD" & EZ & ":AK" & LZ & "").ClearContents
'Eintragen der Formeln
'Materialpreis
Range("AD" & EZ & ":AD" & LZ & "") = "=(IF(RC[-11]=""EUR"",RC[-13]*RC[-12]*R5C2,IF(RC[-11]=""GBP"",RC[-13]*RC[-12]*R6C2,IF(RC[-11]=""USD"",RC[-13]*RC[-12])))*(1+RC[-8]))"
' Value Add
Range("AE" & EZ & ":AE" & LZ & "") = "=(IF(RC[-10]=""EUR"",RC[-11]*R5C2,IF(RC[-10]=""GBP"",RC[-11]*R6C2,RC[-11])))"
'NBW
Range("AF" & EZ & ":AF" & LZ & "") = "=NPV(R7C2,RC[1],RC[2],RC[3],RC[4],RC[5])"
' Spend 1
Range("AG" & EZ & ":AG" & LZ & "") = "=(RC[-3]*(1+RC[-26])+RC[-2]*(1+RC[-21]))*RC[-31]"
'Spend 2
Range("AH" & EZ & ":AH" & LZ & "") = "=(RC[-4]*(1+RC[-27])*(1+RC[-26])+RC[-3]*(1+RC[-22])*(1+RC[-21]))*RC[-31]"
' Spend 3
Range("AI" & EZ & ":AI" & LZ & "") = "=(RC[-5]*(1+RC[-28])*(1+RC[-27])*(1+RC[-26])+RC[-4]*(1+RC[-23])*(1+RC[-22])*(1+RC[-21]))*RC[-31]"
'Spend 4
Range("AJ" & EZ & ":AJ" & LZ & "") = "=(RC[-6]*(1+RC[-29])*(1+RC[-28])*(1+RC[-27])*(1+RC[-26])+RC[-5]*(1+RC[-24])*(1+RC[-23])*(1+RC[-22])*(1+RC[-21]))*RC[-31]"
' Spend 5
Range("AK" & EZ & ":AK" & LZ & "") = "=(RC[-7]*(1+RC[-30])*(1+RC[-29])*(1+RC[-28])*(1+RC[-27])*(1+RC[-26])+RC[-6]*(1+RC[-25])*(1+RC[-24])*(1+RC[-23])*(1+RC[-22])*(1+RC[-21]))*RC[-31]"
'R1C1 Formel für SUMME
Range("AD" & LZ + 1 & ":AK" & LZ + 1 & "") = "=SUM(R[-" & Dif & "]C:R[-1]C)"
End Sub