Bonjour,
Pas très au point en VBA, je sollicite votre aide pour résoudre mon problème.
J'ai un classeur que comporte 56 feuilles identiques (se sont de feuilles de service pour gérer jour par jour un pool de personnes)
Sur ma première feuille, j'ai une combobox avec un liste déroulante qui me permet de choisir intuitivement des noms. Ça fonctionne parfaitement sur ma première feuille.
Par contre je n'ai pas envie de faire un copier/coller de ce code sur chaque feuilles!
Existe-il un moyen d'appliquer à l'ensemble des feuilles du classeur ?
Merci d'avance pour votre aide
Pas très au point en VBA, je sollicite votre aide pour résoudre mon problème.
J'ai un classeur que comporte 56 feuilles identiques (se sont de feuilles de service pour gérer jour par jour un pool de personnes)
Sur ma première feuille, j'ai une combobox avec un liste déroulante qui me permet de choisir intuitivement des noms. Ça fonctionne parfaitement sur ma première feuille.
Par contre je n'ai pas envie de faire un copier/coller de ce code sur chaque feuilles!
Existe-il un moyen d'appliquer à l'ensemble des feuilles du classeur ?
Merci d'avance pour votre aide
VB:
Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([c11:c13, c21, c40:c48, c50, d9, d15:d16, d18:d19, d23, d25, d29, d31,d32, d34,d35, d37, d40:d50, e11:e13, e21, e40:e50], Target) Is Nothing And Target.Count = 1 Then
a = Sheets("Equipes").Range("Liste_nom").Value
Me.ComboBox1.List = a
Me.ComboBox1.Height = Target.Height + 3
Me.ComboBox1.Width = Target.Width
Me.ComboBox1.Top = Target.Top
Me.ComboBox1.Left = Target.Left
Me.ComboBox1 = Target
Me.ComboBox1.Visible = False
Me.ComboBox1.Activate
Me.ComboBox1.DropDown
Else
Me.ComboBox1.Visible = False
End If
End Sub
Private Sub ComboBox1_Change()
If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
Set d1 = CreateObject("Scripting.Dictionary")
'tmp = "*" & UCase(Me.ComboBox1) & "*"
tmp = UCase(Me.ComboBox1) & "*"
For Each c In a
If UCase(c) Like tmp Then d1(c) = ""
Next c
Me.ComboBox1.List = d1.keys
Me.ComboBox1.DropDown
End If
ActiveCell.Value = Me.ComboBox1
End Sub
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.ComboBox1.List = a
Me.ComboBox1.Activate
Me.ComboBox1.DropDown
End Sub
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ActiveCell.Offset(1).Select
End Sub