Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 couper/copier/coller le texte en tout ou partie dans le TextBox1 (casse méninges 1 du WE)

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite un bon WE

PS pour notre @patricktoulon qui m'a mis au défit de trouver des trucs bien loufoques pour ce WE ... hé bien, j'en ai 2 qui seront, je pense, pas mal, pour toi et pour notre @mapomme lol

Ce fil a été résolu grâce à tous les participants que je remercie encore une fois
Plusieurs solutions fonctionnelles ont été proposées.

J'en ai retenu une qui me convient parfaitement et j'ai 2 questions (casse méninges du WE) et voici la première :
Est-il possible de couper/copier/coller le texte en tout ou partie "directement" dans le TextBox1

J'ai tenté et fait des recherches et jusqu'à maintenant, je n'ai pas trouvé ...
Auriez-vous la solution ?
Un grand merci à toutes et à tous,
Je joins un p'tit fichier test et je continue mes recherches ...
lionel
 

Pièces jointes

  • inputBox_ModifCelluleP_OK2.xlsm
    46.6 KB · Affichages: 7
Dernière édition:
Solution
Vide le Clipboard avec le code :
VB:
Sub Vide()
[A1].Copy [A1]
End Sub
et exécute la macro ComboBox1_Change après avoir retiré On Error Resume Next...
re
Bonjour @job75
Ok vu
ci dessous exactement le même mais avec un vrai menu contextuel dans un module
dans un module standard
VB:
'***********************************************
'Menu contextuel "couper/copier/coller" sur textbox dans userform
'patricktoulon
'menu change sur la base de la version combobox de @job75
'*************************************************************
Option Explicit
Dim ctrl As Object
Sub createmenu(ctl As Object)
    Dim barre, arrbutton, I%: delebar: Set ctrl = ctl
    arrbutton = Array("Couper", "Copier", "Coller")
    Set barre =...

Staple1600

XLDnaute Barbatruc
Bonjour

En affichant l'userform non dénaturé et modalement, je peux copier/coller directement dans le textbo
VB:
Public Function value(Optional mess$ = "Enter new value please", Optional title$ = "", Optional Default$ = "")
    With inPROUTbox
        .Caption = title
        .TextBox1 = Default
        .Show 0
        value = .valeur
    End With
End Function
La procédure UserForm_Activate a été mise en commentaire pour faire mon test.
 

Usine à gaz

XLDnaute Barbatruc
Re-JM,
J'avais qq minutes avant d'entrer en réunion et j'ai testé.
Ne fonctionne pas : au clic droit dans le TextBox = il ne se passe rien.
 

Staple1600

XLDnaute Barbatruc
Re

Lionel
Relire mon message
Où l'on lit le mot test (ce qui veut donc dire que j'ai testé avant de publier... )

Lire aussi la partie où j'indique que j'ai désactivé la procédure Userform_Activate pour faire mon test
 

Staple1600

XLDnaute Barbatruc
Re


[mode pincettes]
Arrête de dire des "stupidités"
[/mode pincettes]
Comment pourrais-je posté le code de Patricktoulon dans ta discussion sans avoir téléchargé le fichier...

Et comment donc n'aurais-je pas remarqué le nom de l'userform (où l'on voit l'humour "caca-boudin" de patrick -> InProutBox) sans ouvrir le fichier ??

La mise en non modal est ici mon test
.Show 0

Et comme je l'ai écrit : j'ai mis en commentaire (donc désactivé) la procédure Userform_Activate

Ce faisant, je peux faire ceci
J'affiche l'userform
Je fais un copier (avec CTRL+C ou Edition/Copier)
Puis en me plaçant dans le TextBox de l'Userform un CTRL+V
La valeur est bien copiée dans le TextBox.

Le test est concluant:
j'ai bien fait un copier/coller directement dans le textbox

Ce qui m'autorisait donc à publier le message#2
 

Usine à gaz

XLDnaute Barbatruc
OK JM je retire lol.
Mais dans le code de la feuille :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("c6:d15")) Is Nothing Then
Application.EnableEvents = False
Dim nom$
nom = inPROUTbox.value("saisir ,Modifier ou Annuler", "Ecrire, modifier et OK ou Annuler", CStr(Target.value))
If nom <> "" Then Target = nom
[a1].Select
Application.EnableEvents = True
Exit Sub
End If
End Sub
Je ne vois pas où mettre le ".Show 0"

J'entre en réunion et je serai indispo environ 1h
 

Staple1600

XLDnaute Barbatruc
Re

Bah, relis attentivement le message#2 !
C'est là que j'ai mis le .Show 0

NB: j'ai testé sur un classeur vierge avec un userform et un textBox
L'userform est affiché en non modal
Je peux faire ma copie dans le textbox mais pas avec le menu contextuel
(comme lors de mon test fonctionnel du message#2)
Avec un raccourci clavier CTRL+V

EDITION: Bonjour job75
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, JM,

Le clic droit dans une TextBox peut permettre de faire beaucoup de choses, exemple ouvrir un UserForm :
VB:
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then UserForm1.Show 0
End Sub
Mais il ne permet pas d'ouvrir un menu contextuel car il n'y en a pas dans une TextBox.

Edit : du moins chez moi.

Il faut se contenter des raccourcis clavier Ctrl+C, Ctrl+X, Ctrl+V.

A+
 

Pièces jointes

  • Classeur(1).xlsm
    20.8 KB · Affichages: 2
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard,
Merci d'être là pour ma demande "loufoque" lol.
Je comprends ce que tu dis mais ça ne me va pas lol

Peut-être y a-t-il une solution autre en gardant les fonctionnalités de mon fichier ?
mais bon si trop compliqué ... on laisse
Et celui qui m'a mis au défit notre @patricktoulon qu'en dit-il ?
lionel
 

patricktoulon

XLDnaute Barbatruc
Bonjour
il te faut mon menu perso pour ca
2 possibilités
soit un menu contextuel commandbar et les sub dans un module (le show de la barre popup au click droit
soit une petite frame visible/non visible au click droit )avec 2 label copier/ coller

utilisation du dataobject (.settext et .gettext)
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…