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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.