Code-Problem
Mel
ich habe zwei alternative Codes geschrieben und beide funktionieren nicht so, wie ich es mir wünsche:
' Berechnung der Stückzahl
Tabelle1.Select
If Range("G1") = "Stückzahl" Then
Range("G2").Select
ActiveCell.FormulaR1C1 = "=RC[-4]/RC[-2]"
Selection.AutoFill Destination:=Range("G2:G33"), Type:=xlFillDefault
Else
Columns("G:G").Select
Selection.Insert Shift:=xlToRight
ActiveCell.FormulaR1C1 = "Stückzahl"
Columns("G:G").Select
Selection.NumberFormat = "#,##0.000 _D_M"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=RC[-4]/RC[-2]"
Selection.AutoFill Destination:=Range("G2:G33"), Type:=xlFillDefault
' Autofill Range!
End If
Dies ist meine derzeitige Berechnung für die Stückzahl! Problem: Ich kann
"AutoFill" nicht sagen, dass es am Ende wo es keine Werte mehr zum Berechnen
gibt, aufhören soll und nicht bei (bsp.) 33!
Mein 2. Lösungsversuch:
Dim Rng As Excel.Range, sFormula As String
Tabelle1.Activate
Set Rng = Columns("G:G")
If Rng.Cells(1).Value = "Stückzahl" Then
Range("C2").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(0, 1).Value = _
sFormula = "=if(RC[-2]=0,""Ersatzwert"",RC[-4]/RC[-2])" '(diese
formel testet, bevor sie dividiert)
Range("G2:G33").FormulaR1C1 = "=RC[-4]/RC[-2]" '(mehreren Zellen
die gleiche Formel zuweisen
ActiveCell.Offset(1, 0).Select
Loop
Else...
...
End if
Das Problem: In der Tabelle werden immer wieder Spalten eingefügt, und es
gibt auch ab und zu leere Felder. Dies ist nur bei der 1. Spalte anders.
Diese ist immer gefüllt, und zwar immer genauso weit, wie die Formel
ausgeführt werden soll. Wie kann ich festlegen, dass er immer so weit
berechnet, solang die 1. Spalte auch gefüllt ist?
Ich dachte ich geb euch mal beide Lösungen, je nach dem für welche dir was
einfällt, obwohl ich die 2. für besser halte.
Vielen Dank im Voraus!
Ich hoffe ihr könnt mir helfen!!
Gruß
Mel