Hallo VBA-Spezialisten,
vor geraumer Zeit hat mir Onur ein Code geschrieben, welches Text aus 2 Spalten aufsteigend in einer Zelle darstellt,- Bombe!
Nun möchte ich dies in einem anderen Sheet wieder anwenden,- allerdings 3 Spalten nach rechts versetzt.
Der ursprüngliche Code
Sub Times_Ordnung()
Dim arr1, arr2, txt1, txt2, pos, txt
Dim z, le, z2, temp
Dim i As Integer
ReDim arr2(0)
For z = 2 To 45000
If Cells(z, 2) "" Then
txt1 = Cells(z, 9).Text
txt2 = Cells(z, 10).Text
If txt1 "" And txt2 "" Then txt1 = txt1 & " "
txt = txt1 & txt2
arr1 = Split(txt, " ")
On Error GoTo ENDE
For i = 0 To UBound(arr1)
On Error GoTo 0
ReDim Preserve arr2(i)
pos = InStr(arr1(i), "+")
le = Len(arr1(i))
If pos = 0 Then
arr2(i) = Val(arr1(i)) * 10
Else
z2 = Val(Right(arr1(i), le - pos))
arr2(i) = Val(arr1(i)) * 10 + z2
End If
Next i
For i1 = 0 To UBound(arr1)
For i2 = i1 + 1 To UBound(arr1)
If arr2(i1) > arr2(i2) Then
temp = arr2(i1)
arr2(i1) = arr2(i2)
arr2(i2) = temp
temp = arr1(i1)
arr1(i1) = arr1(i2)
arr1(i2) = temp
End If
Next i2
Next i1
txt = ""
For i1 = 0 To UBound(arr1)
txt = txt + " " + arr1(i1)
Next i1
Cells(z, 11) = txt
ENDE:
End If
Next z
End Sub
in diesem ursprünglichen Code stehen die "Ergebniszellen" in Spalte "K" (11)die 2 Spalten, auf die sich das Ergebnis bezieht in "I" und "J" (9+10)
Ich habe nun zu anfang der neuen Sheet`s 3 Spalten eingefügt und der Code klappt nicht mehr.
Die Ergebnisspalte ist nun "N" (14) und bezieht sich auf die 2 Spalten "L" und "M" (12 + 13)
Meine Veränderung war:
txt1 = Cells(z, 12).Text
txt2 = Cells(z, 13).Text
Cells(z, 14) = txt
was mache ich da falsch?Gruß
Fred