Textimport deaktivieren mit Hilfe eines Makros

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

Moderator: Moderatoren

Ouagadougou
**
Beiträge: 27
Registriert: Mi, 01.02.2017 11:13

Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Ouagadougou »

Guten Morgen,

Ich habe ein Calc-Dokument, in welches ich bereits mehrere Schaltflächen mit Makros belegt habe, die nach Ausführung einen bestimmten Inhalt in das Dokument einfügen. Nun ist mein Problem, dass ab un zu sich der Dialog "Textimport" öffnet. Diesen benötige ich aber gar nicht, daher lautet meine Frage: Wie kann man diesen deaktivieren, damit dieser erst gar nicht aufploppt?


Hier ein Beispielbild des plötzlich aufploppenden Dialogs, damit Ihr auch wisst worüber ich spreche ;)
Bild
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Toxitom »

Hei Ouagadougou,

hmm, der Dialog "poopt" nicht von alleine und unregelmäßig auf;)

Du musst den nicht deaktivieren - interessanter wäre Dein Makrocode, dann könnten wir sicher den Fehler bzw. das Verhalten identifizieren und das wäre der bessere Weg.
Ich schätze, das Dein Problem genau dort zu finden ist (in dem Makrocode).

Also: Code posten oder Beispieldatei mit Code anhängen.

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Ouagadougou
**
Beiträge: 27
Registriert: Mi, 01.02.2017 11:13

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Ouagadougou »

Hallo Tom,

wenn der Code falsch sein sollte, dann müsste doch der Dialog "Textimport" immer erscheinen, sobald der Code durch das Makro durchgeführt wird. Tut er aber nicht. (sehr unregelmäßig -> spricht gegen einen falschen Code)
ich möchte nur dass dieser Dialog nicht erscheint, daher ein eigenes Makro für das Deaktivieren...
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Stephan »

wenn der Code falsch sein sollte, dann müsste doch der Dialog "Textimport" immer erscheinen, sobald der Code durch das Makro durchgeführt wird.
Nein, natürlich nicht. Ein ganz gewöhnliches .uno:paste per Dispatcher:

Code: Alles auswählen

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

end sub
wäre ein Beispiel für ein Makro das sich so verhielte wie Du es beschreibst, nämlich den Dialog nur in bestimmten Situationen einblenden würde.

ich möchte nur dass dieser Dialog nicht erscheint, daher ein eigenes Makro für das Deaktivieren...
dieser Dialog lässt sich nicht direkt deaktivieren


Gruß
Stephan
Ouagadougou
**
Beiträge: 27
Registriert: Mi, 01.02.2017 11:13

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Ouagadougou »

wie müsste man
Ein ganz gewöhnliches .uno:paste per Dispatcher:
abändern, damit der Dialog "Textimport" nicht mehr hochkommt? Liegt es einfach in der Ausdrucksweise des Codebefehl "Uno:Paste"?

Guter Hinweis, dass der Dialog nicht zu deaktivieren ist ;)
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von balu »

Hallo
mehrere Schaltflächen mit Makros belegt habe, die nach Ausführung einen bestimmten Inhalt in das Dokument einfügen.
Was für einen Inhalt, und von wo kommt der?

Nun ist mein Problem, dass ab un zu sich der Dialog "Textimport" öffnet. Diesen benötige ich aber gar nicht.
Wenn Du ihn nicht brauchst, dann programmiere dein Makro halt so das er nicht erscheint.

wenn der Code falsch sein sollte, dann müsste doch der Dialog "Textimport" immer erscheinen, sobald der Code durch das Makro durchgeführt wird.
Es kommt hauptsächlich darauf an was Du für einen Inhalt einfügst.

ich möchte nur dass dieser Dialog nicht erscheint, daher ein eigenes Makro für das Deaktivieren...
Wie Stephan schon sagt, deaktivieren geht nicht!
Da Du dich weigerst hier eine Datei anzuhängen, sage ich es jetzt mal ganz einfach. Wir können dir nicht über die Schulter schauen um zu sehen was Du da programmiert hast und was für Daten Du von wo Einfügst. Und deshalb behaupte ich jetzt das Du die Sache Falsch angehst. Denn mit deaktivieren ist ja nicht, aber wenn Du richtig programmieren würdest dann kannst Du den dementsprechenden Dialog auch umgehen. Um ihn aber zu umgehen müssen wir ja schließlich genaueres darüber wissen was Du da machst, bezüglich Daten einfügen. Man kann auf verschiedene Arten und Weisen Daten einfügen, und je nachdem um was für Daten es sich handelt, und von wo diese kommen, muss das alles dementsprechend anders programmiert werden. Es gibt keine Pauschale Antwort darauf wie was programmiert werden kann damit kein Fenster auf poppt. Also her mit deiner Datei, ansonsten wird 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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Stephan »

