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