Remplir un tableau avec l’aide d’un formulaire

Retour vers Excel

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

FIN