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 :p

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
1648281398989.png

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 =...

patricktoulon

XLDnaute Barbatruc
je confirme les dires de @Eric C
le dock est toujours dans le common

les mise a jours successive ne nettoient pas le registre
par exemple j'ai eu 2007 ensuite 365 (pour tester puis bye bye!!) et 2013
j'ai donc les 3 numéro de version vb6.0 vb7.0 vb7.1
avec mon reg au pire on a un numéro qui sert a rien
car a l’installation de 2013 après 365 la cle 7.0 c'est vidée complètement et je suis en 7.1
donc aucuns soucis avec ma méthode et ce n'est absolument pas dangereux
 

patricktoulon

XLDnaute Barbatruc
re
@job75
dans quelle eventualité la gestion d'erreur est nécessaire ?????
je viens de tester en vidant le clip et cliquant direct coller
je n'ai pas d'erreur
VB:
Private Sub menu_Change()
    Dim n%, o As Object
    n = Menu.ListIndex
    If n = -1 Then Exit Sub
    Menu = ""
    With ctrl
        .SetFocus
        Set o = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")    ' DataObject en late binding
        o.SetText "": o.PutInClipboard 'je fait expres pour l'exemple de vider le clip
        If n < 2 Then o.SetText .SelText: o.PutInClipboard    'copier
        If n = 0 Then .SelText = ""    'couper
        If n = 2 Then
            'On Error Resume Next' dans quelle eventualité cette gestion d'erreur est necessaire ???????????????
            o.GetFromClipboard: .SelText = o.GetText    'coller
        End If
    End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

patricktoulon
Je parle de la méthode de manière générale
(C'est pourtant clair ce que j'écris et j'ai bien précisé que je parlais de la méthode, pas de patricktoulon ;))
Conseiller à un utilisateur "newbie" de fusionner un fichier *.reg les yeux fermés est potentiellement dangereux.
(et patricktoulon ou Staple ou la princesse Zelda n'ont rien à voir là dedans)
Je parle uniquement de la méthode.
On trouve sur plein de sites, N fichiers *.reg pour régler tel ou tel problème (pas forcément lié à Excel)
Donc laisser entendre qu'il n'y a juste qu'à télécharger un fichier *.reg et double-cliquez dessus dans se poser de questions, c'est cela ce que j'appelle une méthode dangereuse !

Un utilisateur expérimenté prendre le temps d'ouvrir le *.reg dans le bloc-notes pour voir ce que va faire le fichier *.reg
Puis fera un export de la branche avant de fusionner le fichier *.reg
 

patricktoulon

XLDnaute Barbatruc
oui j'ai compris
en même temps si un débutant ne sais pas cliquer 3 fois "oui" sur les messages qui lui arrivent quand on lui dit que c'est sur ben mon ami on est pas arrivé
;)
autant je suis d'accords avec toi que la recherche de l'arborescence dans regedit peut effrayante pour un débutant qui a peur de faire une sottise mais un reg prêt a être exécuté c'est simple

c'est quoi le code de ton vbs de nettoyage ?
 

patricktoulon

XLDnaute Barbatruc
@job75 j'aurais plutot fait ça pour "Coller"
VB:
 Dim n%, o As Object
    n = Menu.ListIndex
    If n = -1 Then Exit Sub
    Menu = ""
    With ctrl
        .SetFocus
        Set o = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")    ' DataObject en late binding
         If n < 2 Then o.SetText .SelText: o.PutInClipboard    'copier
        If n = 0 Then .SelText = ""    'couper
        If n = 2 Then
            'On Error Resume Next' dans quelle eventualité cette gestion d'erreur est necessaire ???????????????
          o.GetFromClipboard: If o.GetText <> "" Then .SelText = o.GetText  'coller
      End If
    End With
sinon ça fait le même effet que "Couper" si le clip est vide
et la gestion d'erreur bye bye!!

perso je préfère de loin cette version avec le clip que les sendkeys
 

Staple1600

XLDnaute Barbatruc
Re

=>Patricktoulon
Je parle pas de cela
[Situation]
Staple a 15 ans, les cheveux longs et un PC flambant neuf (sans contrôle parental)
Staple dort peu la nuit et vadrouille sur le net et tombe sur un site qui lui dit ce fichier *.reg va booster ta connexion internet.
Staple qui fait confiance à son frère humain du web double-clique sur le *.reg
Merdre!
En fait, le *.reg fait tout autre chose
(par exemple ajouter un user avec des droits admin)
Staple ne voit pas d'amélioration mais désormais son PC a intégré un réseau de bots
Mais Staple est content parce qu'il a 15 ans et qu'il fait des trucs chelou dans sa chambre pendant que papa/maman dorment après avoir trimmer pour nourrir leur ado de fils "geek".
[/Fin de situation]
;)

Quant à mon vbs de nettoyage, faudrait que je le retrouve dans mon bordel de sauvegardes.
Mais en cherchant bien, on doit trouver l'équivalent (voir plus puissant) sur le net.
D'ailleurs le prochain nettoyage, je le ferais en PowerShell
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
@job75 j'aurais plutot fait ça pour "Coller"
VB:
 Dim n%, o As Object
    n = Menu.ListIndex
    If n = -1 Then Exit Sub
    Menu = ""
    With ctrl
        .SetFocus
        Set o = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")    ' DataObject en late binding
         If n < 2 Then o.SetText .SelText: o.PutInClipboard    'copier
        If n = 0 Then .SelText = ""    'couper
        If n = 2 Then
            'On Error Resume Next' dans quelle eventualité cette gestion d'erreur est necessaire ???????????????
          o.GetFromClipboard: If o.GetText <> "" Then .SelText = o.GetText  'coller
      End If
    End With
sinon ça fait le même effet que "Couper" si le clip est vide
et la gestion d'erreur bye bye!!

perso je préfère de loin cette version avec le clip que les sendkeys
Re-Patrick :
beug sur ton code
1648384469233.png
 

Usine à gaz

XLDnaute Barbatruc
re
il est impec
et j'ai refait le même avec ma commandbars dans le module standard car je peux m'en resservir sur un autre userform
Re Patrick : Génial
C'est utile les fils loufoques : Ce serait bien que le Forum ouvre un fil "loufoques d'Excel" où les défis seraient lancés lol
J'en ai 2 autres sous le coude pour les WE prochains lol ... laissons refroidir nos pauvres méninges (enfin ... les miennes) .. car toi tu sembles inépuisable lol
Tu as superbement travaillé et quelle patience ... je suis admiratif :)
Bien entendu, je n'oublie pas Gérard et JM qui m'ont, eux aussi, tellement aidé et participé :)
:)
 

Staple1600

XLDnaute Barbatruc
Re

Rigolo faut voir
10 pages pour l''équivalent d'un CTRL+V
N messages pour expliquer comment trouver une clé dans la base de registre.

Ce n'est pas de la sorcellerie mais du détournement de tableur ;)
(et pourtant il n'est plus mineur depuis longtemps le tableur)
;)