online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Tomschi vom 28.07.2021, 06:57 Options

VBA: Cursorposition in Zelle

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
http://www.file-upload.net/download-1793484/Cursorposition_Muster01...
abgelegt.

LieGrü

Tom


Antwort schreiben

Antwort 1 von coros vom 28.07.2021, 07:43 Options

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
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Tomschi vom 28.07.2021, 09:06 Options

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

Antwort 3 von coros vom 28.07.2021, 09:51 Options

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
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Tomschi vom 28.07.2021, 10:15 Options

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 http://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

Antwort 5 von coros vom 28.07.2021, 10:52 Options

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
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von Tomschi vom 28.07.2021, 12:31 Options

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

Antwort 7 von coros vom 28.07.2021, 12:44 Options

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
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von Tomschi vom 28.07.2021, 15:23 Options

Hallo Oliver!

Zitat:
...
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

Antwort 9 von fedjo vom 31.07.2021, 19:55 Options

Hallo Tom,
vielleicht hilft dir die Musterdatei weiter.

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

Gruß
fedjo

Antwort 10 von Tomschi vom 03.08.2021, 14:08 Options

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

Antwort 11 von fedjo vom 03.08.2021, 16:51 Options

Hallo Tom,
Zitat:
Kann man den Code so verändern, dass z. B.
Der "Einfügtext" auch mehrmals automatisiert
eingegeben wird?


So ganz verstehe ich die Frage nicht.
Soll der gleiche Einfügtext mehrmals hintereinander eingefügt werden? Oder gibt es verschiedene Einfügtexte die gleichzeitig eingefügt werden sollen?

Gruß
fedjo

Antwort 12 von Tomschi vom 04.08.2021, 07:10 Options

Guten Morgen fedjo!

Sorry, für meine unklare Ausdrucksweise.

*) Es kann vorkommen, dass ein und der selbe Text mehrmals eingefügt werden muss.
fiktives Beispiel:
123-TEXT01-456-TEXT01-789
*) In der Regel kommen mehrere verschiedene "Einfügetexte" zu tragen.
fiktives Beispiel:
123-TEXT01-456-TEXT02-789-TEXT03

Mehrmals hintereinander ist eher unwahrscheinlich.
Eventuell kommt es aber zu folger Situation.
fiktives Beispiel:
123-TEXT01-TEXT02-456-TEXT03 bzw.
123-TEXT01-TEXT02-TEXT03-456

Ciao

Tom

Antwort 13 von fedjo vom 04.08.2021, 16:51 Options

Hallo Tom,
habe die Tabelle ein wenig erweitert,
mit den SendKeys "{Left/Right/Up}" für die Einfügtexte.
Es ist auch möglich die Einfügtexte öfter hintereinander einzugeben.

Gruß
fedjo


Muster

Antwort 14 von Tomschi vom 05.08.2021, 07:05 Options

Wunderschönen Guten Morgen fedjo!

Danke für Deine zahlreichen Tipps!
Leider immer noch nicht ganz das, was meiner Anforderung
entspricht. Es können mehr als drei "Einfügetexte" vorkommen.
Daher werde ich mit den Cursortasten so nicht auskommen.
Trotzem bin ich Dir für Deinen Vorschlag sehr dankbar.

Im Moment sind es bereits zehn und diese können sich im Laufe der Zeit noch erhöhen.

Ich habe nunmehr mein "Gesamtkunstwerk" fast fertig und noch eine Frage zum Thema "Userform: Zufallsgenerator" dazu.
siehe http://www.supportnet.de/t/2253615
Dort sieht man die von mir angesprochenen zehn "Einfügetexte".
Vielleicht ist es so ein wenig klarer.

Ciao

Tom

Ähnliche Themen

VBA - erste leere Zelle in einem Bereich
Tomschi  30.01.2008 - 51 Hits - 6 Antworten

Formel per VBA in Zelle schreiben
Kauz  17.04.2008 - 82 Hits - 2 Antworten

VBA Excel in unterste Zelle springen
Winniki  12.05.2008 - 75 Hits - 1 Antwort

VBA Inhalt aus Zelle in nächste freie zelle übertragen
bokap1975  22.07.2008 - 91 Hits - 6 Antworten

VBA - Text von Zelle B2 in Zelle A6 kopieren und fortlaufend
pedrotornado  17.01.2009 - 207 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026