You are on page 1of 11

Votre Assistante Le Blog : http://www.votreassistante.

net/blog - le 17/10/2013

Crer un formulaire personnalis pour saisir des donnes sur Excel


Avec Excel, il est possible dutiliser un formulaire de saisie disponible par dfaut. Cependant,
il reste quelque peu basique et ne vous permet pas, par exemple, dutiliser des listes droulantes.
Nous allons donc, dans ce tutoriel, crer un formulaire de saisie personnalis avec Excel tant
au niveau de la saisie des donnes que de la prsentation.
Pour ce tutoriel, nous utiliserons un fichier Excel que vous retrouverez dans lEspace membres
du blog Votre Assistante.

Utilisation dun formulaire de saisie Excel de base :


Pour afficher le formulaire, nous avons besoin dun bouton qui, dans la version 2013, napparat
pas par dfaut. Pour le faire apparatre, allez dans longlet Fichier > Options > Personnaliser
le ruban. Dans la partie droite, slectionnez lun de vos onglets et cliquez sur le bouton
Nouveau groupe, puis, dans la partie gauche, dans le menu droulant, choisissez Toutes les
commandes et recherchez Formulaires, cliquez sur Ajouter >>.
Si, par la suite, vous souhaitez supprimer ce bouton, il suffira de vous placer sur ce nouveau
groupe ( droite) et de cliquer sur << Supprimer. Vous pouvez le renommer si vous le dsirez.
Profitez-en pour cocher longlet Dveloppeur sil est dcoch (et que vous souhaitez crer un
formulaire personnalis). Cliquez sur Ok.

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
1

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Dsormais, dans longlet que vous avez slectionn pour votre nouveau bouton, vous avez une
nouvelle icne :

Pour utiliser le formulaire classique, cliquez dessus. Attention, si vous cliquez dessus mais
quaucune donne nexiste dans votre fichier, le formulaire napparatra pas.
Vous avez tous vos champs qui ont t repris avec leurs donnes. droite, vous avez :

Le nombre de fiches et votre position ;

Nouvelle : vous ajouterez un nouvel enregistrement ;

Supprimer : vous supprimerez la fiche en cours ;

Restaurer : vous restaurerez les modifications effectues sur un enregistrement ;

Prcdente : vous vous dplacerez vers la fiche prcdente ;

Suivante : vous vous dplacerez vers la fiche suivante ;

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
2

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Critres : vous permettra de faire une recherche. Saisissez votre lment rechercher dans
le champ correspondant et appuyez sur Entre. Cliquez sur Grille pour rebasculer en mode
normal si vous navez fait aucune recherche ;

Fermer (ou la croix rouge

) : vous fermerez le formulaire.

noter que le bouton cr ne servira que pour le formulaire de base. Si vous crez un formulaire
personnalis et cliquez sur ce bouton, cest le formulaire de base qui apparatra.

Cration dun formulaire de saisie Excel personnalis :


Pour crer ce formulaire, nous allons utiliser du code VBA. Rendez-vous dans longlet

Dveloppeur > Visual Basic

Cliquez sur Insertion > UserForm pour obtenir un UserForm vierge :

Pour commencer, nous allons insrer des zones de textes, listes droulantes et boutons.
Agrandissez le formulaire en utilisant les poignes situes tout autour.
Si la Bote outils nest pas visible, allez dans le menu Affichage > Bote outils.
Dans cette bote, cliquez sur Zone de liste modifiable

et cliquez sur lUserForm sur la partie

gauche pour crer votre premire ComboBox qui sera la liste droulante du Code client, puis,
crez-en une autre pour la Civilit vers la droite.
Cliquez ensuite sur Zone de texte

et crez-en 7 sous la ComboBox2, ce seront des TextBox.

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
3

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Pour donner un nom ces cases, utilisez licne Intitul

et placez-en un devant chaque

ComboBox et TextBox.
Dans lordre, en partant de la premire ComboBox vers la septime TextBox, vous devez avoir
les libells suivants :

Code client

Civilit

Prnom

Nom

Adresse

Code Postal

Ville

Tlphone

