Hey LSH_Dackel,
hmm, nun gut. Schätze, es sind deine ersten Erfahrungen mit Makros (OOo Basic?). Der Code ist ein bischen "holbrig", aber wenn er funktioniert....
Zu deinem Problem: Leider schreibst due nicht genau, was du ausliest und "verwertest". Im Code sind Widersprüche, die möglicherweise dein Problem auslösen.
Hier erzeugst du ein Array mit 10 Elementen, welche
nur Strings - also Texte - aufnehmen können. (Durch die Festlegung als String!)
Ansdererseits liest du hier - und in weiterer Folge - die Werte (also Zahlen!) aus der Zelle aus und weist sie dem Arrayelement zu. OOo wird jetzt die Zahlen in Strings umwandeln!
Beim "Print" Befehl werden die Strings gedruckt - das unterscheidet sich nicht von Werten.
Jetzt wiederum willst du dem Wert der Zelle einen String zuweisen... das funktioniert nicht.
Also, jetzt hast du mehrere Möglichkeiten:
1. Erzeuge das Array ohne dich auf einen bestimmten Typ festzulegen:
Jetzt würden Werte gespeichert - und die kannst du auch wieder ausgeben.
2. Bei der Zuweisung der (sortierten) Werte wandelst du den Text erst wieder in einen Wert um - auch das sollte funktionieren:
Jetzt wird der Ausdruck "Entry(Count)" in eine Integer-Zahl umgewandelt und kann setValue() dem Wert einer Zelle zugeordnet werden.
3. Brauchst du gar keine Werte in den Zellen, sondern reichen dir Texte, so kannst du natürlich auch direkt den Text mit "setString()" eingeben:
Das hängt hat davon ab, was du weiter damit machen willst.
Ich hoffe, es hilft erst einmal.
PS: Zur optimierung des Codes würde ich stärker mit Schleifen Arbeiten!
Beispiel: Einlesen der Werte: Schleife über einen Array der Tabellenblätter.
Schreiben der Zellen: Schleife über die Ausgabe:
Code: Alles auswählen
oSheet = oSheets.getByName("Bestenliste")
For Count = 1 To 10
oSheet.getCellByposition(2, count).value = CInt(Entry (Count))
Next
Gruss
Thomas