VBA - Ajouter ComboBox et le code qui va avec.

Septembre 2016


Code relativement simple et qui ne nécessite pas d'explication complémentaire.
Coller ces deux sub dans un module général (Module1 par exemple).

Option Explicit   

Sub CréerCombo(Lier As Range, Optional Sh As Worksheet, Optional Emplacement As Range)   
Dim Obj As Object   
Dim code As String   
Dim Ix As Integer, Num As String   
    If Sh Is Nothing Then   
        Set Sh = ActiveSheet   
    End If   
    Sh.Select   
    Ix = ActiveSheet.OLEObjects.Count + 1   
    Num = "0" & Ix: Num = Right(Num, 2) 'Pour jusque 99 boutons   
    If Emplacement Is Nothing Then   
        'emplacement par défaut   
        Set Emplacement = ActiveCell   
    End If   
'crée le bouton   
    With Emplacement   
    Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combobox.1", _   
    Link:=False, DisplayAsIcon:=False, Left:=.Left, Top:=.Top, Width:=.ColumnWidth * 5.65, Height:=.RowHeight)   
    Obj.Name = "ComboB_" & Num   
    End With   

'propriétés du combo   
    With ActiveSheet.OLEObjects(Ix)   
        .Placement = xlMoveAndSize   
        .PrintObject = True   
        .ListFillRange = Lier.Address   
    End With   

'Le texte de la macro   
    code = vbCrLf & "Private Sub ComboB_" & Num & "_Change()" & vbCrLf   
    code = code & "    MsgBox ""Vous avez sélectionner la ligne "" & ComboB_" & Num & ".Text , ,""ComboB_" & Num & """" & vbCrLf   
    code = code & "End Sub"   

'Ajoute la macro en fin de module feuille   
    With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule   
        .insertlines .CountOfLines + 1, code   
    End With   
End Sub   


Télécharger un exemple en Excel 2007 ou >
Serveur 1 : Ajouter Combo et code.xlsm
Serveur réserve : Ajouter Combo et code.xlsm

A voir également :

Ce document intitulé «  VBA - Ajouter ComboBox et le code qui va avec.  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.