But : Remplir un tableau avec un formulaire mais aussi laisser l’application trouver la dernière ligne de cellules libres pour y inscrire les données. Voici donc ce que l’on souhaiterait obtenir
Au démarrage du fichier, nous sommes dans cette situation
Nous allons appuyer sur le bouton Formulaire ! pour le faire apparaître…Le code est simple, j’ai gardé aussi le nom attribué par défaut au formulaire créé (NB: j’ai expliqué sur cette page comment créer un formulaire et l’on peut délivrer immédiatement un mystère en disant que l’on cachera le formulaire en appuyant sur le bouton Fin ! placé sur le formulaire. Les deux autres boutons sont tout aussi intuitifs, il ne me reste qu’à vous divulguer le code
Private Sub CommandButton1_Click()
'Pour afficher/ouvrir le formulaire
UserForm1.Show
End Sub
Private Sub cmdCalculer_Click()
On Error Resume Next
'Effectue un simple calcul
NbreTot = NbrePar * Session
'Particularité les deux premières lignes du tableau doivent
'absolument contenir une donnée, on ne peut pas fusionner
'les cellules sous peine d'erreurs dans l'exécution
Range("A1").End(xlDown).Offset(1, 0).Value = NbrePar.Value
Range("B1").End(xlDown).Offset(1, 0).Value = Session.Value
Range("C1").End(xlDown).Offset(1, 0).Value = NbreTot.Value
End Sub
Private Sub cmdReset_Click()
On Error Resume Next
'Pour nettoyer le contenu du Formulaire
NbreTot = ""
NbrePar = ""
Session = ""
End Sub
Private Sub cmdFin_Click()
'Pour cacher le Formulaire
UserForm1.Hide
End Sub
ATTENTION !! Comportement curieux de la procédure, en effet, j’ai remarqué que la seconde ligne du tableau doit absolument être remplie sinon notre remplissage automatique du formulaire (origine) vers les cellules ne fonctionnent pas, je pense que c’est dû à une particularité d’Excel qui traite ses tableaux en base de données dès qu’il détecte ce qui semble être les intitulés des « champs » (1ère ligne) et les premières données (2ème ligne); voilà pourquoi je triche un peu en plaçant mes titres sur deux cellules au lieu d’une seule, et ne vous aviser pas de les fusionner, vous subiriez une erreur dans le code VBA
Cliquez ici pour télécharger le fichier exemple