1 pièce(s) jointe(s)
Vérification valeur Combobox selon critere
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:
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 :
Pièce jointe 660255
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:
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