[GELÖST] Cursormanipulation per Basic

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

Moderator: Moderatoren

StePfl
**
Beiträge: 47
Registriert: Mo, 04.07.2016 17:16

Re: Cursormanipulation per Basic

Beitrag von StePfl »

@Thomas Mc Kie:
Sorry - ich hatte das anders mit "myDoc.enableAutomaticCalculation( TRUE )" schon gelöst. Aber dein Hinweis war interessant und ich werde mir bei Gelegenheit die Unterschiede genauer ansehen ...

@Alle:
Ihr braucht m.E. gar nicht so tief in das Gesamtproblem einsteigen, denn es geht ja - nur eben nicht wirklich schön und leider auch fehleranfällig.
DAS versuch(t)e ich mit der Verwendung von einem virtuellen Cursor zu beheben - nur finde ich den geeigneten Befehl nicht ....

Das Selbe gilt natürlich auch für die RückwärtsIdentifikation von eine <cell-object> zu seinem <sheet-object> zu seinem <workbook-object>
Es wäre halt schön gewesen, wenn das <cell-object> eine Eigenschaft hätte, die einen solchen Rückschluß zulässt.

Jedenfalls habe ich eure Beiträge mit sehr viel Interesse gelesen und danke euch dafür.
lG StePfl
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Cursormanipulation per Basic

Beitrag von Karolus »

StePfl hat geschrieben:vielleich besser - die konkrete Frage 1 lautet (ohne weitere Beschreibungen):

Gibt es in in Starbasic die Möglichkeit, einen mit CreateCursor erzeugten, virtuellen Cursor ähnlich zu bewegen/manipulieren, wie man in der "normalen", manuellen Oberfläche den sichtbaren Cursor mit "Strg+Down" bewegen kann?

Analog auch für "Strg-Left", "Strg-Right", "Strg+End" ....



@Alle:
Ihr braucht m.E. gar nicht so tief in das Gesamtproblem einsteigen, denn es geht ja - nur eben nicht wirklich schön und leider auch fehleranfällig.
DAS versuch(t)e ich mit der Verwendung von einem virtuellen Cursor zu beheben - nur finde ich den geeigneten Befehl nicht ....
Installier dir halt Xray oder MRI wie es dir bereits andere nahe gelegt haben, und untersuche damit deinen Cursor…
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
StePfl
**
Beiträge: 47
Registriert: Mo, 04.07.2016 17:16

Re: Cursormanipulation per Basic

Beitrag von StePfl »

@Karolus:
Yep - getan - hat bzgl. Frage 2 einen ersten Erfolg gebracht: :D
<Shell-object_ofCellobject> = <Cell.object>.getSpredSheet

Jetzt muß ich nur noch das Selbe für <worksheet-object> finden .... (bin am suchen 8) )

