Bonjour à tous,

J'ai actuellement une macro qui fonctionne plutot pas mal.
Toutefois, il me manque un bout de code que j'arrive pas à produire.

Vous pourrez voir sur le tableau que j'ai pour une référence, plusieurs taches à accomplir.

Lorsque celle-ci est sélectionné, une étoile est rajouté pour indiquer que la tache est prise en charge.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Private Sub CommandButton1_Click()
 
'BOUTON ENREGISTRER
 
'On vérifie qu'un executant est saisie obligatoirement
With VERIF_SI_NOUVEL_EXECUTANT
    If ComboBox2.ListIndex = -1 Then
        MsgBox ("ATTENTION : ENREGISTREMENT IMPOSSIBLE !!!" & Chr(10) & Chr(10) & "Veuillez saisir un NOUVEL EXECUTANT ou cliquer sur QUITTER"), 64, "MESSAGE UTILISATEUR"
        Exit Sub
    End If
End With
 
'On vérifie si une date "Début opération" est indiqué, alors on oblige à demander un N° d'employé
With VERIF_SI_DATE_PRISE_EN_CHARGE
    If Not TextBox10 = -1 And TextBox10 = "" Then
        MsgBox ("ATTENTION : ENREGISTREMENT IMPOSSIBLE !!!" & Chr(10) & Chr(10) & "Veuillez indiquer une date de prise en charge !"), 64, "MESSAGE UTILISATEUR"
        Exit Sub
    End If
End With
 
'On vérifie et impose la saisie d'un N° d'employé
With VERIF_NUMERO_EMPLOYE
    If Not TextBox11 = -1 And TextBox11 = "" Then
        MsgBox ("ATTENTION : ENREGISTREMENT IMPOSSIBLE !!!" & Chr(10) & Chr(10) & "Veuillez indiquer un numéro d'employé !"), 64, "MESSAGE UTILISATEUR"
        Exit Sub
    End If
End With
 
'--------- VERIFICATION FORMAT DATE TEXTBOX 10 ------------
    If Not IsDate(TextBox10) Then
        MsgBox "ATTENTION votre format DATE DE DEPART EST INCORRECT !!!" & Chr(10) & Chr(10) & "Vérifier la date que vous avez saisie ! ", 48, "MESSAGE DEVELOPPEUR"
        TextBox10 = ""
        Exit Sub
        'Else
        'MsgBox "Format correct"
        '...la suite de la procédure
    End If
'--------- FIN VERIFICATION FORMAT DATE TEXTBOX: DATE DE DEPART ------------
 
ThisWorkbook.Worksheets("DATA").Range("C11").Value = Format(ComboBox2.Value, "@") 'On écrit l'executant en cours au format Texte
ThisWorkbook.Worksheets("DATA").Range("E11").Value = Format(TextBox10.Value, "MM-DD-YYYY") 'on écrit la date au format Date
ThisWorkbook.Worksheets("DATA").Range("G11").Value = Format(TextBox11.Value, "####0") 'On écrit le numéro d'employé au format nombre sans virgule
 
 
 
 
'--------- VERIFICATION COMBOBOX2 TACHE ------------
'On impose que la tache sélectionné soit celle qui est juste prés celle qui est avec une étoile
 
 
 
'MsgBox ("ATTENTION : ENREGISTREMENT IMPOSSIBLE !!!" & Chr(10) & Chr(10) & "Veuillez sélectionné la premiere tache disponible !"), 64, "MESSAGE UTILISATEUR"
 
'--------- FIN VERIFICATION COMBOBOX2 TACHE ------------
 
'--------- AJOUT ETOILE ------------
'Je rajoute une étoile à la tache sélectionné dans le ComboBox2
With AJOUT_ETOILE
    If Not ComboBox2.ListIndex = -1 Then
    Dim NumberExectutant As Range
    Set NumberExectutant = ThisWorkbook.Worksheets("DATA").Range("C4:J4").Find(what:=ComboBox2.Value, lookat:=xlPart)
        If Not TextBox10 = "" Then NumberExectutant = NumberExectutant & "*"
        End If
End With
 
'--------- FIN AJOUT ETOILE ------------
 
 
' On quitte l'enregistrement !
Unload Me
 
End Sub
 
Private Sub TextBox10_Change()
Dim Valeur As Byte
TextBox10.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
Valeur = Len(TextBox10)
If Valeur = 2 Or Valeur = 5 Then TextBox10 = TextBox10 & "/"
End Sub
 
Private Sub UserForm_Initialize()
 
 
'remplit la ComboBox2 de l'ensemble des taches
For Each Cel In ThisWorkbook.Worksheets("DATA").Range("C4:J4") 'boucle sur toutes les cellule de C à J
 
'condition : si la cellule n'est pas vide ajoute son contenu à la ComboBox2
If Cel.Value <> "" Then ComboBox2.AddItem Cel.Value
Next Cel 'prochaine cellule
 
 
End Sub
je cherche à trouver une solution pour : Comment faire pour imposer la première tache sans étoile à sélectionner dans un ComboBox.


J'ai commenté le code de ma macro et apporter quelques lignes de vérification et autres qui, je me suis dis, pourrait servir à des lecteurs.

Pour le fichier d'exemple, c'est ici :
ComboBox et etoile_V1.0.xlsm


Merci encore pour votre aide.

EDIT (et oui j'avance) : je vérifie si la tache possède une étoile et si oui, alors je ne peux pas la sélectionner
rajouter en ligne 28 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
'On vérifie si il y a une étoile
    If Right(ComboBox2.Value, 1) = "*" Then
    MsgBox ("ATTENTION : ENREGISTREMENT IMPOSSIBLE !!!" & Chr(10) & Chr(10) & "Veuillez saisir une tache sans étoile !"), 64, "MESSAGE UTILISATEUR"
    ComboBox2.Value = "" 'Je vide le ComboBox
Exit Sub
    End If
Lieb