Si on ne maîtrise pas VBA ou qu’on n’a simplement pas la possibilité d’utiliser les userform dans Excel. Et que que nous voulons créer un formulaire de saisie personnalisé afin d’alimenter notre base de donnée alors nous allons devoir utiliser utiliser une autre fonctionnalité qui nous permettra de faire cela.
Et donc ici nous avons un client qui nous demande de lui créer un formulaire de saisie qui permettra à ces utilisateur d’ajouter un pays, ville et code postal dans la base de donnée. ce n’est pas tout, car notre client veut que chaque entrée dans la base de donnée soit identifiée par un numéro de référence unique et cela doit être généré automatiquement après chaque nouvelle entrée dans la base de donnée.
l’entrée pour le code postal doit être numérique, et il nous faut un visuelle qui indique que le champs postal n’est pas correctement rempli
Le client veut aussi que sa base de données et son formulaire de saisie soit protégé afin d’éviter aux utilisateurs d’effectuer des changements sur le formulaire de saisie ou des entrées autre que le formulaire de saisie dans la base de données.
et pour finir il aimerait bien que le bouton de saisie du formulaire apparaisse uniquement si tous les champs du formulaire sont remplis !
Mise en place des champs de saisie
Nous allons créer une nouvelle page que nous allons nommée InputForm et dans cette page nous allons créer nos 3 entrées
puis nous allons donner la forme souhaiter de notre formulaire
et pour finir nous allons simplement le mettre en couleur et ne pas afficher les lignes, ici j’ai utilisé les palette de couleurs suivante.
lier les champs du formulaire avec la base de donnée
Désormais que nous avons notre formulaire nous allons lier les champs de notre formulaire de saisie avec les champs de notre base de données. Alors pour faire cela, le plus simple est de créer une nouvelle feuille que nous allons nommée “formUtil”.
ici nous allons simplement reprendre les entête de notre base de donnée et puis nous allons référencer les champs de notre formulaire
désormais nous avons lier plus au moins les entrée de notre formulaire avec notre base de données
création de la validation
Comme nous avons les informations de notre formulaire de saisie nous pouvons créer notre validation ici afin de vérifier si oui ou non on peut afficher le bouton de sauvegarde.
ici il faut savoir si une valeur est vide alors le résultat est 0, pour le code postal nous allons aussi vérifier si au format nombre donc on ajoute la fonction ESTNUM qui va vérifier si le champ est numérique ou pas.
nous pouvons ajouter un format conditionnelle dans notre formulaire afin d’afficher la couleur en un rouge claire si le postal est rempli mais n’est pas numérique
Création du bouton
Comme nous n’allons pas utiliser du code vba il nous faut trouver une solution ou une astuce pour notre bouton.
Pour notre bouton nous allons simplement le créer dans la cellule B18, ou nous allons définir une largeur et une hauteur. Il est important que la taille de cette cellule ne change pas, car cela risque de donner de drôles de résultats.
Donc dans mon exemple je ne vais pas ajouter un texto mais une icon
Avec ceci nous allons change la couleur de la cellule ainsi que notre icône ou text de la meme couleur de notre formulaire.
désormais nous allons utiliser notre validation afin de change la couleur de la cellule, en orange si la valeur de la cellule B16 est VRAI
Pour ajouter le bouton à notre formulaire, nous allons utiliser un outil d’Excel qui nous permet de prendre une image d’une cellule avec l’appareil photo. Si vous ne l’avez pas encore activé, vous devez allez dans les option des barres d’action rapide et vous pouvez l’ajouter.
une fois l’image de la cellule prise il faut la retravailler un peut pour ne pas avoire les bordure
Il ne nous reste plus qu’à ajouter notre bouton dans notre formulaire de saisie
N’oubliez pas d’indiquer la feuille de référence de la cellule B18 donc ici c’est =FormUtil!$B$18. Et donc il ne nous reste plus qu’à tester si le bouton fonctionne bien.
numéro de référence unique
Il est temps de créer notre numéro de référence unique ou Id. Pour cela nous allons créer deux entrées dans notre feuil formUtil. Une cellule contiendra le numéro de référence pour la nouvelle entrée et une qui contiendra la suivante.
et nous pouvons faire la même chose pour le liens avec notre base de donnée. c’est à dire vérifier si la validation est vrai alors on prend le new id sinon on affiche rien.
Sécurisé notre formulaire et notre base de donnée
Afin d’éviter que les utilisateur font des bêtises nous allons sécuriser notre formulaire. sauf les champs de saisie et notre base de donnée ainsi que masque la feuille formUtil.
Création de la macro de sauvegarde
Il est temps de finaliser notre formulaire en indiquant à excel avec l’aide d’une macro les étapes qu’il doit exécuter. afin d’enregistrer la donnée dans la base de donnée.
Si vous n’avez pas le raccourci Macro je vous invite à le retrouver dans les options.
Il est important de savoir qu’au moment où on clique sur OK. toutes les manipulations qu’on fait sont enregistrées dans la macro.
donc nous allons faire les choses suivantes.
- afficher toutes les pages masquer
- Déverrouiller la base de donnée
- ajouter une nouvelle ligne dans notre base de donnée (à la ligne 2)
- aller sur la page formUtil et copier la ligne 3
- retourner sur notre base de donnée et colle les valeur uniquement dans la ligne 2
- sur la page form Config copier la valeur du nextId et le coller dans new Id et masquer la page
- verrouiller la base de donnée
- aller sur notre formulaire, retiré la sécurité et vider la colonne qui contient les données introduite et protéger le formulaire
il ne reste plus qu’à ajouter notre macro au bouton de sauvegarde et le tour est joué.
voilà nous avons notre formulaire de saisie sans userforme ou vba sur Excel.
Bonjour du Canada,
Avez-vous l’équivalence des cours en anglais? Du moins la traduction des codes surtout.
Tous mes logiciels sont en Anglais et les codes se ressemblent et ne se prononcent pas de la même manière; ce qui retarde l’apprentissage de vos cours si bien présentés
Je vous en remercie