E-mail

Ces libells correspondent aux en-ttes de colonnes de notre fichier Excel et ne servent qu
vous indiquer le nom de la zone.
Enfin, crez 3 boutons au bas de lUserForm avec licne Bouton de commande

. Modifiez

chacun de leurs noms soit en cliquant dessus (pas de double-clic sinon vous passerez en mode
Code), soit en faisant un clic droit > Proprits

et en modifiant le nom la ligne

Caption.
Pour CommandButton1, indiquez Nouveau contact, puis, pour le deuxime, Modifier et, pour
le dernier, Quitter. Ne renommez pas les ComboBox, TextBox et CommandButton, dans les
Proprits, la ligne Name, ou alors vous devrez indiquer vos propres noms dans le code VBA
pour que cela fonctionne.

Pour renommer UserForm1 qui sera le nom de la bote de dialogue du formulaire, cliquez sur
le formulaire et, la ligne Caption, des Proprits, saisissez Saisie des coordonnes clients ou
le nom de votre choix.
Pour modifier la couleur de fond du formulaire, cliquez sur la flche

qui apparat lorsque

vous cliquez sur la ligne BackColor. Cliquez sur longlet Palette pour avoir plus de choix et
choisissez une couleur. Slectionnez ensuite les intituls, modifiez leur couleur dcriture sur

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
4

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

la ligne ForeColor et leur police la ligne Font en cliquant sur

et indiquez la mme couleur

que pour le formulaire la ligne BackColor pour viter davoir des cadres.
Indiquez la mme police aux 3 boutons de commande en les slectionnant.

Replacez tous les lments du formulaire si besoin en les dplaant et en les agrandissant grce
aux poignes. Noubliez pas dlargir les TextBox, notamment des champs Adresse et E-mail,
sinon il y aura un risque que lensemble des donnes napparaisse pas.

Vous pouvez dj voir le rsultat en cliquant sur le formulaire, puis, sur la touche F5.
Cependant, comme vous pouvez le constater, rien ne fonctionne puisque rien nest en lien et
nous devons le faire avec du VBA. Retournez en Mode cration en fermant le formulaire.
Passez en mode VBA en double-cliquant sur le formulaire et remplacez ce qui est saisi par
dfaut par :
Option Explicit
Dim Ws As Worksheet
Pour le formulaire
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
ComboBox2.ColumnCount = 1 Pour la liste droulante Civilit
ComboBox2.List() = Array("", "M.", "Mme", "Mlle")
Set Ws = Sheets("Clients") Correspond au nom de votre onglet dans le fichier Excel
With Me.ComboBox1
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 7
Me.Controls("TextBox" & I).Visible = True
Next I
End Sub
Article crit par Lydia Provin du blog
Votre Assistante Le Blog : http://www.votreassistante.net/blog
5

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Les textes apparaissant en vert sont des commentaires qui ne sont pas pris en compte dans le
code car ils sont prcds dune apostrophe et ne sont prsents qu titre informatif.
La ComboBox2 contiendra, dans une liste droulante, les lments M., Mme ou Mlle.
Si votre onglet se nomme autrement que Clients, noubliez pas de modifier le nom dans le code.

Pour la liste droulante Code client, saisissez la suite :


Pour la liste droulante Code client
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer

If Me.ComboBox1.ListIndex = -1 Then Exit Sub


Ligne = Me.ComboBox1.ListIndex + 2
ComboBox2 = Ws.Cells(Ligne, "B")
For I = 1 To 7
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
Next I
End Sub

Pour le bouton Nouveau contact, saisissez la suite :


Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous linsertion de ce nouveau contact ?", vbYesNo, "Demande de
confirmation dajout") = vbYes Then
L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1 Pour placer le nouvel
enregistrement la premire ligne de tableau non vide
Range("A" & L).Value = ComboBox1
Range("B" & L).Value = ComboBox2
Range("C" & L).Value = TextBox1
Range("D" & L).Value = TextBox2
Range("E" & L).Value = TextBox3
Range("F" & L).Value = TextBox4
Article crit par Lydia Provin du blog
Votre Assistante Le Blog : http://www.votreassistante.net/blog
6

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Range("G" & L).Value = TextBox5