bei Frage 1:
eine vergleichbare CursorManipulation scheint es nicht zu geben .... :=> selber programmieren :( :shock: :D

ViELEN DANK!

stepfl
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Cursormanipulation per Basic

Beitrag von Stephan »

Ich will nicht "selektieren" im eigentlichen Sinn, sondern "identifizieren" und in Form eines <Range-objects> später dann adressieren/verarbeiten - sprich einen virtuellen (unsichtbaren) Cursor analog zu z.B."Strg+Down" so zu bewegen dass die Datenbereiche anschließend (als Cell- oder Range-Object) durch die restlichen Routinen sauber angesprochen/adressiert werden können
Wozu? Auch eine 'virtuelle' Selection "analog zu z.B."Strg+Down"" [sic] bleibt eine Selektion und sie ist unnötig, weil Du mit Zell- und Zell-Range-Objekten arbeiten kannst (siehe auch Folgepost von mir).
... kenne ich - aber wenn ich zwischen zwei unterschiedlichen Calc-Dokumenten wechsle (sprich sie gemeinsam bearbeite - z.B. Calc1 als Grunddaten und Calc2 als Ergebnisdaten) - wie/wo finde ich heraus, in welchem der beiden Doc sich dann Sheet(0) befindet?
mal für mein Verständnis:
Wie übergibst Du denn ein Zellobjekt ohne das zu diesem Zeitpunkt das Datei-Objekt bekannt ist?


imho kann man ein Zellobjekt im Wesentlichen auf zwei Wegen übergeben:

1.
Es ist eine Zelle markiert wenn das Makro gestartet wird. Dann ist das Zellobjekt:

Code: Alles auswählen

Thiscomponent.getCurrentSelection
und zwangsläufig ist dann Thiscomponent das passende Datei bzw. Workbook-Objekt mit Adresse (soweit gespeichert):

Code: Alles auswählen

ThisComponent.URL
2.
Du übergibst das Zellobjekt im Code, dann musst Du es doch aber erst einmal ansprechen und das geht doch garnicht ohne Kenntnis des Datei bzw. Workbook-Objekts - wenn doch erkäre mir wie (außer durch Selektion, das war aber 1.)

z.B. ist das aktuelle Blatt ThisComponent.CurrentController.ActiveSheet, womit zwangsläufig das Datei bzw. Workbook-Objekt mittels ThisComponent ohnehin schon feststeht.



Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Cursormanipulation per Basic

Beitrag von Stephan »

Gibt es in in Starbasic die Möglichkeit, einen mit CreateCursor erzeugten, virtuellen Cursor ähnlich zu bewegen/manipulieren, wie man in der "normalen", manuellen Oberfläche den sichtbaren Cursor mit "Strg+Down" bewegen kann?

Analog auch für "Strg-Left", "Strg-Right", "Strg+End" ....
Nein, es gibt keinen virtuellen Cursor dafür, denn er wird auch nicht benötigt, weil die Zelle über Zell- und Zell-Range Objekt(e) ermittelbar ist.

Beispiel:

aktuelle Zelle (Zellobjekt) sei die aktuell selektierte Zelle, also:

Code: Alles auswählen

akt_zelle = ThisComponent.CurrentSelection
dann ist der Zeilenindex dieser Zelle:

Code: Alles auswählen

zeilenindex = akt_zelle.RangeAddress.StartRow
folglich ist die zugehörige Zeile (Range):

Code: Alles auswählen

akt_zeile = ThisComponent.Sheets(akt_zelle.RangeAddress.Sheet).Rows(zeilenindex)
und folglich die letzte Zelle dieser Zeile:

Code: Alles auswählen

letzte_spalte = akt_zeile.RangeAddress.EndColumn
bi = akt_zelle.RangeAddress.Sheet
gesuchtes_zellobjekt = ThisComponent.Sheets(bi).getCellByPosition(letzte_spalte, zeilenindex)
analog für STRG+LINKS, STRG+OBEN, STRG+UNTEN


Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Cursormanipulation per Basic

Beitrag von Stephan »

<Shell-object_ofCellobject> = <Cell.object>.getSpredSheet
hatte ich bereits gepostet ... auch nicht gelesen?
StePfl
**
Beiträge: 47
Registriert: Mo, 04.07.2016 17:16

Re: Cursormanipulation per Basic

Beitrag von StePfl »

Stephan hat geschrieben:
<Shell-object_ofCellobject> = <Cell.object>.getSpredSheet
hatte ich bereits gepostet ... auch nicht gelesen?
schon gelesen - aber nicht richtig verstanden, weil vorne dran "thisComponent" als "Workbook-object"stand und ich genau dieses als Ergebnis erhalten wollte ....

Der Ablauf sieht wie folgt aus: (Alle Makros stehen in Calc2)
aus Calc2 (die "Master"-Datei) heraus suche ich per "Filepiker" die einzelesende Datei, lese diese per "Input" ein, ermittle den DatenTyp und erzeuge eine dazu passende "Calc1"-Datei. Dort in Sheet(0) werden die Rohdaten eingetragen und dann in Sheet(1) in bereinigter Form (ohne DruckSteuerzeichen etc.) abgelegt. Die Daten darin bestehen aus mehreren unterschiedlich handzuhabenden Datenblöcken.

Dann werden in Calc1 die für die Auswertung notwendigen, weiteren Sheets ermittelt und angelegt: Sheet(2)- sheet(x).
Anschließend werden die Daten in Sheet(1) Zeilenweise in ihre Bestandteile zerlegt und in das dazugehörigen DatenSheet(3) für die Weiterverarbeitung abgelegt. Anschließend werden weitere Verarbeitung durchgeführt und in den weiteren Sheets abgelegt.

Dann wird Calc3 erzeugt und die Ergebnisdaten (ohne die verarbeitenden Makros und/oder Formeln) dorthin übertragen.

Warum so kompliziert?
1. ich kann die einzelnen Verarbeitungsschritte besser verfolgen und immer wieder auftretende Fehler (vor dem nächsten Verarbeitungsschritt) korrigieren
2. Da die DatenMenge so groß ist, habe ich auf diese Weise einen besseren Überblick.

Jetzt benötige ich manche Sub für die Verarbeitung in Calc1, stehen aber in Calc2. Die Verarbeitung mit den Cell-Objekt funktioniert in beiden Calc-Dateien, aber jetzt hätte ich in der Sub den Zugriff auch ein Range-Object gebraucht - und für die Deklaration benötige ich ein Sheet.Object und ein Workbook.Object. Diese sind natürlich (grundsätzlich) bekannt - nun (im Moment) nicht in der aktuellen Sub.

Ich werde den Sub-Aufruf einfach anpassen und der Kaas ist gegessen.

Danke für Alles.
StePfl
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Cursormanipulation per Basic

Beitrag von Stephan »

Der Ablauf sieht wie folgt aus
Dann ist das ein üblicher Weg und ich verstehe den Sinn der ganzen Diskussion um die Ermittlung des Workbookobjektes nun garnicht mehr denn es ist nur notwendig as aktuelle Workbbok in einer Objektvariable zu speichern, die zu öffnende Datei in einer zweiten Objektvariable und die möglicherweise driite Datei in einer Dritten. Sinngemäß also:

tc = Thiscomponent 'tc enthält nun als Objektvariable das aktuelle Workbook

tc2 = StarDesktop.loadComponentFromURL(ConvertToURL("DeinPfad"), "_blank", 0, ARRAY())

tc3 = StarDesktop.loadComponentFromURL(ConvertToURL("DeinWeitererPfad"), "_blank", 0, ARRAY())

und schon kannst Du in beliebiger Reihenfolge auf jede der 3 Dateien (Workbook-Objekte) zugreifen ohne irgendwo überhaupt speziell deren Objekt ermittelt zu haben, denn es war jeweils ohnehin da in Form des gültigen ThisComponent, das nur jeweils in einer Objektvariable fixiert werden muss.
Warum so kompliziert?
Spielt keine Rolle, zumal ich das beschriebene Vorgehen als ganz üblich ansehe um Werte von einer Datei in irgendwelche anderen Dateien zu bekommen.



Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Cursormanipulation per Basic

Beitrag von balu »

Hallo StePfl!

Also ich bin jetzt mal total ehrlich, auch wenn es sich sehr böse anhört.

Mir reichts so langsam!
Es wurde um eine Beispieldatei gebeten, und nichts kommt. Es wurde gesagt das diese Beispieldatei mit Fantasiedaten gefüllt sein soll, aber es kommt einfach nichts.

Und jetzt lese ich etwas womit ich eigentlich schon so gedanklich hier rumgespielt habe, ist Unterstrichen,
aus Calc2 (die "Master"-Datei) heraus suche ich per "Filepiker" die einzelesende Datei, lese diese per "Input" ein, ermittle den DatenTyp und erzeuge eine dazu passende "Calc1"-Datei.
und bist wiederum nur am erzählen.
Du könntest ein Beispielpaket schnüren, wo deine .Lis mit Fantasiedaten gefüllt ist, und deine Calc Masterdatei würde dein bisheriges Makro beinhalten. Damit könnten wir besser arbeiten als mit deinem langen Beschreibungen.

Und ferner gewöhne dir bitte die richtigen Begriffe von StarBasic an. Nicht jeder hier kennt oder arbeitet mit VBA wo es Workbook, oder was auch immer gibt.

Warum ich mich so Aufrege?
Du kennst Dannenhöfer, und Du kennst Andrew. Aber Du versuchst, so scheint es mir, dich einfach nicht von VBA zu lösen wollen und sprichst in der Sprache. Um eine gescheite Komunikation zu gewährleisten, sprich StarBasic, denn ansonsten machts keinen Spaß und missverständnisse sind vorprogrammiert.


So, und noch mal sachlich.

Thema "Input":
Ich weiss nicht wie Du die Daten einliest, da keine Beispieldatei und kein Makro hier zur Verfügung steht. Aber ich weiß das es mehrere Wege gibt eine Textdatei, ja ich meine jetzt wirklich Textdatei und keine Tabellen ähnliche Datei, einzulesen. Und ich weiss auch das man schon beim einlesen dieser Textdatei gleich einen "Filter" programmieren kann der gefundene Datensätze auch gleichzeitig splitten kann. Und vielleicht brauchst Du ja dann auch gar nicht mehr das Thema "Cursormanipulation" mehr. Es sei denn .... nö .... das verrarte ich jetzt nicht ;-)

