Ich hab zwei fast völlig identische codes und der ein funktioniert aber der andere net.
der funzt
Code: Alles auswählen
sub rankingABIGK
Dim oSheets as Object
Dim oSheet as Object
Dim zelle as Object
Dim Entry(1, 3)
Dim Count As Double
Dim Count2 As Double
Dim Temp As Double
Dim Entry_s(1, 1)
Dim Entry_v(1, 1)
oSheets = ThisComponent.Sheets
oSheet = oSheets.getByName("HJLübersicht")
For zeile = 3 to 4
j = 1
k = 1
for i = 1 to 3
Cell = oSheet.getCellByposition(i,zeile)
Select Case Cell.string
Case = "keine Note"
Entry_s(0,k) = oSheet.getCellByposition(i,zeile).String
Entry_s(1,k) = oSheet.getCellByposition(i,0).String
k = k + 1
Redim Preserve Entry_s(1,k)
Case = ""
Entry_s(0,k) = oSheet.getCellByposition(i,zeile).String
Entry_s(1,k) = oSheet.getCellByposition(i,0).String
k = k + 1
Case Else
Entry_v(0,j) = oSheet.getCellByposition(i,zeile).Value
Entry_v(1,j) = oSheet.getCellByposition(i,0).String
j = j + 1
Redim Preserve Entry_v(1,j)
End Select
Next i
Redim Preserve Entry_s(1,k-1)
Redim Preserve Entry_v(1,j-1)
'**
For Count = 1 To UBOUND(Entry_s(),2)
For Count2 = Count + 1 To UBOUND(Entry_s(),2)
If Entry_s(0,Count) < Entry_s(0,Count2) Then
Temp = Entry_s(0,Count)
Temp2 = Entry_s(1,Count)
Entry_s(0,Count) = Entry_s(0,Count2)
Entry_s(1,Count) = Entry_s(1,Count2)
Entry_s(0,Count2) = Temp
Entry_s(1,Count2) = Temp2
End If
Next Count2
Next Count
'*
For Count = 1 To UBOUND(Entry_v(),2)
For Count2 = Count + 1 To UBOUND(Entry_v(),2)
If Entry_v(0,Count) < Entry_v(0,Count2) Then
Temp = Entry_v(0,Count)
Temp2 = Entry_v(1,Count)
Entry_v(0,Count) = Entry_v(0,Count2)
Entry_v(1,Count) = Entry_v(1,Count2)
Entry_v(0,Count2) = Temp
Entry_v(1,Count2) = Temp2
End If
Next Count2
Next Count
For Count = 1 To UBOUND(Entry_v(),2)
Entry(0, Count) = Entry_v(0, Count)
Entry(1, Count) = Entry_v(1, Count)
next count
i = Count
For Count = i To 3
Entry(0, Count) = Entry_s(0, Count-i+1)
Entry(1, Count) = Entry_s(1, Count-i+1)
next count
For Count = 1 To 3
oSheet.getCellByposition(25 +count, zeile).setformula((Entry (0,Count))
oSheet.getCellByposition(29 +count, zeile).setformula((Entry (1,Count))
Next
next zeile
end sub
bei "entry_s"Unzulässiger Wert oder Datentyp.
Index außerhalb des definierten Bereichs.
oder
den selben fehler bei "entry_v" wenn ein zahlenwert in zeile 7 oder tiefer seht
Code: Alles auswählen
sub ranking
Dim oSheets as Object
Dim oSheet as Object
Dim zelle as Object
Dim Entry(1, 4)
Dim Count As Double
Dim Count2 As Double
Dim Temp As Double
Dim Entry_s(1, 1)
Dim Entry_v(1, 1)
oSheets = ThisComponent.Sheets
oSheet = oSheets.getByName("HJLübersicht")
For zeile = 6 to 16
k = 1
j = 1
for i = 1 to 4
Cell = oSheet.getCellByposition(i,zeile)
Select Case Cell.string
Case = "keine Note"
Entry_s(0,k) = oSheet.getCellByposition(i,zeile).String
Entry_s(1,k) = oSheet.getCellByposition(i,0).String
k = k + 1
Redim Preserve Entry_s(1,k)
Case = ""
Entry_s(0,k) = oSheet.getCellByposition(i,zeile).String
Entry_s(1,k) = oSheet.getCellByposition(i,0).String
k = k + 1
Redim Preserve Entry_s(1,k)
Case Else
Entry_v(0,j) = oSheet.getCellByposition(i,zeile).Value
Entry_v(1,j) = oSheet.getCellByposition(i,0).String
j = j + 1
Redim Preserve Entry_v(1,j)
End Select
Next i
Redim Preserve Entry_s(1,k-1)
Redim Preserve Entry_v(1,j-1)
'**
For Count = 1 To UBOUND(Entry_s(),2)
For Count2 = Count + 1 To UBOUND(Entry_s(),2)
If Entry_s(0,Count) < Entry_s(0,Count2) Then
Temp = Entry_s(0,Count)
Temp2 = Entry_s(1,Count)
Entry_s(0,Count) = Entry_s(0,Count2)
Entry_s(1,Count) = Entry_s(1,Count2)
Entry_s(0,Count2) = Temp
Entry_s(1,Count2) = Temp2
End If
Next Count2
Next Count
'*
For Count = 1 To UBOUND(Entry_v(),2)
For Count2 = Count + 1 To UBOUND(Entry_v(),2)
If Entry_v(0,Count) < Entry_v(0,Count2) Then
Temp = Entry_v(0,Count)
Temp2 = Entry_v(1,Count)
Entry_v(0,Count) = Entry_v(0,Count2)
Entry_v(1,Count) = Entry_v(1,Count2)
Entry_v(0,Count2) = Temp
Entry_v(1,Count2) = Temp2
End If
Next Count2
Next Count
For Count = 1 To UBOUND(Entry_v(),2)
Entry(0, Count) = Entry_v(0, Count)
Entry(1, Count) = Entry_v(1, Count)
next count
i = Count
For Count = i To 4
Entry(0, Count) = Entry_s(0, Count-i+1)
Entry(1, Count) = Entry_s(1, Count-i+1)
next count
For Count = 1 To 4
oSheet.getCellByposition(25 +count, zeile).setformula((Entry (0,Count))
oSheet.getCellByposition(29 +count, zeile).setformula((Entry (1,Count))
Next
next zeile
end sub

Wenn ihr euch das ganze in der datei ansehen wollt die hab ich hier mal vorbereited
http://lshdackel.ls.funpic.de/Demo/Fehl ... gstufe.ods
MFG LSH_Dackel