Hallo Andromeda_104,
sehe das folgende bitte nicht als einen persönlichen Angriff an.
Die Sache mit dem RefreshListener (von F3K Total) habe ich auch in groben Zügen verstanden.
Allein schon bei dem Wort "Listner" sträuben sich bei mir die Nackenhaare. Nicht weil ich ihn hasse, oder verpönen wurde, nein, vielmehr deshalb weil er mir stellenweise einfach zu "Hoch", zu unverständlich ist. Ich habe stellenweise meine Probleme mit dem einfachen StarBasic, aber der Listner ist für mich persönlich einfach eine andere Hausnummer. Und Du als Anfänger, so darf ich dich ja titulieren, oder(?), hast diesen speziellen Listner in groben Zügen verstanden? Das kann ich mir gar nicht so recht vorstellen. Zumal Du ja noch nicht mal die wirklich Grundlegenden und wirklich wichtigen Grundbausteine von StarBasic verstehst. Denn ansonsten wärst du von allein darauf gekommen, warum sich dein Makro so verhällt wie von dir beschrieben. Dazu sage ich gleich noch mal was.
Doch wie war das in einem anderen Beitrag von dir?
hier hat geschrieben:
Aber sobald es in die Tiefe geht und eigene Wege gefunden werden müssen, steht der Anfänger vor einer extrem schweren Aufgabe.
Es muss noch nicht mal in die Tiefe gehen, dafür reicht schon etwas leichtes so wie in deinem Makro. Ohne wirklich elementar wichtiges Grundverständnis über StarBasic stolpert man sehr schnell über Probleme und Fehler die man nicht sofort versteht.
Als erstes, und schreib dir das ganz Dick und FÄTT hinter die Ohren.
StarBasic arbeit ein Makro, genauer gesagt eine SUB, generell immer Zeilenweise von oben nach unten ab.
Du wirst gleich noch verstehen wie wichtig allein schon dieser Merksatz ist.
Ich gehe mal dein Makro Zeilenweise von oben nach unten durch.
Warum
Global? Weißt Du was das für Auswirkungen haben kann?
Und warum
Long? Bist Du dir ganz sicher das Du so viel brauchst?
Code: Alles auswählen
Sub Uebernahmeroutine
osheet = thisComponent.sheets(0)
osourcecell = osheet.getcellbyposition(0,0)
So weit OK.
Irgendwie richtig, aber dennoch Falsch!
Du hast wohl
ncounter schon zu Anfang als
Global deklariert, aber bis hier noch nirgendwo defeniert. Und folglich hat
ncounter den Wert 0.
Ok.
Jetzt erhöst Du den Wert von
ncounter um 1. Das ist ja auch korrekt. Und so nebenbei, das Ende der Sub ist auch korrekt.
Bei einem Neustart des Programms werden bereits vorhandene Werte in der Spalte B wieder überschrieben. Das ist aber so nicht gewünscht. Es sollte vielmehr so sein, dass das Makro nicht wieder oben anfängt einzutragen, sondern dort, wo die Eintragungen das letzte Mal endeten. Wurde das Programm also bei einem letzten Eintrag in B10 beendet und gespeichert, dann muss der nächste Eintrag ab B11 erfolgen.
Da ich dir ja den Merksatz schon gesagt habe, kommst Du jetzt von alleine drauf warum das Makro nach jedem erneuten öffnen der Datei in der Spalte B bei B1 anfängt? Das Problem, besser gesagt den Fehler, habe ich dir vorhin schon aufgezeigt.
Mir geht es jetzt nicht darum dir eine Lösung wie von clag aufzuzeigen, sondern darum das Du mehr von den elementar sehr wichtigen Grundprinzipien von StarBasic verstehst. Wenn du das so langsam verstehst, wirst Du dich kein zweites mal darüber wundern warum sich das Makro so verhällt wie von dir beschrieben.
Stephan hatte dir ja schon in dem anderen Thread ein paar weiterführende Hilfsquellen aufgelistet, die möchte ich hier und jetzt um eine weitere lohnenswerte erweitern.
Schau auch ruhig mal bei
Dannenhöfer rein. Und befasse dich mal mit dem sehr wichtigen Thema *Variablen*.
gruß
balu