Bonjour,
J'ai un Userform contenant 50 CommandButton. Les CommandButton prennent une couleur suivant l'évènement : j'ai un planning, 50 bureaux, j'ai fait un Userform où j'ai mis 50 commandbutton représentant les bureaux, si les bureaux sont occupés, ils apparaissent en rouge, s'ils sont disponibles, ils sont en vert.
J'ai donc le code me permettant de boucler sur les bureaux et de les mettre en couleur suivant l'état (dispo ou non) :
Jusque là, tout fonctionne, mais je souhaiterais cliquer sur le commandbutton d'un bureau disponible (=donc identifié en vert), afin de l'affecter, j'ai donc mis :
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 Private Sub UserForm_Initialize() Dim MaPlage As Range Dim DerligR2 As Integer Dim ligne As Long If Modification Then 'Déterminer la première ligne libre du tableau ligne = 10 'ActiveCell.Row 'Créer la nouvelle ligne d'enregistrement If Cells(ligne, 6) = "" Then With Sheets("Planning") DerligR2 = .Range("F" & .Rows.Count).End(xlUp).Row Set MaPlage = .Range(.Cells(1, 6), .Cells(DerligR2, 6)) End With Dim ctrl As Control For Each ctrl In Me.Controls With MaPlage Set c = .Find(ctrl.Caption, LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then ctrl.BackColor = &HFF00& Else ctrl.BackColor = &HFF& End If End With Next End If End If
Mais cela ne fonctionne pas et je comprends pas pourquoi….
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 Private Sub CommandButton1_Click() Dim MaPlage As Range Dim DerligR2 As Integer With Sheets("Planning") DerligR2 = .Range("F" & .Rows.Count).End(xlUp).Row Set MaPlage = .Range(.Cells(1, 6), .Cells(DerligR2, 6)) End With With MaPlage Set c = .Find(CommandButton1.Caption, LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then CommandButton1.BackColor = &HFF00& Else CommandButton1.BackColor = &HFF& End If End With End Sub
J'ai appelé l'Userform par :
et dans la feuille "Planning", j'ai mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Sub AfficheUSF() Modification = False UserForm1.Show End Sub
Mais idem, lorsque je clique sur une cellule de la colonne 6, cela ne déclenche pas l'USERFORM……
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Option Explicit Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Cells(ActiveCell.Row, 6) = "" Then Cancel = True 'Modification d'une ligne Modification = True UserForm1.Show End If End Sub
Dans la colonne 6, se trouvent les bureaux déjà utilisés…
Merci de m'indiquer ce qui ne va pas….et ou de m'expliquer pourquoi cela ne fonctionne pas…..
AU CAS OU, je mets le fichier en PJ….avec juste l'évènement Userform1 : lors de l'ouverture, identification des bureaux dispo en vert et en rouge, les bureaux déjà pris…..
merci pour votre aide,
A+
Eric
Partager