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

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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 =...

mapomme

XLDnaute Barbatruc
Supporter XLD
Donc remettre du gaz dans le gaz pour un simple copier/coller que sait faire un bête CTRL+V
En plus si le gaz rajouté est froid, alors c'est du gazpaschaud. Tiens! J'ai comme une p'tite faim, mangerai bien une p'tite soupe fraiche, moi.
Désolé, je ne le ferai plus (enfin si quand même). Je sors, désolé 🤭
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
En plus si le gaz rajouté est froid, alors c'est du gazpaschaud. Tiens! J'ai comme une p'tite faim, mangerai bien une p'tite soupe fraiche, moi.
Désolé, je ne le ferai plus (enfin si quand même). Je sors, désolé 🤭
Bonjour mapomme : j'adore :) ... stp ... stp refais me-le encore (tien ça m'rappelle un truc lol :))
Alors : ça chauffe les méninges ? 🤣🙃
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
tout droit sorti de mes vieux délires,du temps ou je faisais comme toi des usines de raffinement pétrolifères

je l'ai mis un peu au goût du jour

'couper
tu peux couper une partie de text d'un textbox et le coller dans un autre (efface l'existant si non vide)
'je pourrais éventuellement ajouter l'insertion

'copier
tu peux copier un textbox et le coller dans une cellule
tu peux copier une cellule ou une plage dans un textbox (si plus d'une ligne le textbox doit être multiligne )
tu peux copier un item d'une combobox et coller dans un textbox

le menu intègre le font color et le backcolor
si tu veux intégrer le font size ou le font name et / ou autre,cela serait facile
 

Pièces jointes

  • test menu copier coller on form.xlsm
    26.1 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
Bonjour Staple1600
ahh!! ben non ce n'est pas natif bien sur
je regarde le multipage
edit:
comme c'est un vieux delire et que je n'ai pas envie de m'ennuyer avec ça on passe par un raccourci
comme je fait un simple show popup et non un show popup (X,Y) j'utilise une variable et on fait sauter le select case control

VB:
Public usf
Public CtrL As Object
Sub createmenu(ctl As Object)
    Dim barre, arrbutton
   Set CtrL = ctl
   arrbutton = Array("Couper:ncouper", "Copier:ncopier", "Coller:ncoller", "Font Color:fontcolor", "Back Color:Pbackcolor")
    delebar
    Set barre = Application.CommandBars.Add("CopierColler", msoBarPopup, False, True)
    For i = 0 To UBound(arrbutton)
        With barre.Controls.Add(msoControlButton, 1, , , True)
            .Caption = Split(arrbutton(i), ":")(0)
            .Tag = ctl.Name
            If .Caption = "Couper" Then
                If ctl.SelLength = 0 Or TypeName(ctl) = "ComboBox" Then .Enabled = False
            End If
             If .Caption = "Copier" And ctl.Value = "" Then .Enabled = False
             .OnAction = Split(arrbutton(i), ":")(1)
        End With
    Next
    barre.ShowPopup
End Sub

Sub delebar()
    On Error Resume Next
    CommandBars("CopierColler").Delete
End Sub

Sub ncouper()
    Dim valeur$, oldvaleur$
    With usf.Controls(Application.CommandBars.ActionControl.Tag)
        oldvaleur = .Value
        valeur = Mid(.Value, .SelStart + 1, .SelLength)
        .Value = Mid(oldvaleur, 1, .SelStart) & Mid(oldvaleur, .SelStart + 1 + .SelLength, Len(oldvaleur))
       End With
         With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText valeur: .PutInClipboard: End With
    End Sub

Sub ncopier()
    Dim valeur$
    valeur = usf.Controls(Application.CommandBars.ActionControl.Tag).Value
     With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText valeur: .PutInClipboard: End With
End Sub

Sub ncoller()
    Dim valeur$
    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .GetFromClipboard: valeur = .GetText: End With
    If UBound(Split(valeur, vbCrLf)) = 1 Then valeur = Replace(valeur, vbCrLf, "")
      Select Case TypeName(CtrL)
    Case "ComboBox"
        'Control.Value = valeur'selectionne l'item
        Control.AddItem valeur    'j'ajoute un item a la combo (il faut quelle soit développée)
        Control.DropDown
    Case "TextBox"
        CtrL.Value = valeur
     End Select
    'With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText "": .PutInClipboard: End With
End Sub

Sub fontcolor()
 If Application.Dialogs(xlDialogEditColor).Show(2, 255, 0, 0) = True Then
 usf.Controls(Application.CommandBars.ActionControl.Tag).ForeColor = ActiveWorkbook.Colors(2)
End If

End Sub
Sub pbackcolor()
 If Application.Dialogs(xlDialogEditColor).Show(2, 255, 0, 0) = True Then
 usf.Controls(Application.CommandBars.ActionControl.Tag).BackColor = ActiveWorkbook.Colors(2)
End If

End Sub
 

Statistiques des forums

Discussions
312 310
Messages
2 087 130
Membres
103 480
dernier inscrit
etaniere