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- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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 SubCa fonctionne parfaitement!!! Merci beaucoup (et en plus j'ai compris!
Bonne soirée