Ouagadougou hat geschrieben: Mo, 06.02.2017 12:15 wie müsste man
Ein ganz gewöhnliches .uno:paste per Dispatcher:
abändern, damit der Dialog "Textimport" nicht mehr hochkommt?
keine Ahnung wie das abzuändern ist bzw. es geht nicht das abzuändern
Liegt es einfach in der Ausdrucksweise des Codebefehl "Uno:Paste"?
Welcher Ausdrucksweise, es handelt sich um einen sog. Dispatch-Befehl der so ist wie er ist.

Im Übrigen, wozu soll es gut sein jetzt über ein Beispiel zu diskutieren, das ich gegeben hatte? Wenn überhaupt müssten wir über Deinen Code sprechen um zu einer Lösung Deines Problems zu finden.



Gruß
Stephan
Ouagadougou
**
Beiträge: 27
Registriert: Mi, 01.02.2017 11:13

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Ouagadougou »

Hallo,

ich habe mehrere Sachen versucht und nichts hat gefruchtet.
Hier ein Auszug aus dem Code:

Code: Alles auswählen

sub Neuer_Eintrag
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "Tabelle1.$A$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "Tabelle2.$A$3"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "A"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = false
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4

dispatcher.executeDispatch(document, ".uno:Paste", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 1

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
Der Vollständigkeitshalber hänge ich auch noch eine Beispieldatei an.

Liebe Grüße
Dateianhänge
Beispieldatei.ods
Makro "Neuer_Eintrag" ist relevant
(13.42 KiB) 110-mal heruntergeladen
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von balu »

Der Vollständigkeitshalber hänge ich auch noch eine Beispieldatei an.
Die natürlich vollkommen Sinnlos ist, da in der Datei überhaupt kein Makro vorhanden ist. Wenn Du schon eine Datei mit Makro weitergeben willst/musst, dann sorge auch dafür das das Makro IN DER DATEI gespeichert ist, und nicht in *[Meine Makros]-Standard*.

Da ich aber schon an Hand deines hier geposten Codeausschnitt sehe das Du mit aufgezeichneten Makros arbeitest, sage ich dir das Du damit nicht sehr weit kommen wirst. Dir bleibt nix anderes übrig als dich selber intensiv mit der richtigen Makroprogammierung zu befassen. Nützliche Hilfe und Infos dazu findest Du z.B. bei Dannenhöfer und auch in der deutschen Version von Andrew Pitonyak. Und wenn Du genau weißt wonach Du suchen willst, wie z.B. Daten kopieren, dann findest Du auch sehr viel dazu hier im Forum.

Und wenn man dich dazu auffordert zu Erklären von wo Daten eingefügt werden, dann gehe bitte auch darauf ein, anstatt das zu übergehen. Und außerdem ist es sehr hilfreich, wenn Du auch erklärst bei welcher Situation ein Problem auftritt, also wie Du vorgegangen bist das es zu einem Problem kommt. Du brauchst Hilfe, also musst DU so viele Infos wie nur möglich geben.



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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textimport deaktivieren mit Hilfe eines Makros

Beitrag von Stephan »

Hier ein Auszug aus dem Code:
Was bitte soll uns das sagen? Das das Dein Code IST oder das das EIN AUSZUG des Codes ist (in der angedeuteten Betonung)?

Eine Antwort auf den Code ist in jedem Falle eindeutig möglich:

da dieser Code folgende Passage enthält:

Code: Alles auswählen

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "Tabelle1.$A$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
also innerhalb eines Tabellendokumentes ein Zellinhalt kopiert wird, halte ich es für komplett unmöglich das der von Dir benannte Dialog erscheint. Mithin ist anhand dieses Code nichts darüber zu sagen woher Dein beschriebenes Problem mit dem erscheinenden Dialog resultiert.


Gruß
Stephan
Antworten