Ich bin ein absoluter VBA-Newbie und total am verzweifeln.
In meiner Lagerbestandstabelle mit Stückliste werden die Lagerzu- und abgänge mit folgendem VBA- _
Code gebucht:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim old, change As Variant
' alten Bestand merken (Spalte H)
old = Cells.Item(Target.Row, 8).Value
If Target.Column = 6 Then ' Eingang geändert (Spalte F)
change = Cells.Item(Target.Row, 6).Value
If IsNumeric(old) And IsNumeric(change) Then Cells.Item(Target.Row, 8).Value = old - _
change
End If
End Sub
Allerdings werden die Daten in Spalte F per Formel aus einem anderen Tabellenblatt bezogen. Der o.g. Code rechnet nicht mit den Formelergebnissen und nur bei manueller Eingabe eines Wertes in Spalte F wird in Spalte H der Wert gebucht.
Jetzt habe ich in meiner Verzweiflung versucht, anhand einer Hilfsspalte (G) die Daten mittels Makro zu aktualisieren. Hier der Code:
Sub Buchung1()
' Buchung1 Makro
' Makro am 27.04.2011 von Mela aufgezeichnet
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1038").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1039").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1040").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1041").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1042").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1043").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1044").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1045").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1046").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1047").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1048").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1049").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1050").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("G1051").Select
End Sub
Die Spalte umfasst nur leider ca. 4000 Zeilen und bei dieser Vorgehensweise schreib ich mir einen Wolf :-(Kann mir vielleicht jemand helfen?
Viele Grüße
meliena