Créer un formulaire personnalisé pour saisir des données sur Excel
11 pages
Français

Créer un formulaire personnalisé pour saisir des données sur Excel

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
11 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Tutoriel pour apprendre à utiliser le formulaire Excel et à créer un formulaire personnalisé pour saisir des données Excel. Comment créer des ComboBox, TextBox et CommandButton en VBA ? Comment créer une liste déroulante en VBA ?

Sujets

Informations

Publié par
Publié le 19 janvier 2021
Nombre de lectures 178
Licence : Tous droits réservés
Langue Français

Extrait

Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Créer un formulaire personnalisé pour saisir des données sur Excel
Avec Excel, il est possible dutiliser un formulaire de saisiedisponiblepar défaut. Cependant, il reste quelque peu basique et ne vous permet pas, par exemple, dutiliser des listes déroulantes. Nous allons donc, dans ce tutoriel,créer un formulaire de saisie personnalisé avec Exceltant au niveau de la saisie des données que de la présentation. Pour ce tutoriel, nous utiliserons un fichier Excel que vous retrouverezau bas de l’article. Utilisation dun formulaire de saisie Excel de base Pour afficher le formulaire, nous avons besoin dun bouton qui, dans la version 2013, napparaît pas par défaut. Pour le faire apparaître, allez dans longletFichier>Options>Personnaliser le ruban. Dans la partie droite, sélectionnez lun de vos onglets et cliquez sur le bouton Nouveau groupe, puis, dans la partie gauche, dans le menu déroulant, choisissezToutes les commandeset recherchezFormulaires…, cliquez surAjouter >>. 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 désirez. Profitez-en pour cocher longletDéveloppeursil est décoché (et que vous souhaitez créer un
formulaire personnalisé). Cliquez surOk.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
1
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Désormais, dans longlet que vous avez sélectionné pour votre nouveau bouton, vous avez une nouvelle icône :
Pour utiliser le formulaire classique, cliquez dessus. Attention, si vous cliquez dessus, mais quaucune donnée nexiste dans votre fichier, le formulaire napparaîtra pas. Vous avez tous vos champs qui ont été repris avec leurs données. À droite, vous avez : Lenombre de ficheset votre position ;
Nouvelle :vous ajouterez un nouvel enregistrement ; Supprimer :vous supprimerez la fiche en cours ; Restaurer :vous restaurerez les modifications effectuées sur un enregistrement ; Précédente :vous vous déplacerez vers la fiche précédente ; Suivante :vous vous déplacerez vers la fiche suivante ; Critères :vous permettra de faire une recherche. Saisissez votre élément à rechercher dans le champ correspondant et appuyez surEntrée. Cliquez surGrillepour 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 créez un formulaire personnalisé et cliquez sur ce bouton, cest le formulaire de base qui apparaîtra. Création dun formulaire de saisie Excel personnalisé Pour créer ce formulaire, nous allons utiliser ducode VBA. Rendez-vous dans longlet
Développeur>Visual Basic
.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
2
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Cliquez surInsertion>UserFormpour obtenir un UserForm vierge :
Pour commencer, nous allons insérer des zones de textes, listes déroulantes et boutons. Agrandissez le formulaire en utilisant les poignées situées tout autour. Si laBoîte à outilsnest pas visible, allez dans le menuAffichage>Boîte à outils.
Dans cette boîte, cliquez surZone de liste modifiablecliquez sur l et UserForm sur la partie gauche pour créer votre premièreComboBoxqui sera la liste déroulante duCode client, puis, créez-en une autre pour laCivilitévers la droite.
Cliquez ensuite surZone de texte
et créez-en 7 sous laComboBox2, ce seront desTextBox.
Pour donner un nom à ces cases, utilisez licôneIntitulé et placez-en un devant chaque ComboBoxetTextBox. Dans lordre, en partant de la premièreComboBoxvers la septièmeTextBox, vous devez avoir les libellés suivants : Code client ; Civilité ; Prénom ; Nom ; Adresse ; Code Postal ; Ville ; Téléphone ; E-mail.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
3
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Ces libellés correspondent aux en-têtes de colonnes de notre fichier Excel et ne servent quà vous indiquer le nom de la zone.
Enfin, créez 3 boutons au bas de lUserForm avec licôneBouton 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 >Propriétéset en modifiant le nom à la ligne Caption. PourCommandButton1, indiquezNouveau contact, puis, pour le deuxième,Modifieret, pour le dernier,Quitter. Ne renommez pas lesComboBox,TextBox etCommandButton, dans les Propriétés, à la ligneName, ou alors vous devrez indiquer vos propres noms dans le code VBA pour que cela fonctionne. Pour renommerUserForm1qui sera le nom de la boîte de dialogue du formulaire, cliquez sur le formulaire et, à la ligneCaption, desPropriétés, saisissezSaisie des coordonnées clientsou le nom de votre choix.
Pour modifier la couleur de fond du formulaire, cliquez sur la flèchequi apparaît lorsque vous cliquez sur la ligneBackColor. Cliquez sur longletPalettepour avoir plus de choix et choisissez une couleur. Sélectionnez ensuite les intitulés, modifiez leur couleur décriture sur
la ligneForeColoret leur police à la ligneFontet indiquez la même couleuren cliquant sur que pour le formulaire à la ligneBackColorpour éviter davoir des cadres. Indiquez la même police aux 3 boutons de commande en les sélectionnant. Replacez tous les éléments du formulaire si besoin en les déplaçant et en les agrandissant grâce aux poignées. Noubliez pas délargir lesTextBox, notamment des champsAdresseetE-mail, sinon il y aura un risque que lensemble des données napparaisse pas. Vous pouvez déjà voir le résultat en cliquant sur le formulaire, puis sur la toucheF5. Cependant, comme vous pouvez le constater, rien ne fonctionne puisque rien nest en lien et nous devons le faire avec du VBA. Retournez enMode créationen fermant le formulaire. Passez en mode VBA en double-cliquant sur le formulaire et remplacez ce qui est saisi par défaut par :
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Option Explicit Dim Ws As Worksheet Pour le formulaire Private Sub UserForm_Initialize() Dim J As Long Dim I As Integer ComboBox2.ColumnCount = 1Pour la liste déroulante CivilitéComboBox2.List() = Array("", "M.", "Mme", "Mlle") Set Ws = Sheets("Clients")Correspond au nom de votre onglet dans le fichier ExcelWith 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 Les textes apparaissanten vertsont des commentaires qui ne sont pas pris en compte dans le code, car ils sont précédés dune apostrophe et ne sont présents quà titre informatif. LaComboBox2contiendra, dans une liste déroulante, les élémentsM.,MmeouMlle. Si votre onglet se nomme autrement queClients, noubliez pas de modifier le nom dans le code. Pour la liste déroulante Code client, saisissez à la suite :
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
5
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Pour la liste déroulante 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 + 1Pour placer le nouvel enregistrement à la première ligne de tableau non videRange("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 Range("G" & L).Value = TextBox5 Range("H" & L).Value = TextBox6 Range("I" & L).Value = TextBox7 End If End Sub
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
1 2 3 4
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
La phraseConfirmez-vous linsertion de ce nouveau contact?indique la question qui sera posée lors du clic sur le boutonNouveau contactetDemande de confirmation dajoutau titre de la boîte 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 phraseConfirmez-vous la modification de ce contact ?indique la question qui sera posée lors du clic sur le boutonModifieretDemande de confirmation de modificationau titre de la boîte de dialogue. Enfin, pour le bouton Quitter, saisissez à la suite : Pour le bouton Quitter Private Sub CommandButton3_Click() Unload Me End Sub
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
7
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Attention, si vous avez plus ou moins de 7TextBoxnoubliez pas de modifier le chiffre7aux lignesFor I = 1 To 7dans les partiesFormulaire,Code clientetBoutonmodifieret à rajouter une ligne à la suite deRange("I" & L).Value = TextBox7dans la partieNouveau contact. Désormais, vous pouvez appuyer surF5pour tester le formulaire :
Il se peut quen utilisant la touche(tabulation), votre curseur ne se déplace pas comme vous le souhaitiez, notamment si vous ne créez pas vosContrôlesdans lordre. Pour remédier à ce problème, cliquez droit sur votre formulaire enMode création et cliquez surOrdre de tabulation, également accessible dans le menuAffichage.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
8
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Vous navez plus quà monter et descende les éléments pour les mettre dans lordre désiré et à cliquer surOksachant que lemplacement desLabelsna pas dimportance :
Si vous avez besoin de modifier le formulaire, retournez dansVisual Basic . Dans lExplorateur de projet, en cliquant droit sur lUserForm1, vous pourrez basculer entreCodeetAfficher lobjet:
Pour terminer, nous allons créer une macro pour lancer ce formulaire et nous éviter de devoir retourner dansVisual Basicchaque fois que nous en aurons besoin. Dans l à onglet
Développeur, cliquez surMacros. Donner un nom à celle-ci comme Lancer_formulaire et cliquez surCréer. Entre les deux lignes présentes dansVisual Basic,
saisissezUserForm1.Show vbModeless. Fermez la fenêtre, recliquez surMacros, choisissez la macro créée, cliquez surOptions et choisissez votre raccourci. Selon la lettre
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
9
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
choisie, le raccourci comportera la toucheShiftnon pour ne pas remplacer un raccourci ou existant :
Cliquez surOk, fermez la boîte 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 menuFichier>Enregistrer sous. Choisissez un emplacement et le typeClasseur Excel (prenant en charge les macros). Si vous ne souhaitez pas avoir la notification suivante à louverture du fichier :
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
10
Votre Assistante :https://www.votreassistante.net- le 17/10/2013
Vous pouvez la désactiver en allant dans le menuFichier>Options>Centre de gestion de la confidentialité>Paramètres du Centre de gestion de la confidentialité >Paramètres des macros>Activer toutes les macros.
Cependant, ceci nest pas recommandéVous avez désormais le choix entre saisir les données de manière classique dans la feuille de calculs, les saisir dans le formulaire de saisie de base ou les saisir dans votre nouveau formulaire personnalisé. Tutoriel réalisé avec Excel 2013 Voir la version vidéo de cet article
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
11
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents