Cursor Sprungziele von anderem Tb automatisch ausführen

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

Moderator: Moderatoren

DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von DITA »

Hallo,

wende mich heut an Euch, da ich "meine" alten Excelmakros in OpenOffice.org calc nicht so einfach zum laufen kriege.

Hatte unter Excel2000 die Möglichkeit via zweites Tabellenblatt Sprungziele festzulegen, nur mit der Einschränkung das auf der "Hauptseite" mindestens
2 Zeilen bzw Spalten zwischen den Eingabezellen frei waren, habe damalige Testdatei mal angehängt, vielleicht hilft sie (hatte es aus einem Excelforum)
Das gute war, konnte die "Sprungziele" eingabeabhängig verändern.
springen.xls
(55 KiB) 144-mal heruntergeladen
Kann ich so etwas auch mit Open Office calc und Eurem Know-How verwirklichen???

der Umstieg ist doch schwerer als gedacht


Wer kann mir helfen?????
Danke

Gruss Dirk
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von Karolus »

Hallo

Falls du für diese Aufgabe nicht den Navigator verwenden möchtest - (obwohl der genau dafür gedacht ist) - benutze wenigstens die HYPERLINK-funktion.
Syntaxbeispiel:

Code: Alles auswählen

=HYPERLINK("#Tabelle1.C3")
aber es wäre eine völlig unnützige Spielerei das per Makro zu erledigen

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von DITA »

Hallo Karolus,

Danke für Deine Antwort, was ist der Navigator??? wie setze ich ihn ein????

Hyperlink kann ich für diesen Zweck nach meinem Wissen nicht einsetzen (setzt voraus das der Anwender draufklickt)

Ich möchte es so realisieren, dass je nach Eingabe in einer bestimmter Zelle der Cursor unterschiedliche "Wege" geht
z.b. bei enter er zwar wie eingestellt nach unten geht, da aber z.b. Tabelle2.B2 steht und er automatisch dort steht, aber anders, wenn man die Zelle
nach rechts verlässt er z.b. nach G66 geht.

Hatte mich vielleicht auch oben falsch ausgedrückt - sorry - dass da zwei Zeilen auf der "Hauptseite" frei sein müssen,- können und werden als reine Infofelder genutzt, von daher ist auch kein Platz für die Hyperlinks, bzw. es wird zu unübersichtlich und "caotisch" für den ein oder anderen späteren Anwender.

Das Excelmakro konnte das ideal erledigen, wie und wo find ich denn den Navigator von dem Du sprachst????

Danke

Gruss Dirk
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von Karolus »

Hallo
.. da aber z.b. Tabelle2.B2 steht und er automatisch dort steht, aber anders, wenn man die Zelle
nach rechts verlässt er z.b. nach G66 geht.
a. drückst du dich konfus aus
b. "riecht" das nach sinnfreier Spielerei

Dafür investiere ich keine Zeit!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von DITA »

Hallo,

nein, ist absolut keine Spielerei, ist sehr lange so unter Excel gelaufen, bin vielleicht davon ausgegangen dass ihr in die Exceldatei schauen konntet
Versuche es nochmal anders zu beschreiben (Hyperlink käme dem schon nahe, wenn da nicht das manuelle ausführen wäre, und das ignorieren leider viele, was zu Falschberechnungen führt)

Versuche mal zu beschreiben wie es war), sorry fürs weiter ausholen

Hatte (wie erwähnt unter Excel 2000) ein Tabellenblatt Eingabe, dann gab es ein Tabellenblatt sprung_Eingabe wo ich die Eingabefelder farblich markiert hatte um sie einfach zu erkennen. Um diese farblich markierten Zellen konnte man die "Ziele" des Cursors auf der Eingabeseite angeben.
Sagte ja "es mussten 2 Zeilen bzw. 2 Spalten" zwischen den Eingabefeldern frei bleiben (mit frei meinte ich nicht ansprechbar für spätere Bearbeitung, als Info und Rückgabefelder gehen sie aber man kommt nicht auf die Felder, weil in der Sprung_Eingabe dort ja die "Sprungziele" eingetragen sind)
Beispiel:
Tabellenblatt Eingabe Zellen D4, D6, D8, G4, G6, G8 sind Eingabefelder
Tabellenblatt sprung_Eingabe sind gleiche Felder wie oben farblich markiert, jedoch steht
in A1, C4 und D3 der Sprung_Eingabe D4
In E4 würde G8 stehen
und in D5 im einfachsten Fall D6 stehen
konnte man mit wenn Verknüpfungen "umleiten"

Auf die Seite Sprung_Eingabe sollte der "normale Anwender" eigentlich nie kommen
Wenn jetzt der Anwender z.B. mit den Pfeiltasten durch die Tabelle(Eingabe) jonglierte, kam es immer wieder vor, er verlor den Überblick, klickte dabei irgendwelche Berechnungen weg- und schon war es passiert, darum dieses Makro
sobald der Cursor auf irgendeiner Art die Zelle verlässt springt der Cursor in die auf der Seite sprung_Eingabe hinterlegte Adresse (Sprungziel)
Sollte der Anwender beispielsweise auf A1 klicken, springt der Cursor auf D4 zurück, das wäre ja fast der Hyperlink - wäre das nicht das andere Tabellenblatt

Dies ist jetzt vereinfacht geschrieben, die Sprungziele sind normal nicht so übersichtlich beieinander, bzw. auf einem Tabellenblatt (für die gab es dann auch so ein Sprung_Tabellenblatt zusätzlich).

So hoffe das ich das nun verständlicher gemacht habe, und es ist wirklich nicht für die Katz

Danke

Gruss Dirk
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von balu »

Hallo Dirk,

Code: Alles auswählen

=WENN($Tabelle2.C2=0;"c25";+WENN($Tabelle2.C2=1;"c7";+WENN($Tabelle2.C2=2;"c7";+WENN($Tabelle2.C2=3;"c7";+WENN($Tabelle2.C2=4;"c7";+WENN($Tabelle2.C2=5;"c7";d_msg()))))))
also mal ehrlich, wer so ne Formel verbrochen hat, der gehört mit Wattebäuschken erschlagen (um es mal gaaaanz milde zu formulieren). Allein schon das Plus vor den WENN!
Dat jeht doch auch einfacher, Beispiel:

Code: Alles auswählen

=WENN($Tabelle2.C2=0;"c25";WENN(UND($Tabelle2.C2>=1;$Tabelle2.C2<=5);"c7";D_MSG()))
oder

Code: Alles auswählen

=WENN($Tabelle2.C2=0;"c25";WENN(($Tabelle2.C2>=1)*($Tabelle2.C2<=5);"c7";D_MSG()))
Ja und das hier

Code: Alles auswählen

=WENN($Tabelle1.A1=0;"A3";+WENN($Tabelle1.A1=1;"c3";+WENN($Tabelle1.A1=2;"E3";+WENN($Tabelle1.A1=3;"g3";+WENN($Tabelle1.A1=4;"i3";+WENN($Tabelle1.A1=5;"k3";d_msg()))))))
lässt sich auf mehrere Arten und Weisen verbessern, ein Beispiel

Code: Alles auswählen

=WENN($Tabelle1.A1>5;d_msg();WAHL($Tabelle1.A1+1;"A3";"c3";"E3";"g3";"i3";"k3"))

Zu deinem Wunsch.
Ich lese mir deine Beiträge durch, schau mir die Datei an, und versteh nur noch "Bahnhof ... Koffer .... klaun".

Die Datei mit deinen Worten irgendwie (von hinten unten durch die Brust zum Mund) verknüpft, lässt meinerseits nur einen Entschluss zu: Du (ihr) geht da irgendwie einen suboptimalen Weg. Wenn schon mit Makro gearbeitet wird, warum nicht das Potential voll ausschöpfen und eine Eingabemaske erstellen, wo der Anwender halt nur in bestimmten Eingabefeldern etwas machen darf. Ist ja nur mal so eine Überlegung.

Wenn man doch nur wüsste für was die Datei gut ist, damit man sich einen Reim drauf machen kann, dann liesse sich da vielleicht was anderes machen.



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
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von lorbass »

Hast du eigentlich mal versucht, deinen Makros ans Laufen zu bringen? Nachdem ich in deinen Makros die Labelnamen* korrigiert habe, werden keine Fehlermeldungen mehr produziert und der Cursor hüpft fröhlich von etlichen Positionen aus zu offenbar vorbestimmten Zellen. Ich kann allerdings nicht kontrollieren, ob die richtigen Zellen angesprungen werden, weil ich dein weder einfaches noch übersichtliches Verfahren bestenfalls ansatzweise verstehe.

