2 pièce(s) jointe(s)
VBA ajouter un sous client à la base de données
Bonjour, lorsque je rajoute un client à ma base de données, il peut également être associé avec des sous clients (le même numéro mais un sous-numéro différent). Par exemple : pour le client enregistré, une ligne se crée avec toutes les informations remplies dans le formulaire et le n°1 s'affecte dans la colonne Num Client et le sous client est enregistré à la ligne du dessous avec comme Num Client 1.1 avec uniquement les valeurs Nom, Prénom et Date de naissance.
Pièce jointe 370922
Formulaire de saisie pour ajouter un client
Pièce jointe 370926
Exemple de base de données (ne pas tenir compte de certaines informations faisant office de test)
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
| With Worksheets("Clients").ListObjects(1)
'si dernière ligne du tableau non vide, ajout d'une ligne
If .ListColumns("Num Client").DataBodyRange.Rows(.ListRows.Count) <> Empty Then .ListRows.Add
'incrémentation automatique du numéro de client
.ListColumns("Num Client").DataBodyRange.Rows(.ListRows.Count) = Application.Max(.ListColumns("Num Client").DataBodyRange) + 1
'remplissage autres champs
.ListColumns(2).DataBodyRange.Rows(.ListRows.Count) = txtNom.Text
.ListColumns(3).DataBodyRange.Rows(.ListRows.Count) = txtPrenom.Text
.ListColumns(4).DataBodyRange.Rows(.ListRows.Count) = txtDateNaissance.Text
.ListColumns(5).DataBodyRange.Rows(.ListRows.Count) = cboProfession.Text
.ListColumns(6).DataBodyRange.Rows(.ListRows.Count) = cboAssuranceHospi.Text
.ListColumns(7).DataBodyRange.Rows(.ListRows.Count) = Choose(CInt(OptnAcciCorpOui.Value) + 2, "Oui", "Non")
.ListColumns(8).DataBodyRange.Rows(.ListRows.Count) = txtCapitaux.Text
.ListColumns(9).DataBodyRange.Rows(.ListRows.Count) = cboNbPersonnesAjouter.Text
.ListColumns("Date d'enregistrement").DataBodyRange.Rows(.ListRows.Count) = Date
If cboNbPersonnesAjouter = 1 Then
.ListColumns("Num Client").DataBodyRange.Rows(.ListRows.Count) = Application.Max(.ListColumns("Num Client").DataBodyRange) + 0.1
.ListColumns(2).DataBodyRange.Rows(.ListRows.Count) = txtNom1.Text
.ListColumns(3).DataBodyRange.Rows(.ListRows.Count) = txtPrenom1.Text
.ListColumns(4).DataBodyRange.Rows(.ListRows.Count) = txtDateNaissance1.Text
End If
End With |