Option Explicit
Dim WithEvents CL As ComboBoxLiés
Dim Ligne As Long, VLgn()
Private Sub UserForm_Initialize()
Set CL = New ComboBoxLiés
CL.CouleurSympa
CL.Plage Feuil1.Rows(5)
CL.Add Me.CbxIdt, "A"
CL.Add Me.CbxCivilité, "C"
CL.Add Me.CbxNom, "D"
CL.Add Me.CbxPrénom, "E"
CL.Actualiser
End Sub
Private Sub CL_KeyPress(ByVal CBM As ComboBoxMembre, ByVal KeyAscii As MSForms.ReturnInteger)
Dim C As String * 1
Select Case CBM.CBx
Case Me.CbxPrénom: If CBM.CBx.SelStart > 0 Then C = Mid$(CBM.CBx.Text, CBM.CBx.SelStart, 1)
If UCase$(C) <> LCase$(C) Then KeyAscii.Value = Asc(LCase$(Chr$(KeyAscii.Value))) _
Else KeyAscii.Value = Asc(UCase$(Chr$(KeyAscii.Value)))
Case Me.CbxNom: KeyAscii.Value = Asc(UCase$(Chr$(KeyAscii.Value))): End Select
End Sub
Private Sub BtnEffacer_Click()
CL.Nettoyer
End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 0 Then
Ligne = 0: ReDim VLgn(1 To 1, 1 To 12): GarnirChamps
VLgn(1, 1) = Trim$(CbxIdt.Text)
VLgn(1, 3) = Trim$(CbxCivilité.Text)
VLgn(1, 4) = Trim$(CbxPrénom.Text)
VLgn(1, 5) = Trim$(CbxNom.Text)
ElseIf NbrLgn = 1 Then
Ligne = 1
ElseIf Complet Then
Ligne = -1
Else
Ligne = 0
End If
End Sub
Private Sub CL_Résultat(Lignes() As Long)
If Ligne = 0 Then Exit Sub
If Ligne = -1 Then MsgBox "Fiche en double, veuillez la supprimer.", vbInformation, Me.Caption
Ligne = Lignes(1): VLgn = CL.PlgTablo.Rows(Ligne).Resize(, 12).Value: GarnirChamps
End Sub
Private Sub GarnirChamps()
Me.TbxDate.Text = VLgn(1, 2)
Me.TbxAdresse = VLgn(1, 6)
Me.TbxCP = VLgn(1, 7)
Me.TbxVille = VLgn(1, 8)
Me.TbxTelTrav = VLgn(1, 9)
Me.TbxTelPers = VLgn(1, 10)
Me.TbxFonction = VLgn(1, 11)
Me.TbxService = VLgn(1, 12)
habiliterboutons
End Sub