So was ähnliches habe ich nämlich schon mit HTML Dateien gemacht, genauer gesagt mit dem Quelltext der HTML. Aber ohne Beispieldatei is nix mit Hilfe.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
StePfl
**
Beiträge: 47
Registriert: Mo, 04.07.2016 17:16

Re: Cursormanipulation per Basic

Beitrag von StePfl »

@ Stephans Beispiel:

aktuelle Zelle (Zellobjekt) sei die aktuell selektierte Zelle, also:

Code: Alles auswählen

akt_zelle = ThisComponent.CurrentSelection
dann ist der Zeilenindex dieser Zelle:

Code: Alles auswählen

zeilenindex = akt_zelle.RangeAddress.StartRow
folglich ist die zugehörige Zeile (Range):

Code: Alles auswählen

akt_zeile = ThisComponent.Sheets(akt_zelle.RangeAddress.Sheet).Rows(zeilenindex)
und folglich die letzte Zelle dieser Zeile:

Code: Alles auswählen

letzte_spalte = akt_zeile.RangeAddress.EndColumn
bi = akt_zelle.RangeAddress.Sheet

gesuchtes_zellobjekt = ThisComponent.Sheets(bi).getCellByPosition(letzte_spalte, zeilenindex)
Ich habe mal dein Beispiel ausprobiert - bei mir lande ich damit in der allerletzten Spalte der gewählten Zeile ...
Das ist aus meiner Sicht auch logisch, denn ich habe ja mit "akt_Zeile" die gesamte Zeile definiert, deren letzte Spalte die (absolut) letzte des Sheets ist. Gesucht war aber die letzte Zelle in einem geschlossenen DatenBlock - wie ich diese Spalte mit dieser Methode finde ??
Vielleicht muß ich in der Zeile ab der aktuellenZelle das erste Element suchen, dessen Inhalt leer ist ... (Das könnte vll. funktionieren)

