mreske
Goto Top

Text aus Zwischenablage in Userform, wenn diese den Fokus erhält

Hallo zusammen,

ich möchte Text, den ich z.B. von einer Website kopiere,
automatisch in eine Textbox einer Userform schreiben,
sobald ich wieder auf die Userform (mit Alt+Tab) umschalte?

Das Kopieren und Einfügen klappt (siehe Code unten).
Aber wie kann ich die Sub aufrufen, sobald ich auf die Userform gehe, ohne extra dazu eine Schaltfläche zu klicken?

Sub CopyPaste ()
Dim objData As New DataObject
Dim varVar As Variant
   
objData.GetFromClipboard
varVar = objData.GetText
   
Userform1.TextBox1 = varVar = varVar
   
Set objData = Nothing
End Sub

Viele Grüße

Content-ID: 665058

Url: https://administrator.de/contentid/665058

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

147669
147669 24.03.2021, aktualisiert am 25.03.2021 um 11:33:34 Uhr
Goto Top
Das entsprechende GotFocus Event der Textbox her nehmen
https://docs.microsoft.com/de-de/office/vba/api/access.textbox.gotfocus
Private Sub Textbox1_GotFocus() 
     'here set clipboard data to control  
End Sub 
Man beachte das die Event-Prozedur im Codeabschnitt der Form platziert wird.

Gruß SK

Userform1.TextBox1 = varVar = varVar
Na wenn das klappt fress ich nen Besen, etwas zu viel des guten 🙃

Btw. warum liest du nicht direkt via Code den gwwünschten Textinhalt aus dem Browser, das wäre auch problemlos machbar face-wink
mreske
mreske 27.03.2021 aktualisiert um 20:45:45 Uhr
Goto Top
Hi, danke erst mal für den TIpp.

Vielleicht erkläre ich mal kurz, was ich genau vorhatte.

a.) Also, ich habe die Userform1 geöffnet. Darin befinden sich 3 Textboxen:
txt_Bestellnummer
txt_Belegdatum
txt_Dokumentart

b.) nun schalte ich auf ein Dokumenenmanagementsystem (DocuWare) um

c.) dort markiere ich im geöffneten Dokument
(z.B. eine Auftragsbestätigung zur Bestellung A-2021-123 )
einen bestimmten Text und kopiere ihn mit Strg+c in den Zwischenspeicher
Das kann z.B. die Bestellnummer, die Dokumentart (z.B. "Aufgragsbestätigung"), oder ein Datum, sein

d.) sobald ich jetzt mit Tab-Umschalt wieder auf die Userform1 gehe,
möchte ich per Makro den Zwischenspeicher wie folgt abfragen:
Wenn der Text im Zwischenspeicher
- mit "A-" beginnt und auf 10 Zeichen besteht, dann füge den Text in die txt_Bestellnummer ein
- ein Datum ist, dann füge den Text in die txt_Datum ein
- sonst füge den Text in txt_Dokumentart ein

Leider funktioniert GotFucus in der Excel Userform nicht.

Am besten wäre es natürlich, wenn das Makro die Textboxen füllt, ohne dass man auf die Userform umschaltet,
also sobald sich die Zwischenablage ändert. Aber das wir wohl überhaupt nicht möglich sein.

Viele Grüße und ein schönes Wochenende noch