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.
Partager