Hpotter
XLDnaute Junior
Bonjour à tous,
J'ai fait ce code qui me permet (normalement) de faire des modifications dans 3 TextBoxs d'un formulaire et uniquement si ils sont vides.
Si aucne modification n'a été apportée alors qu'il y a des TextBoxs vides alors un message d'erreur s'affiche.
Cependant, il ne fait pas les modifications que je souhaite. Par exemple, je clique dans la Combo du formulaire et choisi un numéro qui correspond à un numéro de candidiat. A aprtir de là, des données sont affichées dans différents TextBoxs (Nom, adresse, etc.) Les TextBoxs T8, T9 et T10 servent à noter les candidats selon 3 tours de scrutins. Il se peut qu'un 1er tour soit déjà fait alors lors de l'affichage T8 n'est plus accessible à la modification.
Il ne reste plus que T9 et T10. Si rien n'est saisi alors message.
Mais imaginons que la ligne 4 soit entièrement saisie, donc avec les 3 notes et que je fais appel à ce candidat par mon formulaire et qu'il manque des notes dans la ligne 5 alors les notes de ligne 4 remplacent celles de la ligne 4 lors de ma validation.
Il faut donc que si T8, T9 et T10 sont remplies rien ne se passe lors de la validation mais si il y manque une note et qu'elle est saisie alors au moment de la validation celle-ci aille bien sur la ligne du candidat sélectionné dans la Combo.
Voici le code :
J'ai fait ce code qui me permet (normalement) de faire des modifications dans 3 TextBoxs d'un formulaire et uniquement si ils sont vides.
Si aucne modification n'a été apportée alors qu'il y a des TextBoxs vides alors un message d'erreur s'affiche.
Cependant, il ne fait pas les modifications que je souhaite. Par exemple, je clique dans la Combo du formulaire et choisi un numéro qui correspond à un numéro de candidiat. A aprtir de là, des données sont affichées dans différents TextBoxs (Nom, adresse, etc.) Les TextBoxs T8, T9 et T10 servent à noter les candidats selon 3 tours de scrutins. Il se peut qu'un 1er tour soit déjà fait alors lors de l'affichage T8 n'est plus accessible à la modification.
Il ne reste plus que T9 et T10. Si rien n'est saisi alors message.
Mais imaginons que la ligne 4 soit entièrement saisie, donc avec les 3 notes et que je fais appel à ce candidat par mon formulaire et qu'il manque des notes dans la ligne 5 alors les notes de ligne 4 remplacent celles de la ligne 4 lors de ma validation.
Il faut donc que si T8, T9 et T10 sont remplies rien ne se passe lors de la validation mais si il y manque une note et qu'elle est saisie alors au moment de la validation celle-ci aille bien sur la ligne du candidat sélectionné dans la Combo.
Voici le code :
Code:
Private Sub C1_Click()
Dim erreur(3) As Boolean, msg As String, I As Byte
Dim Tablo As Variant
'ver=0
Tablo = Array("", "Note peau", "Note 1er tour", "Note 2ème tour")
erreur(1) = Me.T8 = ""
erreur(2) = Me.T9 = ""
erreur(3) = Me.T10 = ""
For I = 1 To 3
If erreur(I) Then msg = msg & vbCrLf & "-" & " " & Tablo(I)
Next
If msg <> "" Then
MsgBox "Vous n'avez saisi aucune note ?" & msg, 0, "A vérifier"
Exit Sub
End If
Dim lngRow As Long
With Sheets("Général") 'la feuille "Général" est activée
If .Range("I4") = "" Then 'la cellule I4 est prise comme point de départ
lngRow = 4 ' si elle est vide, elle est sélectionnée
Else
lngRow = .Range("I3").End(xlDown).Row + 1
End If
.Cells(lngRow, 9).Value = Me.T9.Value 'La valeur de T9 doit aller dans la cellule I8
.Cells(lngRow, 10).Value = (Me.T10) 'La valeur de T10 dans la cellule J8
.Cells(lngRow, 12).Value = (Me.T8) 'La valeur de T8 dans la cellule L8
End With
'Après validation les données présentes sont effacées du formulaire
'La Combo (CbNum) prend le focus
CbNum.Value = ""
T1 = ""
T2 = ""
T3 = ""
T4 = ""
T5 = ""
T6 = ""
T7 = ""
T8 = ""
T9 = ""
T10 = ""
CbNum.SetFocus
End Sub
Merci à tous pour l'aide que vous pourrez m'apporter