Range("H" & L).Value = TextBox6
Range("I" & L).Value = TextBox7
End If
End Sub
La phrase Confirmez-vous linsertion de ce nouveau contact? indique la question qui sera pose
lors du clic sur le bouton Nouveau contact et Demande de confirmation dajout au titre de la
bote de dialogue.

Pour le bouton Modifier, saisissez la suite :


Pour le bouton Modifier
Private Sub CommandButton2_Click()
Dim Ligne As Long
Dim I As Integer

If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de


confirmation de modification") = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
Ws.Cells(Ligne, "B") = ComboBox2
For I = 1 To 7
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
End If
Next I
End If
End Sub
La phrase Confirmez-vous la modification de ce contact ? indique la question qui sera pose
lors du clic sur le bouton Modifier et Demande de confirmation de modification au titre de la
bote de dialogue.
Enfin, pour le bouton Quitter, saisissez la suite :
Pour le bouton Quitter
Private Sub CommandButton3_Click()
Article crit par Lydia Provin du blog
Votre Assistante Le Blog : http://www.votreassistante.net/blog
7

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Unload Me
End Sub

Attention, si vous avez plus ou moins de 7 TextBox noubliez pas de modifier le chiffre 7 aux
lignes For I = 1 To 7 dans les parties Formulaire, Code client et Bouton modifier et rajouter
une ligne la suite de Range("I" & L).Value = TextBox7 dans la partie Nouveau contact.

Dsormais, vous pouvez appuyer sur F5 pour tester le formulaire.

Il se peut quen utilisant la touche (tabulation), votre curseur ne se dplace pas comme vous
le souhaitiez, notamment si vous ne crez pas vos Contrles dans lordre. Pour remdier ce
problme, cliquez droit sur votre formulaire en Mode cration et cliquez sur Ordre de
tabulation, galement accessible dans le menu Affichage.

Vous navez plus qu monter et descende les lments pour les mettre dans lordre dsir et
cliquer sur Ok sachant que lemplacement des Labels na pas dimportance :

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
8

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Si vous avez besoin de modifier le formulaire, retournez dans Visual Basic

. Dans

lExplorateur de projet, en cliquant droit sur lUserForm1, vous pourrez basculer entre Code
et Afficher lobjet :

Pour terminer, nous allons crer une macro pour lancer ce formulaire et nous viter de devoir
retourner dans Visual Basic chaque fois que nous en aurons besoin. Dans longlet

Dveloppeur, cliquez sur Macros

. Donner un nom celle-ci comme

Lancer_formulaire et cliquez sur Crer. Entre les deux lignes prsentes dans Visual Basic,

saisissez UserForm1.Show vbModeless. Fermez la fentre, recliquez sur Macros

choisissez la macro cre, cliquez sur Options et choisissez votre raccourci. Selon la lettre

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
9

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

choisie, le raccourci comportera la touche Shift ou non pour ne pas remplacer un raccourci
existant :

Cliquez sur Ok, fermez la bote de dialogue et, pour lancer votre formulaire, vous naurez plus
qu utiliser le raccourci cr.

Enfin, noubliez pas denregistrer votre fichier dans un format prenant en compte les macros en
allant dans le menu Fichier > Enregistrer sous. Choisissez un emplacement et le type Classeur
Excel (prenant en charge les macros).

Si vous ne souhaitez pas avoir la notification suivante louverture du fichier :

Vous pouvez la dsactiver en allant dans le menu Fichier > Options > Centre de gestion de
la confidentialit > Paramtres du Centre de gestion de la confidentialit > Paramtres
des macros > Activer toutes les macros.

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
10

Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 17/10/2013

Cependant, ceci nest pas recommand

Vous avez dsormais le choix entre saisir les donnes de manire classique dans la feuille
de calculs, les saisir dans le formulaire de saisie de base ou les saisir dans votre nouveau
formulaire personnalis.

Article crit par Lydia Provin du blog


Votre Assistante Le Blog : http://www.votreassistante.net/blog
11