nur für mein Dazulernen und BesserVerstehen:
Außerdem habe ich leider (noch) nicht verstanden, was an einem CursorObject ungünstiger als an einem Cell-/RangeObject sein soll.
Ich will das CursorObject ja nur dafür nutzen, um mit dem SuchErgebnis dann ein Cell- oder RangeObject zu definieren.

interessierte Grüße,
StePfl
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Cursormanipulation per Basic

Beitrag von Karolus »

Hallo

Wie wärs denn mit einer angehängten Beispielsdatei aus der ersichtlich wird worums eigentlich geht?

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
StePfl
**
Beiträge: 47
Registriert: Mo, 04.07.2016 17:16

Re: Cursormanipulation per Basic

Beitrag von StePfl »

balu hat geschrieben:Hallo StePfl!

Also ich bin jetzt mal total ehrlich, auch wenn es sich sehr böse anhört.

Mir reichts so langsam!
Es wurde um eine Beispieldatei gebeten, und nichts kommt. Es wurde gesagt das diese Beispieldatei mit Fantasiedaten gefüllt sein soll, aber es kommt einfach nichts. .... Und ferner gewöhne dir bitte die richtigen Begriffe von StarBasic an. Nicht jeder hier kennt oder arbeitet mit VBA wo es Workbook, oder was auch immer gibt.

Warum ich mich so Aufrege?
Du kennst Dannenhöfer, und Du kennst Andrew. Aber Du versuchst, so scheint es mir, dich einfach nicht von VBA zu lösen wollen und sprichst in der Sprache. Um eine gescheite Komunikation zu gewährleisten, sprich StarBasic, denn ansonsten machts keinen Spaß und missverständnisse sind vorprogrammiert.

Gruß
balu
Danke - Balu für deine Direktheit - sie hat für mich nichts böses an sich.

zur persönlichen Sitation - mein Hintergrund:
ich habe früher beruflich ca 10 Jahre fast täglich mit VBA gearbeitet , VBA ist mir damals wirklich in Fleisch und Blut übergegangen. Auch die Auswertungen, um die es hier geht, waren ursprünglich auch in VBA geschrieben. (Ich weiß also, wie man mit Txt-Dateien umgeht und der Teil funktioniert inwischenn auch sehr gut).
Seit einiger Zeit arbeite ich nun mit OpenOffice bzw. LibreOffice und versuche die Programme mit Starbasic zu realisieren bzw mit Startbasic neu zu schreiben. Dabei würde ich gerne die an sich bewährte Funktionalität beibehalten. Da ich inzwischen in einem anderen Job bin, ist programmieren nur noch ab und zu - eher selten - dran. Es ist also nicht verwunderlich, dass mir immer noch (intuitiv) die Begriffe und Denkmuster von VBA unterkommen - also sorry desshalb.

