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.

Nom : Capture frmSaisie.PNG
Affichages : 2151
Taille : 15,9 Ko
Formulaire de saisie pour ajouter un client
Nom : Capture bdd sous client.PNG
Affichages : 938
Taille : 31,5 Ko
Exemple de base de données (ne pas tenir compte de certaines informations faisant office de test)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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