Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code-Problem

Code-Problem
Mel
Hi,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code-Problem
Uwe
Hallo!
Ohne genau Deine Aufgabenstellungen in all seinen Teilen analysiert zu haben, versuche ich eine Anwort auf Deine Frage: "Wie kann ich festlegen, dass er immer so weit berechnet, solange die 1. Spalte auch gefüllt ist?" zu geben:
Dim CalcToRow As Long
CalcToRow = Columns("A").SpecialCells(xlCellTypeLastCell).Row
...Range("G2:G"&CalcToRow)...
Vielleicht helfen Dir diese (nicht getesteten) Zeilen, eine Lösung zu finden.
Gruß!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige