Problem suche

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

LSH_Dackel
***
Beiträge: 53
Registriert: Do, 05.01.2006 17:40

Problem suche

Beitrag von LSH_Dackel »

Hi Leute hab mal wieder oder noch immer ein Problem
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
und der bringt mir wenn die zeile mit nummerischen werten voll is den fehler
Unzulässiger Wert oder Datentyp.
Index außerhalb des definierten Bereichs.
bei "entry_s"

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
Hoffentlich kann mir jemand helfen diesen fehler aus zu merzen :roll:

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