VBA - Ajouter ComboBox et le code qui va avec.

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
Ce document intitulé « VBA - Ajouter ComboBox et le code qui va avec. » issu de Comment Ça Marche (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.