Hallo dominik,
ich weiß nicht, ob du jeweils die Zahl, die am Ende steht, jeweils um 1 erhöht in die Zelle schreiben willst. Das geht natür viel einfacher, aber vielleicht gibt es Gründe, so zu verfahren, wie du es vorschlägst.
Dein Fehler ist dann, dass die glaubst, der Buchstabe n zwischen den Sternen repräsentiert die Laufvariable n. Er ist aber der Buchstabe, der im Wort 'Analyse' natürlich gefunden wird und zwar beim 1. Durchgang, also n=1 und n+1=2. Weil '2' in der Zelle steht, wird kein 'n' mehr gefunden und der Vorgang 49 Mal ohne weitere Zelländerung wiederholt, weil ja in '2" kein 'n' vorkommt.
Falls du das willst, was ich beschrieben habe, muss die Laufvariable in eine Stringvariable umgewandelt werden. Da aber nach der ersten ersten Änderung der um 1 erhöhte Wert in der Zelle steht, wird mit dem nächsten n dieser Wert gefunden und wiederum erhöht. Deshalb musst du nach der ersten Änderung die For-Next-Schleife verlassen.
Versuche
Dim Spalte As Integer
Dim Zeile As Integer
Dim l_zeile As Integer
Dim l_spalte As Integer
Dim n As Integer
Dim str As String
l_zeile = Cells(Rows.Count, 1).End(xlUp).Rows.Row
l_spalte = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
For Spalte = 1 To l_spalte
For Zeile = 1 To l_zeile
If Cells(Zeile, Spalte) Like "Fx" Then
Cells(Zeile, Spalte) = 1
ElseIf Cells(Zeile, Spalte) Like "Fy" Then
Cells(Zeile, Spalte) = 2
ElseIf Cells(Zeile, Spalte) Like "Fz" Then
Cells(Zeile, Spalte) = 3
ElseIf Cells(Zeile, Spalte) Like "Mx" Then
Cells(Zeile, Spalte) = 4
ElseIf Cells(Zeile, Spalte) Like "My" Then
Cells(Zeile, Spalte) = 5
ElseIf Cells(Zeile, Spalte) Like "Mz" Then
Cells(Zeile, Spalte) = 6
ElseIf Cells(Zeile, Spalte) Like "*montage*" Then
Cells(Zeile, Spalte) = 1
ElseIf Cells(Zeile, Spalte) Like "*LF*" Then
For n = 1 To 50
'str = Val(n)
If Cells(Zeile, Spalte) Like "*" + cstr(n) + "*" Then
'n = Val(str)
Cells(Zeile, Spalte) = n + 1
Exit For
End If
Next n
End If
Next Zeile
Next Spalte
Gruß
Holger
|