In diesem Zusammenhang bemühe ich mich mich Starbasic zu nähern - "kennen" ist da deutlich übertrieben. Natürlich habe ich versucht mich einzulesen - beim Dannenhöfer, beim Andrew und in Buchform bei Krumbein - es fällt mir aber immer noch schwer, die Denkwelt, Struktur und ~abläufe zu verstehen.


nun zum "sachlichen" Teil:
Ich verstehe noch nicht, warum du für die Beantwortung meiner Frage "Cursormanipulation mit Basic" die Dateien als Beispiel brauchst. Stephan hat mir ja inzwischen kurz und klar geantwortet, dass so etwas nicht mit StarBasic möglich ist - gut so.

zu Frage2 (@Stephan): ich habe eine Function, die (bisher) nur ein Cell-Object benötigte. Diese Function sollte nun weitere Auswertungen machen und benötigt dafür ein RangeObject (im selben Sheet). Um dieses zu definieren, brauch ich aber das zugehörige SheetObject.
Durch ".getSpreadSheet" ist dieses Thema erledigt - WUNDERBAR - ich kann wieder weiter"basteln"

In der Grundebene sind natürlich die WorkbookObjecte (bei dir TC, Tc2, Tc3) bekannt - nur halt nicht in der Sub verfügbar. Ich werde die Sub so aufbohren, dass sie das betreffende Workbook (wie heißt das eigentlich im StarBasic?) und Sheet mit übergeben bekommen - FERTIG.

Trotzdem - ich fand die Möglichkeit, die Abhängigkeiten auch rückwärts auflösen zu können sehr elegant - halt in Starbasic nur teilweise verfügbar.

Nichts für ungut - und danke für die für mich sehr lehrreichen Beiträge,

StePfl
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Cursormanipulation per Basic

Beitrag von Karolus »

Hallo
nun zum "sachlichen" Teil:
Ich verstehe noch nicht, warum du für die Beantwortung meiner Frage "Cursormanipulation mit Basic" die Dateien als Beispiel brauchst. Stephan hat mir ja inzwischen kurz und klar geantwortet, dass so etwas nicht mit StarBasic möglich ist - gut so.
Das stimmt so nicht, Stephan hat nur geschrieben das du idR. kein Cursorobjekt benötigst.
Die Informationen zu deinen 10Jahre alten VBA-künsten sind hier eigentlich irrelevant, wie bereits gesagt, eine Beispielsdatei mit hinreichend Informationen zur Aufgabenstellung wäre für die Helfer und dich wesentlich zielführender…

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Cursormanipulation per Basic

Beitrag von balu »

Hallo StePfl,
das betreffende Workbook (wie heißt das eigentlich im StarBasic?)
Wenn ich das richtig verstehe und interpretiere gibt es das so NICHT in Calc, das gabs vielleicht mal früher in StarOffice 5.x.
Warum beziehe ich mich jetzt auf das Asbach-Uralte StarOffice?

Nun, im Excel so wie ich es noch kenne (Excel-2003) gibt es unten eine Art Taskleiste die die geöffneten Excel-Dateien aufführt. Und das gab es auch in dem alten StarOffice. Und diese Taskleiste wird dann wohl in VBA mit "Workbook" angesprochen.

Aber seit OOo ist diese Taskleiste verschwunden. Also gibt es kein Workbook. In OOo, LO und AOO sind das halt alles einfach nur Dateien. Der Dateiname wird oben in der Titelzeile von OO (Kurzform von OOo, LO und AOO) angezeigt. Und die einzelnen Dateien werden auch dementsprechend mit ihrem Dateinamen angesprochen. Mehr sage ich jetzt nicht dazu, da zu umfangreich. Aber Stephan hatte das ja schon mit TC1 etc. kurz angesprochen.

Vergess halt Workbook, auch wenn Du 10 Jahre oder wie auch immer mit VBA gearbeitet hast. Das führt hier nur zur Verwirrung.

Ich verstehe noch nicht, warum du für die Beantwortung meiner Frage "Cursormanipulation mit Basic" die Dateien als Beispiel brauchst.
Weil Du dir wahrscheinlich einen abquälst Daten aus der *.Lis-Datei einzulesen. Denn so habe ich das aus deinen vorigen Beiträgen herausgelesen. Und nach dem einlesen brichst Du dir dann auch noch einen ab, um die Daten irgendwie sortiert (oder wie auch immer) in eine Calc-Datei einzupflegen.

