Hallo,
der Fehler entsteht, weil du beim zweiten Durchlauf keine Zahlen mehr in deinen Zellen in Spalte D stehen hast sondern Text.
Mir stellt sich eh die Frage, warum du mit deinem Code Zahlen in Text umwandelst. Damit kannst du dann nicht mehr viel anfangen, zumindest nicht mehr weiter rechnen ohne den Text vorher wieder in eine Zahl umzuwandeln.
Wenn ich dich richtig verstanden habe, dann soll der Code durch die Spalte D laufen und die entsprechende Umrechnung machen. Ich bin jetzt mal davon ausgegangen, dass der Code bis zur letzten gefüllten Zelle in Spalte D (ab D14) laufen soll. Die letzte belegte Zelle in Spalte D wird im Code von unten nach oben ermittelt. Außerdem ist das Ergebnis eine Zahl und kein Text.
Public Sub aaa()
Dim i As Long
With Worksheets("Tabelle1") 'Blatt anpassen
For i = 14 To .Cells(.Rows.Count, 4).End(xlUp).Row
If IsNumeric(.Cells(i, 4)) Then
.Cells(i, 4) = Math.Round(.Cells(i, 4), 4)
.Cells(i, 4).NumberFormat = "0.0 %"
End If
Next i
End With
End Sub
Gruß Werner
|