Créer une boucle nouvelle ligne tableau champs formulaire

Bonjour,

Je débute avec le VBA. J'ai trouvé pas mal de reponse traitant des boucles de formulaire mais je n'arrive pas a adapter les codes trouvés au mien.

Dans l'idée lorsque je click sur le Bouton Valider les champs du formulaire sont restitué dans un Tableau situé sur la feuille "BDD". Pour l'instant tout s'effectue correctement mais si je rempli a nouveau les champs sans quitter mon formulaire (Bouton Quit_Click Unload me) alors la ligne que j'ai rentré juste avant est remplcacé par le champs que j'ai a nouveau rempli.

Je souhaiterais qu'a chaque click sur le bouton valider une nouvelle ligne se crée sans avoir besoin de quitter le formulaire entre les deux remplissage.

Une idée?

Merci d'avance à ceux qui m'aideront.

Ci dessous le code utilisé pour le bouton Valider

Private Sub BTValider_Click()

'Verifier format date

If Not IsDate(TBoDate.Value) Then
MsgBox "Format date incorrect"
TBoDate = ""
Exit Sub
Else

'Ajouter une nouvelle ligne a la base de donnee

Sheets("BDD").Activate
Cells(1, 1).Select 'Selectionner cellule A1
Selection.End(xlDown).Select 'Dernière ligne non vide
Selection.Offset(1, 0).Select 'Decaler une ligne vers le bas

ActiveCell = CDate(TBoDate)  'Copie colonne A Date
End If
ActiveCell.Offset(0, 1).Value = TBoNom 'Copie colonne B Nom
ActiveCell.Offset(0, 2).Value = CInt(TBoCrea) 'Copie colonne C Nombre
ActiveCell.Offset(0, 3).Value = CInt(TBo11) 'Copie colonne D Nombre
ActiveCell.Offset(0, 4).Value = CInt(TBo22) 'Copie colonne E Nombre
ActiveCell.Offset(0, 6).Value = CboAccess 'Copie colonne F

'Effacer les champs pour nouvelle saisie

TBo11 = "0"
TBo22 = "0"
TBoCrea = "0"
TBoNom = ""
TBoDate = ""
CboAccess = False

Sheets("Dashboard").Activate

End Sub

Bonsoir,

Le "Else" du premier if n'est pas nécessaire car vous sortez de la procédure. Les "Select" ne sont pas non plus nécessaires et alourdissent la procédure. Essayer ce code modifié :

Private Sub BTValider_Click()
    Dim first_cell_empty As Range

    'Verifier format date

    If Not IsDate(TBoDate.Value) Then
        MsgBox "Format date incorrect"
        TBoDate = ""
        Exit Sub
    End If

    'Ajouter une nouvelle ligne a la base de donnee

    With Sheets("BDD")
        Set first_cell_empty = .Columns("A").Find("")     'trouver 1ère cellule vide en colonne A
         If first_cell_empty Is Nothing Then Set first_cell_empty = .Range("A1")
    End With
    first_cell_empty = CDate(TBoDate)  'Copie colonne A Date
     first_cell_empty.Offset(0, 1).Value = TBoNom 'Copie colonne B Nom
     first_cell_empty.Offset(0, 2).Value = CInt(TBoCrea) 'Copie colonne C Nombre
     first_cell_empty.Offset(0, 3).Value = CInt(TBo11) 'Copie colonne D Nombre
     first_cell_empty.Offset(0, 4).Value = CInt(TBo22) 'Copie colonne E Nombre
     first_cell_empty.Offset(0, 6).Value = CboAccess 'Copie colonne F

    'Effacer les champs pour nouvelle saisie

    TBo11 = "0"
    TBo22 = "0"
    TBoCrea = "0"
    TBoNom = ""
    TBoDate = ""
    CboAccess = False

    Sheets("Dashboard").Activate

End Sub

Ca fonctionne parfaitement!!! Merci beaucoup (et en plus j'ai compris! donc je pourrais réutiliser )

Bonne soirée

Rechercher des sujets similaires à "creer boucle nouvelle ligne tableau champs formulaire"