* Meine Korrekturen der Labelnamen – Voranstellen eines Buchstabens und Anfügen eines Doppelpunkts – folgen aus der Programmhilfe (→ F1)
[color=#0040FF]Thema: Verwendung von Variablen[/color] hat geschrieben:Konventionen bei der Vergabe von Variablennamen
Variablennamen dürfen maximal 255 Zeichen lang sein. Variablennamen müssen mit einem Buchstaben (A-Z oder a-z) anfangen.
[color=#0040FF]Thema: GoTo-Anweisung [Laufzeit][/color] hat geschrieben:Um ein Label zu setzen, weisen Sie einen Namen zu und setzen einen Doppelpunkt (":") an sein Ende.
Gruß
lorbass
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von DITA »

Hallo Balu,

denn sie wissen nicht was sie tun......

bin immer für Verbesserungen dankbar - Erleichterungen erst recht, nur ich muss es auch umsetzen können

Wie erwähnt, ist schon etliche Jährchen her- kann sogar vielleicht noch mit Office97 gemacht sein - keine Ahnung mehr- hatte das aus einem Forum.
Auch diese Testdatei hatte ich in den Weiten meines "Datenschatzes" noch gefunden, aber unter calc nicht zum laufen gebracht.

Habe mal (soweit wie mir möglich) versucht mein Beispiel als calcDatei aufzubauen, vielleicht wird es so klarer was ich mein.
Im Prinzip ist es ein automatisierter Hyperlink, der in anderem Tabellenblatt nachschaut wo er hin soll
Sprungbeispiel.ods
(12.28 KiB) 131-mal heruntergeladen
wie würde ich das denn anfangen mit einer Eingabemaske????? versuche grade Tabellenblatt eins dafür zu nutzen, da ich zumindest halbwegs zum Ergebnis komme

Danke

Gruss Dirk
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von DITA »

Hallo Lorbass,

ja, aber hab es nicht zum laufen bekommen

Steh im Moment aufm Schlauch und weiß nicht wie und wo ich das entsprechende ändern muss

Hatte versucht, die Excel-Datei mit Open Office zu öffnen, dann unter .ods abzuspeichern und mit aktivierten macros zu starten.
Bin für jegliche Tipps dankbar

Danke

Gruss Dirk
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von balu »

Hallo Dirk,
denn sie wissen nicht was sie tun......
Oh ja, das kenne ich nur zu gut. :wink:


Habe mal (soweit wie mir möglich) versucht mein Beispiel als calcDatei aufzubauen, vielleicht wird es so klarer was ich mein.
Im Prinzip ist es ein automatisierter Hyperlink, der in anderem Tabellenblatt nachschaut wo er hin soll
Es wird nicht wirklich klarer. Aber ich vermute mal ganz stark, das es darum geht Daten einfach der Reihe nach einzugeben. Mit anderen Worten; erst Name, dann Nachname etc.... Und auf Grund dieser Vermutung habe ich da mal ganz fix ein sehr kleines Beispiel erstellt, in dem 3 verschiedene Daten eingegeben werden, und zwar über einen so genannten Dialog. Dazu im Blatt *Erfasste_Daten* auf den Button klicken.

Wenn es das ist was Du eigentlich vorhast, und möchtest, dann können wir auf Basis dieser Datei weiter reden, ansonsten musst Du mit mehr Infos rüberrücken.


Gruß
balu
Dateianhänge
Sprungbeispiel_mit_Dialog_0.3.ods
(13.38 KiB) 107-mal heruntergeladen
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
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von DITA »

Hallo Balu,

ja, dafür ist das auch gedacht ...., gewesen

Der Tipp von Lorbass hat mich mittlerweile (glaub ich) auch ein wenig weiter gebracht, hab da aber noch das ein oder andere Fragezeichen vor Augen

möchte ja gern mehr preis geben, aber an die "alte" Version (nicht gespeichert, nur die test.xls von oben) ist bei Umstellung auf OOo... W E C H

Da das ganze noch nicht in Open Office völlig ausgereift ist (soll in kommender Kur Gestalt annehmen) bin ich natürlich für Verbesserungen immer offen.
Apropo, gibt es ne Möglichkeit, dass calc die Mitarbeit verweigert, wenn man makros deaktiviert hat??? Na, das gehört hier nicht her, aber müsste auch noch "behandelt" werden
Werde mir morgen Deine Eingabemaske mal genauer ansehen - erst einmal danke

Wenn das andere "halbwegs" so läuft wie erhofft stelle ich es hier bereit, vielleicht mit Erläuterungen damit es ersichtlicher wird und mit überarbeiteten Formeln.

Danke

Gruss Dirk
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Cursor Sprungziele von anderem Tb automatisch ausführen

Beitrag von mikeleb »

Hallo,
ich klink' mich auch mal ein.
Über den Sinn bzw. Unsinn der Springerei ist ja schon genug gesagt.
Mich hat es mal einfach gereizt, das Excel-Makro zu übertragen und hoffe, dass es mir gelungen ist (mus DITA entscheiden).
Im Gegensatz zu Excel muss (m. W.) unter openoffice für jedes Tabellenblatt einzeln dem Ereignis "Auswahl geändert" das Makro zugeordnet werden.
Dateianhänge
springen.ods
(9.17 KiB) 162-mal heruntergeladen
Gruß,
mikeleb
Antworten