Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: wenn dann über makro mit formel

wenn dann über makro mit formel
09.03.2006 15:05:28
Stefan
hallo,
ich habe in einer tabelle in spalte h verschiedene zahlen stehen, nun möchte ich über ein makro in spalte L das ergebnis durch eine multiplikation mit der zahl aus spalte h ermitteln, wenn bestimmte kriterien erfüllt sind:
0 bis 165 in h = 32,77 in L
166 bis 499 in h = zahl in h multipliziert mit 197,37/1000 in L
500 bis 1499 in h = zahl in h multipliziert mit 169,17/1000 in L
1500 bis 1999 in h = zahl in h multipliziert mit 82,47/1000 in L
größer 2000 in h = zahl in h multipliziert mit 72,90/1000 in L
habe das mit folgendem text versucht, was aber leider nicht funktioniert:
For Each rng In Range("H2:H" & Range("H65536").End(xlUp).Row)
Select Case rng
Case Else
If rng.Value &gt "0" And rng.Value &lt "165" Then
rng.Offset(0, 4) = "32,77"
ElseIf rng.Value &gt= "165" And rng.Value &lt "499" Then
rng.Offset(0, 4).FormulaR1C1 = "=RC[-4]*197,37/1000"
ElseIf rng.Value &gt= "499" And rng.Value &lt "1499" Then
rng.Offset(0, 4).FormulaR1C1 = "=RC[-4]*169,17/1000"
ElseIf rng.Value &gt= "1499" And rng.Value &lt "1999" Then
rng.Offset(0, 4).FormulaR1C1 = "=RC[-4]*82,47/1000"
ElseIf rng.Value &gt= "1999" Then
rng.Offset(0, 4).FormulaR1C1 = "=RC[-4]*197,37/1000"
End If
End Select
Next 'rng
bin für jeden tipp dankbar.
gruß,
stefan
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn dann über makro mit formel
09.03.2006 16:00:49
Reinhard
Hi Stefan,
Option Explicit

Sub tt()
Dim zei As Long
For zei = 2 To Range("H65536").End(xlUp).Row
Select Case Cells(zei, 8)
Case Is < 0
Case Is < 166
Cells(zei, 12) = 32.77
Case Is < 500
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*197,37/1000"
Case Is < 1500
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*169,17/1000"
Case Is < 2000
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*82,47/1000"
Case Else
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*72,90/1000"
Next zei
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: wenn dann über makro mit formel
09.03.2006 16:42:23
Stefan
hallo reinhard,
danke für die schnelle antwort, es wird allerdings folgender fehler angezeigt:
fehler beim kompilieren: next ohne for
dann wird next zei als fehler markiert.
hast du eine idee?
danke.
stefan
AW: wenn dann über makro mit formel
09.03.2006 16:52:27
Bertram
Hi Stefan,
das ist die Excel-Verarsche:-)
Vor dem Next zei fehlt ein 'End Select'.
Gruß
Bertram
Anzeige
AW: wenn dann über makro mit formel
09.03.2006 17:03:30
Stefan
hallo,
habe das jetzt ergänzt, bekomme aber immer noch einen fehler angezeigt:
laufzeitfehler 1004: anwendungs- oder objektdefinierter fehler
folgende zeile wird gelb als fehler markiert:
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*169,17/1000"
habt ihr eine idee?
danke.
stefan
Anzeige
AW: wenn dann über makro mit formel
09.03.2006 17:22:01
Bertram
Habe jetzt nicht den ganzen Thread gelesen bzw. geprüft, ob das Ergebnis stimmt, aber so funktioniert der Code:

Sub tt()
Dim zei As Long
For zei = 2 To Range("H65536").End(xlUp).Row
Select Case Cells(zei, 8)
Case Is < 0
Case Is < 166
Cells(zei, 12) = 32.77
Case Is < 500
Cells(zei, 12).Value = Cells(zei, 8) * 197.37 / 1000
Case Is < 1500
Cells(zei, 12).Value = Cells(zei, 8) * 169.17 / 1000
Case Is < 2000
Cells(zei, 12).Value = Cells(zei, 8) * 82.47 / 1000
Case Else
Cells(zei, 12).Value = Cells(zei, 8) * 72.9 / 1000
End Select
Next zei
End Sub

Gruß
Bertram
Anzeige
AW: wenn dann über makro mit formel
09.03.2006 17:48:40
Stefan
hallo,
vielen dank für die hilfe. funktioniert ohne probleme.
gruß,
stefan
AW: wenn dann über makro mit formel
09.03.2006 17:47:18
Reinhard
Hi Stefan,
sorry, hatte nicht getestet, probiere es so:
Option Explicit
Sub tt()
Dim zei As Long
For zei = 2 To Range("H65536").End(xlUp).Row
Select Case Cells(zei, 8)
Case Is < 0
Case Is < 166
Cells(zei, 12) = 32.77
Case Is < 500
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*197.37/1000"
Case Is < 1500
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*169.17/1000"
Case Is < 2000
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*82.47/1000"
Case Else
Cells(zei, 12).FormulaR1C1 = "=RC[-4]*72.90/1000"
End Select
Next zei
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige