je souhaite incrémenter une base de données à partir d'un UserForm. Pas de souci en ce qui concerne le passage d'une TextBox à une cellule d'un classeur.
Mon problème, c'est que je ne sais pas comment faire pour que les données s'ajoutent les unes à la suite des autres et ne remplacent pas continuellement la saisie précédente.
Juste une précision : pour faciliter l'ergononomie du fichier, je compte masquer la feuille qui recueille les données et ne montrer qu'une seule feuille (nommée Résultat, par exemple).
Je joins un petit fichier pour illustrer tout ça, merci d'avance pour votre aide !
Re : Incrémenter une base de données à partir d'un UserForm
salut
à tester
Code:
Private Sub CommandButton1_Click()
Feuil1.Range("B60000").End(xlUp)(2) = Box_nom: Box_nom = "" 'pour autre essai...
Feuil1.Range("C60000").End(xlUp)(2) = Box_prenom: Box_prenom = ""
'croix pour fermer !
End Sub
Re : Incrémenter une base de données à partir d'un UserForm
Bonjour à vous deux et merci pour votre aide,
vos deux solutions fonctionnent à merveille ! J'hésite entre celle de Jean-Marcel que je juge plus classique et celle de Si... que je trouve... audacieuse ^^
Re : Incrémenter une base de données à partir d'un UserForm
Bonjour,
je reviens vers vous pour retravailler le code que vous m'avez conseillé.
Code:
Private Sub CommandButton1_Click()
Feuil1.Range("B60000").End(xlUp)(2) = Box_nom: Box_nom = ""
Feuil1.Range("C60000").End(xlUp)(2) = Box_prenom: Box_prenom = ""
End Sub
En fait, je tente de remplacer B60000 par un nom de plage afin de sécuriser mon fichier : supposons qu'à l'avenir, la colonne A soit supprimée : tout mon code se retrouve par terre !
Malheureusement, si je nomme la place des noms par T_Nom, par exemple, l'incrémentation ne se fait plus et les nouvelles données remplacent les précédentes...
Re : Incrémenter une base de données à partir d'un UserForm
Bonjour,
excuse-moi, je n'arrive pas à me faire comprendre sur l'autre fil car les XLDnautes qui tentent de m'aider modifient trop profondément le code auquel nous avons abouti dans ce fil. C'est pour cette raison que j'ai voulu relancer ce topic. Rassure-toi, je comptais prévenir les autres pour éviter justement le double post.
Avec "Nom" la cellule qui se situe au-dessus de l'en-tête de colonne.
Cela équivaut à :
"Va à la cellule nommée Nom"
"Va à la cellule pleine la plus basse de la plage T_Nom"
"Descend encore d'une case (la vide, du coup)"
"Insère ici les données de la TextBox TB_Nom"
Et ça fonctionne. Par contre, il faut que l'entête soit incluse dans la plage nommée, sinon la première ligne risque de ne pas fonctionner. De plus, la première ligne sous l'en-tête de colonne doit être pleine (il faut au total 2 cellules pleines dont l'en-tête en haut de la plage nommée : et oui, c'est du bricolage !).