Bonjour,
Peut-on autoriser un click gauche et droit de la souris dans une TextBox pour sélectionner et copier son contenu.
Par quel moyen ?
Par avance merci
Bien cordialement,
Bonjour,
Peut-on autoriser un click gauche et droit de la souris dans une TextBox pour sélectionner et copier son contenu.
Par quel moyen ?
Par avance merci
Bien cordialement,
Bonjour,
Comment celà, un "clic gauche et droit" ?
Les deux ensemble ?
Et qu'entends-tu par "autoriser" ?
Un click gauche (traditionnel) se constate si la propriété enabled = True par le déclenchement de l'évènement Click
Un click est par ailleurs un MouseDown suivi d'un MouseUp
L'évènement MouseUp permet de différencier le bouton de la souris.
Te reste plus qu'à utiliser tout celà (c'est facile...)![]()
Bonsoir ucfoutu,
Et bien voilà:
Je me suis peut-être mal expliqué !
Tu viens de me répondre, et, si je veux avec ma souris:
je peux bien à l'aide du click gauche surligné ton message et à l'aide du bouton droit copier le texte et éventuellement le recoller ailleurs.
Dans un TextBox on ne peut pas .
d'ou ma question; comment faire ?
Merci
En t'intéressant à Selstart et à SelLength (dans ton aide en ligne, sur TA machine)
Lis celà, essaye... et reviens en nous exposant ce que tu n'aurais pas pu réaliser après cette lecture...
Re bonjour,
Et bien non, je n'y arrive pas.
Je suis désolé, j'ai réussi à fabriquer ce bout de code...Mais ma textbox n'accepte toujours pas le click droit pour copier.
Merci pour votre aide .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim MyData As DataObject Private Sub TextBox3_ClickRight(ByVal Cancel As MSForms.ReturnBoolean) Dim MyData As DataObject Set MyData = New DataObject MyData.GetFromClipboard TextBox3.SelStart = 0 TextBox3.SelLength = 0 End Sub
Bonsoir
Pour moi, il faut y aller par étapes.
1. Créer un menu contextuel avec les boutons souhaités via une procédure dans un module standard
2. Créer les procédures pour copier et coller, toujours dans un module standard
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub CreerContextuel() Dim Barre As CommandBar Dim Controle As CommandBarControl Set Barre = CommandBars.Add(Name:="Contexte", Position:=msoBarPopup, temporary:=True) Set Controle = Barre.Controls.Add With Controle .Caption = "Copier" .OnAction = "mnCopier" End With Set Controle = Barre.Controls.Add With Controle .Caption = "Coller" .OnAction = "mnColler" End With Set Controle = Nothing Set Barre = Nothing End Sub
3. Il faut placer dans les évènements MouseUp des contrôles souhaités la procédure suivante. Dans le code que je donne, j'ai deux zones de texte et je place la même procédure pour chaque zone de texte. Cette procédure appelle simplement le menu contextuel créé au point 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub mnCopier() Dim Donnee As New DataObject Donnee.SetText UserForm1.ActiveControl.Value Donnee.PutInClipboard End Sub Sub mnColler() Dim Donnee As New DataObject Donnee.GetFromClipboard UserForm1.ActiveControl.Value = Donnee.GetText End Sub
Attention! Le code de l'étape 2 copie TOUT le contenu du textbox. Il faudra jouer avec SelStart, SelLength pour ne copier (ou remplacer) que la partie sélectionnée du texte...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Select Case Button Case XlMouseButton.xlSecondaryButton CommandBars("Contexte").ShowPopup End Select End Sub Private Sub TextBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Select Case Button Case XlMouseButton.xlSecondaryButton CommandBars("Contexte").ShowPopup End Select End Sub
A toi d'adapter et d'améliorer au besoin. Ceci n'est qu'une piste.
Ok?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager