Excel Makro macht nicht was es soll ;)

Guten Morgen Zusammen,

ich habe versucht ein Makro zu schreiben, dass wenn ein Wert in eine bestimmte Zelle (Beispiel F6) eingetragen wird, dieser abgeglichen wird und dann in eine andere Zelle (M6)den Wert schreibt (bei F6=0 -> M6=0), oder eine Rechenoperation ausführt (wenn Wert größer 0 von F6) oder die Zelle weiter frei hält (Wenn die Zelle F6 leer ist).
Natürlich soll das noch bis zur Zelle F58 durchlaufen. Ebenso mit dem Übertrag, also M58.
Anbei mal das Makro:

Sub Steuerungsbau()

Dim ws1 As Worksheet, n As Long, x As Long, val As Long
Set ws1 = Worksheets(„Daten“)

With ws1

x = 6
For n = 6 To n = 58

val = .Range(n, 6).Value
Range(x, 13).Activate
If Range(n, 6).Value = 0 Then
ActiveCell.Value = „0%“
ElseIf Range(n, 6).Value > 0 Then
ActiveCell.Value = val / 70
ElseIf Range(n, 6).empty Then
ActiveCell.Clear
End If
x = x + 1
Next n
End With
End Sub

Hallo Senor,

nur ganz kurz:
Probier’s mal mit
For n = 6 To 58

Den Schleifeninhalt hab ich mir jetzt nicht angeschaut.

Gruß, Andreas

Hallo Andreas,

probier ich gleich mal aus.
Hab das allerdings jetzt anders geschrieben und das funzt nun. Hab Offset verwendet.
Falls jmd. mal was ähnliches machen will, hier die funktionsfähige Lösung:
Sub Steuerungsbau()

For Each wert In Range(„F6:F58“)
If (wert.Value) = 0 Then
wert.Offset(0, 7).Value = wert.Value
ElseIf wert.Value > 0 Then
wert.Offset(0, 7) = wert.Value / wert.Offset(0, 14).Value
Else
wert.Offset(0, 7).Clear
End If
Next wert

End Sub

Viele Grüße,
Senor

ich habe versucht ein Makro zu schreiben, dass wenn ein Wert
in eine bestimmte Zelle (Beispiel F6) eingetragen wird, dieser
abgeglichen wird und dann in eine andere Zelle (M6)den Wert
schreibt (bei F6=0 -> M6=0), oder eine Rechenoperation
ausführt (wenn Wert größer 0 von F6) oder die Zelle weiter
frei hält (Wenn die Zelle F6 leer ist).

Hola Senor,

Sub Steuerungsbau()
Dim ws1 As Worksheet, n As Long
Set ws1 = Worksheets("Daten")
With ws1
 .Range("M6:M58").Clear
 For n = 6 To 58
 Select Case .Cells(n, 6).Value
 Case Is \> 0
 If IsNumeric(.Cells(n, 6).Value) Then
 .Cells(n, 13).Value = .Cells(n, 6).Value / 70
 Else
 .Cells(n, 13).Value = "Fehler F" & n
 End If
 Case "0"
 .Cells(n, 13).Value = "0%"
 End Select
 Next n
End With
End Sub

Gruß
Reinhard

Dir auch Danke Reinahrd,
etwas übers Ziel hinaus, aber damit hab ich wenigstens die Case-Anwendung richtig verstanden.
Grüße vom Fuße der Schwäbischen Alb,
Senor