Vorhandenen text ergänzen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Sven

Vorhandenen text ergänzen

07 Aug 2018, 12:28

Hallo alle zusammen, ich benutze seit einiger Zeit AHK um mir allgemein eingaben zu erleichtern. Also nur laienhaft.
nun mochte ich gern einen vorhandenen text bzw. zahlen ergänzen.

Das ganze passiert in einer Exceltabell, folgendes soll passieren...

wenn ich die Zelle mit dem vorhandenen Text anklicke (zum bearbeiten/hineinschreiben)
Vorhandener Text "0,00*0,00"
Dieser soll bei Eingabe einer bestimmten Zeicheneingabe, z.B. "()" an erster stelle "(" schreiben vor dem "*" ein +2 und am ende ")*"danach möchte ich dann selbst noch einen Zahlenwert eintragen.

freue mich wenn mir jemand dabei helfen kann, da es mir das leben um einiges erleichtern wird.
Liebe Grüße und viel spaß beim schwitzen ;)
Sven.
Guest

Re: Vorhandenen text ergänzen  Topic is solved

07 Aug 2018, 14:00

Vorläufig habe ich mir jetzt einmal so weitergeholfen...

Code: Select all

^SC029:: 	
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {Left}
	SendInput, {(}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {+}
	SendInput, {2}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {Right}
	SendInput, {)}
	SendInput, {*}
Return
Wie es manchmal ist, findet man erst nach dem fragen die Antwort.
Reicht erst einmal, da ich selten zahlen über 9,99 haben werde, das kann man dann auch mal ohne AHK mache. Oder gibt es dafür eine Option ?

Die Profis unter euch werden wahrscheinlich denken :roll: villeicht gib´s ja noch einen anderen weg.
Wäre trotzdem an Antworten interessiert, da mich das ja auch wieder ein stück weiterbringt, AHK besser kennen zulernen.
User avatar
LuckyJoe
Posts: 340
Joined: 02 Oct 2013, 09:52

Re: Vorhandenen text ergänzen

08 Aug 2018, 16:04

Hallo Sven,

willkommen im Forum; natürlich gibt es immer viele Wege, die nach Rom führen, aber taste dich am besten langsam vor. Dein Script funktioniert ja schon mal, man kann es etwas kürzen:

Code: Select all

^SC029::
	SendInput, {Home}
	SendInput, (
	SendInput, {Right 4}
	SendInput, {+}
	SendInput, 2
	SendInput, {End}
	SendInput, )
	SendInput, *
Return
Im Detail:
Statt 9x SendInput, {Left} aufzurufen, kannst du mit "POS1" ({Home}) gleich an den Anfang deiner Zellberabeitung springen. Das hat zudem den Vorteil, dass du auch Zahlen über "9,99" überspringen kannst.

"Normale" Zeichen musst du nicht in geschweifte Klammern setzen, so dass SendInput, ( reicht.

Statt 4x SendInput, {Right} zu schreiben, geht es einfacher mit SendInput, {Right 4}.

Bei SendInput, {+} muss das "+" in geschweifte Klammern, da sonst die nächste Eingabe mit "Shift" gesendet wird.

Bei SendInput, 2 kannst du die geschweiften Klammern wieder weglassen.

Statt 5x SendInput, {Right} zu schreiben, kannst du jetzt wieder mit SendInput, {End} unmittelbar an das Ende ddeiner Zellebearbeitung springen.

Die beiden letzten Zeilen schenke ich mir.

Setzt du vor dem ersten SendInput, {Home} noch die Zeile SendInput, {F2}, dann sparst du dir nach dem Klick auf die Zelle den nächsten Klick in die Bearbeitungszeile - wieder etwas gespart ;-)

Du kannst natürlich noch flexibler werden, wenn du den Zellwert beispielsweise in die Zwischenablage einliest (schau mal in der Hilfe nach "Clipboard") und dort nach der Position des "*" suchst. Dann kannst du die Zwischenablage oder einzelne Zeichen darin ersetzen (Hilfe: "Replace").

Letztendlich gibt es auch die Möglichkeit, Excel über das "ComObjActive" direkt anzusprechen, Zellwerte auszulesen, zu bearbeiten und zurückzuschreiben. ... Und dann gibt es noch ... nein, das sollte für's erste reichen.

Viel Erfolg!
Viele Grüße - Lucky Joe.
Herzliche Grüße aus dem Rheinland
Lucky Joe

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 19 guests