problème de macro pour une liste déroulante à choix multiple
Bonjour,
Je suis novice en VBA et j'ai un souci avec une macro qui ne fonctionne pas. Je suis sur Excel 2007 avec Windows 7 pro. Fichier en réseau.
J'ai un long tableau dans lequel j'ai besoin de créer un liste déroulante à choix multiple. Cette liste, je l'ai faite sur un 2° onglet.
Mon souci est que ma macro ne fonctionne pas = quand je double clique sur une cellule où devrait s'ouvrir ma liste à choix multiple, ça ne marche pas.
Est-il possible que ce soit un problème de sécurité ?
Voici les codes que j'ai sur la feuille de mon tableau principal (là où je veux que s'ouvre ma liste de choix multiple) :
-------------------------------------
Code:
1 2 3 4 5 6 7 8 9
|
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("O2:O" & Rows.Count)) Is Nothing Then
Exit Sub
Else
' Load UserForm1
U_Liste.Show 1
End If
End Sub |
-------------------------------------
Sur l'autre
-------------------------------------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
'Option Explicit
Dim L1 As Long
Dim C2 As Long
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
End Sub
'ListBox MultiSelect
Private Sub UserForm_Initialize()
Dim I As Long
With ListBox1
.Clear
.BackColor = Feuil2.Range("A1").Interior.Color
.Font.Name = "Arial Narrow"
.Font.Size = 12
.Font.Bold = True
.MultiSelect = 1
For L = 2 To Feuil2.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Feuil2.Range("A" & L).Value
Next
End With
' Numero de la Ligne
L1 = Selection.Row
' Nombre de Lignes
L2 = Selection.Rows.Count
' Nombre de colonnes
C1 = Selection.Columns.Count
' Depart de la colonne
C2 = Selection.Column
End Sub
Private Sub CommandButton1_Click()
Dim I As Long
Dim ValeurARetourner As String
' Cells(L1, C2).Value = ListBox1.List(ListBox1.ListIndex)
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(I) & " & "
End If
Next I
Feuil1.Cells(L1, C2).Value = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
'UserForm1.Hide
Unload Me
End Sub |
-------------------------------------
Auriez-vous une idée ?
Merci d'avance.