Public WithEvents tbxdate As MSForms.TextBox
Dim cl(10) As New FicheInscription
Private Sub tbxdate_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then tbxdate = Calendar.ShowX(tbxdate, 2, 0, 1)
End Sub
Private Sub UserForm_Activate()
For Each ctrl In Me.Controls
If ctrl.ControlTipText = "date" Then A = A + 1: Set cl(A).tbxdate = ctrl
Next
End Sub
Public WithEvents tbxdate As MSForms.TextBox
Dim cl(10) As New FicheInscription
Private Sub tbxdate_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
With tbxdate
v = .Value
Select Case KeyCode
Case 96 To 105
If Len(v) = 2 Or Len(v) = 5 Then v = v & "/"
v = v & Chr(KeyCode - 48)
If Val(v) > 31 Then v = ""
If Len(v) >= 5 Then If Mid(v, 4, 2) > 12 Then v = Left(v, 3)
KeyCode = 0
Case 8: v = Left(v, InStrRev(v, "/") + 1)
Case 46
Case Else: KeyCode = 0
End Select
If Len(v) = 2 Or Len(v) = 5 Then v = v & "/"
.Value = Mid(v, 1, 10)
If Len(v) = 10 And Not IsDate(v) Then .Value = "": Beep: MsgBox "la date saisie n'est pas valide"
End With
End Sub
Private Sub tbxdate_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then tbxdate = Calendar.ShowX(tbxdate, 2, 0, 1)
End Sub
Private Sub UserForm_Activate()
For Each ctrl In Me.Controls
If ctrl.ControlTipText = "date" Then A = A + 1: Set cl(A).tbxdate = ctrl
Next
End Sub
Ah mince j'ai posté un nouveau message sans voir ton message suivant... je regardeHello
Regarde la nouvelle PJ, j'ai un peu progressé dans l'identification et simplification du code
j'ai quand meme quelques questions
(je ne parle ici que du formulaire de saisie (Fiche Inscription))
Dans la table "Inscriptions", si j'ai bien compris le N° Client (colonne A) est le meme pour les 4 enfants (ou 1 ou 2 ou 3)
donc; dans le formulaire.. il n'est pas utile de lister TOUTES les lignes de la colonne A parce que:
==>1: ca te donne des doublons
==>2: selon que tu selectionnes le 1er ou 3eme enfant, le formulaire n'est pas correctement rempli
ex: pour le client 5, il y a 4 enfants: tu selectionnes le 2eme enfant==> le formulaire est rempli avec les enfants 2 3 et 4 (le 1er est oublié)
==> j'ai donc modifié le remplissage du combo de recherche pour avoir un remplissage sans doublon==> ca correspond au premier enfant
comme tu as très bien utilisé le nommage des différents controles de ton formulaire, j'ai juste modifié le nom de ceux qui correspondent au premier enfant, en rajouttant l'indice 1
dans le code: on peut donc faire une boucle de 1 à 4 sur les controles
plutot que
Txt_Nom=cells(1,1)
Txt_Nom2=Cells(2,1)
Txt_Nom3=Cells(3,1)
Txt_Nom4=Cells(4,1)
on a une boucle
for i=1 to 4
me.controls("Txt_Nom" &i)=cells(i,1)
next i
va voir le code du bouton "Aller a"
Bouton "Modifier" et bouton "Nouveau"
à priori, ils font la meme chose: à savoir sauvegarder les infos du formulaire dans la feuille Excel
la seule différence: c'est la ligne
Nouveau==> nouvelle ligne en bas du tableau
Modifier==> numéro de la ligne selectionné
on pourrait donc largement simplifier en rassemblant ces deux macros, en indiquant le numéro de ligne
Mais: je vois des différences (oublis??)
va voir le code: j'y ai aussi mis des commentaires/questions