Clipboard / automatische Sonderzeichen durch Excel

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 02:34

Servus Gemeinde,

regelmäßig habe ich Daten aus Excel in alle möglichen anderen Anwendungen zu kopieren. In Teilen auch umfangreiche Textpassagen aus einer einzigen Zelle. Sobald diese Texte (zum Beispiel aktiv gesetzte (Strg+Enter)) Absätze als Formatierung beinhalten, übernimmt Clipbord nicht nur den Text, sondern der Text wird durch ^v immer auch (automatisch) in Anführungszeichen gesetzt. Für Clipboard markiere ich nicht extra den Zellinhalt (also den Text) sondern Bezug für die Übenahme nach Clipboard ist die Zelle (ich hoffe nachvollziehbar :oops:). Hat jemand eine Idee, wie ich bei der Übernahme in Clipboard zwar die Formatierung, aber nicht diese lästigen Anführungszeichen übernehme?
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 03:50

Moin!
Für Clipboard markiere ich nicht extra den Zellinhalt (also den Text) sondern Bezug für die Übenahme nach Clipboard ist die Zelle (ich hoffe nachvollziehbar :oops:).
Nicht wirklich! ;)
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:00

... ich befinde mich auf einer Zelle im Datenblatt und lasse Clipboard damit die ganze Zelle kopieren

salopp ausgedrückt: ich mache auf der Zelle keinen Doppelklick und markiere dann erst noch den Text
Last edited by vltier on 24 Nov 2017, 04:12, edited 1 time in total.
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:05

Wie kommt der Text ins Clipboard? Strg+c?
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:11

Verstehe ich das richtig, Du willst in die Verarbeitung zwischen Strg+c und Strg+v für beliebige Fenster eingreifen?
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:14

ja, ich fühle mich verstanden, mittels WinActivate wechsel ich zwischen beliebigen Fenstern und füge den kopierten Text ein.
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:17

Steuerst Du die komplette Aktion per Skript, inklusive Strg+c?
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:21

ja, zum Beispiel:

Code: Select all

WinActivate, Microsoft Excel - Datenquelle.xlsx
WinWait, Microsoft Excel - Datenquelle.xlsx,
IfWinNotActive, Microsoft Excel - Datenquelle.xlsx, , WinActivate, Microsoft Excel - Datenquelle.xlsx,
WinWaitActive, Microsoft Excel - Datenquelle.xlsx,
Sleep, 300
Send, ^g
Sleep, 300
WinWait, Gehe zu,
IfWinNotActive, Gehe zu, , WinActivate, Gehe zu,
WinWaitActive, Gehe zu,
	Sleep, 300
	Send, b8 ; Zusatz Abteilung
	Sleep, 300
	Send, {Enter}
	Sleep, 300
	Send, ^c
	ClipWait ;Auf Inhalt des Clipboards warten
SetTitleMatchMode, 2
WinActivate, ImperiaEdit
WinWait, ImperiaEdit,
IfWinNotActive, ImperiaEdit
WinWaitActive, ImperiaEdit
	Send, ^a
	Send, ^v
	Sleep, 300
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 04:33

Dann ist das kein Problem. Du hast ja die Kontrolle darüber, wann Du die Excel Daten kopierst. Und Clipboard verhält sich wie eine normale AHK-Variable, deren Inhalt man manipulieren kann. z.B.

Code: Select all

