8.5k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Wunderschönen Guten Morgen!

Leider benötige ich schon wieder die Hilfe der Excel-Experten.

Problemstellung:
Während der Eingabe in einer Zelle soll per Makro ein(e) bestimmte(s) Zeichen/Zeichenkette am bestehenden Text angefügt werden.
Danach soll sich der Cursor hinter den soeben eingefügten
Text positionieren.

Eine Musterdatei habe ich unter
www.file-upload.net/download-1793484/Cursorposition_Muster01.xls.html
abgelegt.

LieGrü

Tom

14 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Tom,

das was Du vor hast, geht nicht. Es kann nicht während einer Eingabe ein Makro ausgeführt werden. Vor einer Eingabe oder erst wenn Die Eingabe beendet ist, kann ein Makro ausgeführt werden.
Für eine eventuelle andere Lösung müsste man mehr von dem Wissen, was Du vorhast. Ist die Anzahl der Zeichen vor dem Zusatztext immer gleich oder kann man an irgend einer Texttrennung ausmachen, an welcher Stelle der Zusatztext eingefügt werden soll?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo Oliver!

Ist wohl schwieriger als von mir gedacht, hm.

Es geht mir darum, dass man während der Eingabe in eine Zelle
EIN Zeichen einfügt und danach der Cursor nach diesem Zeichen steht.
Leider kann nicht genau gesagt werden wieviele Zeichen davor stehen.
Texterkennung = negativ.

Ich habe auch schon versucht die Zelle zu verlassen, das Zeichen einzufügen und danach wieder auf die ursprüngliche Zelle zu wechseln.
Aber wie Du schon erwähnt hast, wurde das Makro nie ausgeführt.

Ciao

Tom
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Tom,

wenn es Dir genügt, das was Du vor hast nach dem Betätigen der Entertaste möglich ist, dann schau Dir mal die Beispieldatei, die ich Dir erstellt und unter http://www.excelbeispiele.de/Beispiele_Supportnet/Beispiel_Tomschi.xls abgelegt habe an.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo Oliver!

Danke für die Mühe!
So ganz bin ich damit nicht zufrieden. --> Leider funktioniert das
Anhängen in einer aktive Zelle nicht. Wird - wie Du schon geschrieben hast - wahrscheinlich auch nicht gehen.
Warum muss das markieren (Stichwort Entertaste) deaktiert werden?

Ich habe nunmehr meine ursprünglichen Code um
Application.SendKeys "{F2}"
erweitert.

Sub Zusatztext_einfügen()
Position = ActiveCell.Address
var01 = ActiveCell.Value
Dim var02 As Variant
var02 = Sheets(1).Range("b1")
Range(Position) = var01 & var02
Application.SendKeys "{F2}"
End Sub

Liefert zwar immer noch nicht das gewünschte Ergebnis aber einen Schritt bin ich schon weiter.

Anmerkung:
Unter www.supportnet.de/t/2249591 hatte ich eine ähnliche Fragestellung, aber hierbei handelte es sich um eine Textbox in einem Userform.
Nunmehr möchte ich eben die selbe Fragestellung für eine Zelle lösen.

Ciao

Tom
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Tom,

in der Beispieldatei, funktioniert es. Ansonsten hätte ich die nicht hochgeladen für Dich.

Die Funktion, dass beim Betätigen der Entertaste die Nachbarzelle aktiviert wird, muss deshalb deaktiviert werden, damit nachdem die Eingabe in der Zelle durch die Entertatse beendet wurde, nicht die Nachbarzelle aktiviert wird, sondern die aktive Zelle die Eingabezelle bleibt. Wenn Du dann in der Beispieldatei auf den Button klickst, wird Dir der Text aus Zelle A1 angehängt und der Cursor befindet sich an der letzten Stelle und Du kannst sofort weiterschreiben.

Was funktioniert daran nun bei Dir nicht?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Mahlzeit!

Sorry, war mein Fehler.
Habe wohl Deine Beschreibung in der Datei nicht richtig gelesen.
--> schreiben --> Enter --> Button = Cursor --> weiter schreiben

Ich war felsenfest davon überzeugt, Du hättest doch eine 100%ige Lösung für mich und ich könnte gleich während der Eingabe den Button zum Einfügen des Textes drücken.
Das war wohl ein Missverständnis meinerseits.

In Deiner Lösung muss ich jedoch noch
Private Sub Workbook_Activate()
und
Private Sub Workbook_Deactivate()
mit
Application.MoveAfterReturn = True
bzw.
Application.MoveAfterReturn = False
einbauen.
Ansonsten fuktioniert die Entertaste beim Wechseln in ein anderes
Blatt nicht.

Ich habe Deiner Antwort 1 "Als gute Antwort bewerten" gewertet.

Entschuldige nochmals mein "Drüberlesen".

Tom
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Tom,

wie bereits geschrieben, ein Makro während einer Eingabe ausführen zu lassen geht nicht, weil es dafür kein Ereignis gibt, dass, anders als z.B. bei TextBoxen, ausgelöst wird, über dass dann ein Makro gestartet werden kann. Es gibt dort halt nur das Change()- oder Selection_Change()-Ereignis, das mit der Zelle in Zusammenhang gebracht werden kann. Aber das eine ist eben vor und das andere Ereignis nach der Eingabe, aber nicht während der Eingabe.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo Oliver!

...
Aber das eine ist eben vor und das andere Ereignis nach der Eingabe, aber nicht während der Eingabe.


Schade, da kann man halt nichts machen.
Vielleicht geht es ja in Office2010 (oder später).

DANKE nochmals für Deine Unterstützung!

Tom
0 Punkte
Beantwortet von
Hallo Tom,
vielleicht hilft dir die Musterdatei weiter.

Daten eingeben und dann die Pfeiltaste nach rechts drücken.

Gruß
fedjo
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hi fedjo!

Sieht toll aus.
Kann man den Code so verändern, dass z. B.
Der "Einfügtext" auch mehrmals automatisiert
eingegeben wird?

Ein Problem besteht noch.
Leider habe ich am WE gesehen, dass es unterschiedliche
"Textbausteine" geben kann.
Wollte ursprünglich morgen mein "Gesamtkunstwerk" posten,
aber jetzt ist wieder etwas dazwischen gekommen.
Wird sich für morgen nicht ausgehen. :-(

Thanx!

Tom
...