Microsoft 365 Copier le contenu d'une TextBox vers le Presse-Papier

SCorbeil

XLDnaute Nouveau
Bonjour à tous,

Nous utilisons un UserForm afin de compléter les informations d'une transaction. La compilation des données s'effectue sous EXCEL.

Une des TextBox du formulaire génère un code interne qui est concaténé à partir de 4 informations du formulaire. Nous souhaitons utiliser le contenu de cette TextBox en la copiant vers le presse-papier afin d'avoir la possibilité de l'utiliser antérieurement dans une autre application.

Existe t'il un moyen de coder en VBA la copie du contenu de la TextBox vers le Presse-Papier?

Je suis possiblement si près de l'arbre que j'ai de la difficulté à percevoir la forêt...

Merci de votre aide.
 
Solution
Merci Job75!

Voici le code qui a été utilisé et qui est fonctionnel.
VB:
Private Sub CmdCopier_Click()

With TxtCodeFEU
        .SelStart = 0:  .SelLength = .TextLength: .Copy
End With

MsgBox "Veuillez coller immédiatement le code interne pour le FEU dans votre onglet de l'application dessins."

End Sub

GALOUGALOU

XLDnaute Accro
bonjour scorbeil bonjour le forum
le sujet a été abordé dans ce lien
cordialement
galougalou
 

patricktoulon

XLDnaute Barbatruc
bonjour
si l'userform parent du textbox est actif (tu est dessus )
tu simplifie la demarche avec par exemple dans l'evenement change du textbox
VB:
Private Sub TextBox1_Change()
    With TextBox1
        x = .SelStart
        .SelStart = 0: .SelLength = Len(.Value)
        With CreateObject("wscript.shell"): .SendKeys ("^c"): End With
        DoEvents
        .SelStart = x 'Len(.Value)
    End With
End Sub
voila a chaque fois que tu va changer quelque chose dans ce textbox le presse papier aura la new valeur
 

patricktoulon

XLDnaute Barbatruc
re
en faisant une recherche j'ai moi meme apris aujourd'hui

le textbox est affublé d'une méthode "copy"donc sans transition j'opte pour la simplicité
donc la meme chose sans wscript.shell et sendkeys

VB:
Private Sub TextBox1_Change()
    With TextBox1
        x = .SelStart
        .SelStart = 0:  .SelLength = Len(.value)
        .Copy
        .SelStart = x
    End With
End Sub
voila c'est pareil même effet
 

job75

XLDnaute Barbatruc
Bonjour SCorbeil, GALOGALOU, patricktoulon,

Autre solution avec le clic droit dans la TextBox :
VB:
Private Sub TextBox1_MouseUp(ByVal Button%, ByVal Shift%, ByVal X!, ByVal Y!)
If Button = 2 Then With TextBox1: .SelStart = 0: .SelLength = Len(.Text): .Copy: End With
End Sub
A+
 

SCorbeil

XLDnaute Nouveau
re
en faisant une recherche j'ai moi meme apris aujourd'hui

le textbox est affublé d'une méthode "copy"donc sans transition j'opte pour la simplicité
donc la meme chose sans wscript.shell et sendkeys

VB:
Private Sub TextBox1_Change()
    With TextBox1
        x = .SelStart
        .SelStart = 0:  .SelLength = Len(.value)
        .Copy
        .SelStart = x
    End With
End Sub
voila c'est pareil même effet

Bonjour patricktoulon,

Premièrement, merci pour ton suivi rapide.

Je vais tester sans hésitation.

Depuis le post, je me questionnais sur la possibilité de traiter le code à partir d'un commandButton "COPIER". Je crois que cela sera plus cognitif pour les utilisateurs.

La textBox porte comme intitulé "TxtCodeFEU".

Y'a t'il des changements dans le code initial?

Merci.
 

SCorbeil

XLDnaute Nouveau
Merci Job75!

Voici le code qui a été utilisé et qui est fonctionnel.
VB:
Private Sub CmdCopier_Click()

With TxtCodeFEU
        .SelStart = 0:  .SelLength = .TextLength: .Copy
End With

MsgBox "Veuillez coller immédiatement le code interne pour le FEU dans votre onglet de l'application dessins."

End Sub
 

Discussions similaires