Clipboard := Trim(Clipboard, """")
Sicherer wäre allerdings folgende Abfolge:

Code: Select all

...
Send, {Enter}
Sleep, 300
SavedClipboard := ClipboardAll ; <<<<<
Clipboard := ""  ; <<<<<
Send, ^c
ClipWait ;Auf Inhalt des Clipboards warten
SetTitleMatchMode, 2
WinActivate, ImperiaEdit
WinWait, ImperiaEdit,
IfWinNotActive, ImperiaEdit
WinWaitActive, ImperiaEdit
Send, ^a
Send, ^v
Sleep, 300
Clipboard := SavedClipboard  ; <<<<<
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 05:17

Habe es, wie folgt, an vergleichbarer Stelle eingefügt:

Code: Select all

WinActivate, Microsoft Excel - Datenquelle.xlsx
WinWait, Microsoft Excel - Datenquelle.xlsx,
IfWinNotActive, Microsoft Excel - Datenquelle.xlsx, , WinActivate, Microsoft Excel - Datenquelle.xlsx,
WinWaitActive, Microsoft Excel - Datenquelle.xlsx,
Sleep, 300
Send, ^g
Sleep, 300
WinWait, Gehe zu,
IfWinNotActive, Gehe zu, , WinActivate, Gehe zu,
WinWaitActive, Gehe zu,
	Sleep, 300
	SavedClipboard := ClipboardAll ; <<<<<
	Clipboard := ""  ; <<<<<
	Send, b60 ; Hinweise
	Sleep, 300
	Send, {Enter}
	Sleep, 300
	Send, ^c
	ClipWait ;Auf Inhalt des Clipboards warten
SetTitleMatchMode, 2
WinActivate, ImperiaEdit
WinWait, ImperiaEdit,
IfWinNotActive, ImperiaEdit
WinWaitActive, ImperiaEdit
	Send, ^v
	Sleep, 300
	Clipboard := SavedClipboard  ; <<<<<
	SendInput, {Enter}
	Sleep, 300
...klappt leider nicht, hoffentlich liegt das nicht wieder an meiner alten Version.
Fehlermeldungen bekomme ich bei dieser Variante aber nicht.
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 05:28

Ja, die 1.0.48.05 habe ich vergessen. Da gibt es keine Trim() Funktion (die Du übrigens auch nicht eingebaut hast). Folgendes könnte aber funktionieren:

Code: Select all

	Sleep, 300
	Send, ^c
	ClipWait ;Auf Inhalt des Clipboards warten
	If (SubStr(Clipboard, 1, 1) = """") ; wenn das erste Zeichen ein " ist
		Clipboard := SubStr(Clipboard, 2, -1) ; erstes und letztes Zeichen entfernen
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 05:41

Ich bin vorsichtig begeistert, klappt aber nur das erste Zeichen...
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 05:49

Code: Select all

Var := """ABC"""
MsgBox, %Var%
Var := SubStr(Var, 2, -1)
MsgBox, %Var%
Das klappt bei mir mit 1.0.48.05.

Wenn die kopierten Werte aber immer nur je ein " am Anfang und am Ende haben, sollte das auch tun:

Code: Select all

If (SubStr(Clipboard, 1, 1) = """") ; wenn das erste Zeichen ein " ist
	StringReplace, Clipboard, Clipboard, ", , All ; alle " entfernen
Edit: Var ist natürlich Quatsch gewesen!
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 07:00

Excel fügt manchmal neben "" auch andere Zeichen am Ende ein. Es wäre sinnvoll wenn du hier einmal einfügen kannst was Clipboard enthält:

Code: Select all

;nachdem du in Excel die Daten per Ctrl + C kopiert hast:
^1:: ClipBoard := "[quote]|" . ClipBoard . "|[/quote]"
;und dann per Ctrl + V direkt ins forum kopieren
Recommends AHK Studio
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 07:42

Mit der editierten Variante hat es geklappt, herzlichsten Dank!!!

Nachfolgend der ClipboardAusdruck nach kopierter Excelzelle zur Info:
|TestFuerForum
|
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 08:49

Excel hängt also irgendeine Art von Zeilenwechsel an.

Eine Bitte noch: Wenn Du wieder etwas brauchst, das mit 1.0.48.05 laufen soll, weise bitte ausdrücklich darauf hin. Ich werde das beim nächsten Mal bestimmt schon wieder vergessen haben.
vltier
Posts: 58
Joined: 03 Oct 2016, 10:18

Re: Clipboard / automatische Sonderzeichen durch Excel

24 Nov 2017, 08:56

mach ich auf jeden Fall, nochmals Danke!
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Clipboard / automatische Sonderzeichen durch Excel

26 Nov 2017, 04:45

Wiso verwendest Du nicht die neue AutoHotKey - Version,
indem Du die neueste AutoHotKey.Exe gleichnamig wie das zu startende Skript machst (nur mit der Endung EXE)
und in den gleichen Ordner wie das Skript stellst
und dann die Exe startest?
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
just me
Posts: 9456
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Clipboard / automatische Sonderzeichen durch Excel

26 Nov 2017, 04:50

Manche Arbeitgeber mögen es überhaupt nicht, wenn ihre Mitarbeiter von der IT nicht zugelassene Anwendungen (Exe-Dateien) auf einen Firmenrechner legen. ;)

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 58 guests