Und wenn man die *.Lis-Datei mit Beispieldaten sieht, die irgendwelche Fantasiedaten beinhaltet aber die real existierende Struktur dieser .Lis wiederspiegelt, kann man ja versuchen das zu Optimieren, was ja auch dein Anliegen ist.

Ferner wollen wir endlich mal deinen Makrocode sehen um endlich voran zu kommen.

Garantieren kann ich nicht ob unsere Hilfe vom Erfolg gekrönt sein wird, aber es kommt ja nur auf einen Versuch drauf an. Und vielleicht ist StarBasic dafür gar nicht geeignet, und Du müsstest vielleicht auf Python umsteigen.

In der Grundebene sind natürlich die WorkbookObjecte (bei dir TC, Tc2, Tc3) bekannt - nur halt nicht in der Sub verfügbar.
Schon mal was von der richtigen Variablendeklaration (Öffentlich, Privat) gehört, und wie man sie wo richtig einsetzt?


es fällt mir aber immer noch schwer, die Denkwelt, Struktur und ~abläufe zu verstehen.
Das aller letzte mal das Du darauf hingwiesen wirst dir entweder XRAY oder MRI zu installieren, kannst auch beide nehmen. Auch wenn sie nicht immer ganz so einfach zu verstehen und zuhanhaben sind, so sind sie sehr nützliche Tools. Und unterstehe dich dies zu ignorieren ;-)



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
StePfl
**
Beiträge: 47
Registriert: Mo, 04.07.2016 17:16

Re: Cursormanipulation per Basic

Beitrag von StePfl »

@Karolus ... eine Beispielsdatei mit hinreichend Informationen zur Aufgabenstellung wäre für die Helfer und dich wesentlich zielführender…
OK - ich wills versuchen: (siehe Anhang)
in Spalte "a" des Sheet(0) von Calc1 werden mehrere Txt-Dateien eingelesen, formatiert, zerlegt und untereinander (mit jew. 5 Leerzeilen dazwischen) eingetragen. (Rohdaten) Die in Sheet(1) hinterlegten Auswerteformeln addressieren ihre Quelldaten über NamenBereiche, die ich nun im Sheet(0) erzeugen muß.

Manuell gehe ich bisher so vor, dass ich den Cursor in "a1" setze, mit "strg+down" in die erste Zeile des ersten Datenblocks springe, mit "Shift+Strg+Down" dann "shift+Ctrl+Rechts" den Datenbereich von Datei(a) markiere und diesem einen bestimmten, aus dem Inhalt der 1. Zelle ermittelten Namen zuweise. Dito verfahre ich dann mit Datenblock"b", Datenblock"c" etc.
Die AuswertungsFormeln in den AuswerteSheets will ich (noch) nicht umschreiben müssen. Um diese in Starbasic zu übertragen werde ich noch viel, VIEL über StarBasic lernen müssen - außerdem funktionieren sie ja.

Dieen Ablauf würde ich nun gerne von StarBasic ausführen lassen -
mit den Dispatcherfunktionen funktioniert es ja schon (so einigermaßen) - Ich wollte es halt in "richtigem" Starbasic schreiben ....
...Die Informationen zu deinen 10Jahre alten VBA-künsten sind hier eigentlich irrelevant...
war eine Antwort auf Balus:
Und ferner gewöhne dir bitte die richtigen Begriffe von StarBasic an. Nicht jeder hier kennt oder arbeitet mit VBA wo es Workbook, oder was auch immer gibt.
... aber du hast recht - es ist HIER irrelevant...
.... Das stimmt so nicht, Stephan hat nur geschrieben das du idR. kein Cursorobjekt benötigst. ...
dann verstehe ich DAS vermutlich falsch - oder?
Zitat Stephan: ... Nein, es gibt keinen virtuellen Cursor dafür, denn er wird auch nicht benötigt, weil die Zelle über Zell- und Zell-Range Objekt(e) ermittelbar ist.
[/quote]

Sorry - das hier soll keine Rechtfertigung werden ...
Ich bin wirklich dankbar für eure Hinweise und Beiträge

Ich hoffe, euch nicht zu sehr genervt zu haben,
danke und herzlichen Gruß,
StePfl

PS: eigentlich ist dieser Thread für mich gelöst - WO trägt man das ein?
Dateianhänge
Makro-Muster.ods
(9.9 KiB) 121-mal heruntergeladen
Antworten