Problem mit Zwischenablagespeicher (Mehrere Zwischenablagen)  GELÖST

Anwenderaustausch zur PhraseExpress Makroprogrammierung
Post Reply
giraffe
Posts: 10
Joined: 22 Jan 20, 16:21

Problem mit Zwischenablagespeicher (Mehrere Zwischenablagen)

Post by giraffe » 22 Jan 20, 16:43

Hallo,

der Zwischenablagespeicher für mehrere Zwischenablagen funktioniert leider nicht wenn man das in einer Automatik macht.

Beispiel bei einer Excel Tabelle:

Die Automatik soll per Tap in die nächste Spalte springen und diese per strg+c speichern und dann wieder per Tap in die nächste Spalte und diese per strg+c speichern ... usw.

Aktuell sieht das bei mir so aus:
{#setclipboard -variablename In Zwischenablage kopieren}
{#TAB -variablename Tab}
{#setclipboard -variablename In Zwischenablage kopieren}
{#TAB -variablename Tab}
{#setclipboard -variablename In Zwischenablage kopieren}
{#TAB -variablename Tab}
{#setclipboard -variablename In Zwischenablage kopieren}

siehe dazu auch Bild im Anhang.

Leider speichert er in der Automatik die Inhalte der Spalten (mehrere Zwischenablagen) nicht.
Macht man das manuell per Hand, speichert der Zwischenablagespeicher alle Spalten wie gewünscht.

Ich hoffe jemand hat eine Idee, würde sehr helfen.

Vielen Dank.

Grüße
You do not have the required permissions to view the files attached to this post.

Peter Stotz
PhraseExpress Expert
Posts: 914
Joined: 27 Feb 08, 15:07

Post by Peter Stotz » 23 Jan 20, 18:42

@giraffe
Die Aufgabenstellung ist knifflig - hier mein Lösungsvorschlag:

Code: Select all

(* 20200123 • Excel™: Die Zellinhalte eines markierten Excel-Bereichs als Einzelwerte in der Zwischenablage bereitstellen
  STRG+C Zellinhalte der Bereichsmarkierung in die Zwischenablage {#insertclipboard} kopieren
*){#CTRL -chars c}(*
  Bereichsmarkierung für spätere, optionale Ausgabe speichern
*){#settemp -name ##Bereichsmarkierung -content {#trim {#insertclipboard}}{#asc 9}}(*
  Trigger für Trennlinien
*){#settemp -name ##Trennlinie -content {#length {#trim {#insertclipboard}}}}(*
  Zeilenwechsel im aktuellen Zwischenablage-Inhalt durch Tabulatoren ersetzen + einen Tabulator anhängen
*){#setclipboard {#replace {#trim {#insertclipboard}} -oldtext {#asc 13} -newtext {#asc 9}}{#asc 9}}(*
  Trennlinie ˄ –––––––––– ˄ in die Zwischenablage schreiben
*){#check -text {#gettemp ##Trennlinie} -case > 0 -output {#setphrase -autotext -description ˄ –––––––––– ˄ -content {#length {#regexget -text {#insertclipboard} -expr \t -findall -delim }} markierte Zellen -folder ##clpbrd} -else}(*
  Schleifenbeginn: Zellinhalte vereinzeln
*){#loop (*
  Zellinhalt-Einzelwert entnehmen = Zwischenablage-Inhalt bis zum nächsten Tabulator
*){#settemp -name ##Zellinhalt -content {#trim {#substr {#insertclipboard} -from 1 -count {#pos {#insertclipboard} -substr {#asc 9}}}}}(*
  Zellinhalt-Einzelwert in die Zwischenablage schreiben
*){#setphrase -autotext -description {#gettemp ##Zellinhalt} -content {#gettemp ##Zellinhalt} -folder ##clpbrd}(*
  Zwischenablage-Inhalt kürzen
*){#setclipboard {#substr {#insertclipboard} -from {#calc 1+{#pos {#insertclipboard} -substr {#asc 9}} -round 0} -count}}(*
  Schleifenende
*) -count {#length {#regexget -text {#insertclipboard} -expr \t -findall -delim }}}(*
  Trennlinie ˅ –––––––––– ˅ in die Zwischenablage schreiben
*){#check -text {#gettemp ##Trennlinie} -case > 0 -output {#setphrase -autotext -description ˅ –––––––––– ˅ -content {#gettemp ##Bereichsmarkierung} -folder ##clpbrd} -else}
Verwendung des Makroprogramms:
Den gewünschten Zellbereich in der Excel-Umgebung markieren und das Makroprogramm ausführen (z.B. mit der zugeordneten Tastenkombination).

Notwendige Voraussetzung für das Funktionieren des Makroprogrammes:
Die Zwischenablage benötigt einen Autotext - ich verwende im Beispiel ##clpbrd

Empfehlungen:
1. Ordnen Sie dem Makroprogramm eine Tastenkombination zu
2. Stellen Sie die Zwischenablage als Desktopmenü bereit
3. Nutzen Sie die Option des Rechtsklick-Menüs 'Zwischenablagespeicher leeren', um die
Zwischenablage zu bereinigen

Peter Stotz
Windows 10 - PhraseExpress v14.0.177

giraffe
Posts: 10
Joined: 22 Jan 20, 16:21

Post by giraffe » 28 Jan 20, 10:34

Hallo Peter Stotz,

erst mal vielen dank für die schnelle Rückmeldung und die Mühe. Dafür bin ich wirklich sehr dankbar.

Leider ist es mir nicht möglich die Zellen vorher zu markieren (interne Sache, es ist bei meinem Vorhaben tatsächlich ein muss per autotab in entsprechende Zelle zu springen).

Gibt es keine Möglichkeit das etwas einfacher zu gestalten? Ziel: Der Mehrfachzwischenablagespeicher müsste bei einem Makro funktionieren.

Vom PhraseExpress team habe ich folgenden Tip bekommen:

"Der Zwischenablagespeicher erfasst während der Ausgabe eines Textbaustein keine Zwischenablageinhalte, da PhraseExpress die Zwischenablage zur Ausgabe des Textbaustein verwendet."

Work around: Sie könnten die Zellen entweder in temporäre Variablen oder als Textbausteine speichern."

Ich freue mich auf ihre Rückmeldung.

Grüße

die giraffe

giraffe
Posts: 10
Joined: 22 Jan 20, 16:21

Post by giraffe » 03 Mar 20, 09:32

Hallo,

niemand ne idee?

Grüße

die giraffe

Flogisch
Posts: 16
Joined: 19 Jul 17, 06:59

Post by Flogisch » 03 Mar 20, 12:19

Hey,
mach doch einfach das was dir der Support gesagt hat. Speicher die einzelnen Zeilen in eine Variabel. Anschließend kannst du doch diese ganz einfach abrufen dann per Autotext oder einfach in einem Hinweistext. Ist zwar umständlicher aber die einzig gute Lösung denke ich.

giraffe
Posts: 10
Joined: 22 Jan 20, 16:21

Post by giraffe » 04 Mar 20, 12:15

Hallo Flogisch,

Vielen Dank für die schnelle Rückmeldung.

Das habe ich bereits versucht.
Aus irgend einem Grund funktioniert die Funktion "in Zwischenablage kopieren" nicht bei meiner Variable.

Siehe im Anhang wie ich es programmiert habe:
screenshot_2020-03-04.JPG
das ist jetzt erst mal nur für einen wert als Beispiel.

ne idee, was ich falsch mache?

Liebe Grüße,

die Giraffe
You do not have the required permissions to view the files attached to this post.

Flogisch
Posts: 16
Joined: 19 Jul 17, 06:59

Post by Flogisch » 06 Mar 20, 16:39

Hey Giraffe,

ich habe es jetzt nicht getestet, jedoch sollte es in dieser Richtung funktionieren die einzelnen Variablen zu speichern:

Code: Select all

{#clipboard -copy}{#settemp -name var-1 -content {#insertclipboard}}{#TAB}{#clipboard -copy}{#settemp -name var-2 -content {#insertclipboard}}{#TAB}{#clipboard -copy}{#settemp -name var-3 -content {#insertclipboard}}{#TAB}{#clipboard -copy}{#settemp -name var-4 -content {#insertclipboard}}{#TAB}{#clipboard -copy}{#settemp -name var-4 -content {#insertclipboard}}
Liebe grüße

giraffe
Posts: 10
Joined: 22 Jan 20, 16:21

Post by giraffe » 11 Mar 20, 15:33

Hallo Flogisch,

genial! Es funktioniert. Du bist der beste, muss man einfach mal sagen.

Auf ewig dankbar!

die Giraffe

Post Reply