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

  • Upload
    pointbf

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    1/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    1

    Crer un formulaire personnalis pour saisir des donnes sur Excel

    Avec Excel, il est possible dutiliser un formulaire de saisie disponiblepar dfaut. Cependant,

    il reste quelque peu basique et ne vous permet pas, par exemple, d

    utiliser des listes droulantes.Nous allons donc, dans ce tutoriel, crer un formulaire de saisie personnalis avec Exceltant

    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

    commandeset 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

  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    2/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    2

    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 ficheset 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 ;

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    3/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    3

    Critres :vous permettra de faire une recherche. Saisissez votre lment rechercher dans

    le champ correspondant et appuyez surEntre. Cliquez sur Grillepour 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> UserFormpour 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 outilsnest pas visible, allez dans le menu Affichage> Bote outils.

    Dans cette bote, cliquez surZone de liste modifiable et cliquez sur lUserForm sur la partie

    gauche pour crer votre premire ComboBoxqui sera la liste droulante du Code client, puis,

    crez-en une autre pour la Civilitvers la droite.

    Cliquez ensuite surZone de texte et crez-en 7 sous la ComboBox2, ce seront des TextBox.

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    4/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    4

    Pour donner un nom ces cases, utilisez licneIntitul et placez-en un devant chaque

    ComboBoxet TextBox.

    Dans lordre, en partant de la premire ComboBoxvers 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 licneBouton 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, indiquezNouveau contact, puis, pour le deuxime,Modifieret, pour

    le dernier, Quitter. Ne renommez pas les ComboBox, TextBox et CommandButton, dans les

    Proprits, la ligneName, ou alors vous devrez indiquer vos propres noms dans le code VBA

    pour que cela fonctionne.

    Pour renommer UserForm1qui sera le nom de la bote de dialogue du formulaire, cliquez surle formulaire et, la ligne Caption, des Proprits, saisissez Saisie des coordonnes clientsou

    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 longletPalettepour avoir plus de choix et

    choisissez une couleur. Slectionnez ensuite les intituls, modifiez leur couleur dcriture sur

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    5/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    5

    la ligneForeColoret leur police la ligneFonten cliquant sur et indiquez la mme couleur

    que pour le formulaire la ligneBackColorpour 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 champsAdresseetE-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

    DimWs AsWorksheet

    Pour le formulaire

    Private SubUserForm_Initialize()

    DimJ As Long

    DimI As Integer

    ComboBox2.ColumnCount = 1 Pour la liste droulante Civilit

    ComboBox2.List() = Array("", "M.", "Mme", "Mlle")

    SetWs = Sheets("Clients") Correspond au nom de votre onglet dans le fichier Excel

    WithMe.ComboBox1

    ForJ = 2 ToWs.Range("A" & Rows.Count).End(xlUp).Row

    .AddItem Ws.Range("A" & J)

    NextJ

    End With

    ForI = 1 To7

    Me.Controls("TextBox" & I).Visible = True

    NextI

    End Sub

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    6/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    6

    Les textes apparaissant en vertsont 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 ComboBox2contiendra, dans une liste droulante, les lmentsM.,MmeouMlle.

    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 SubComboBox1_Change()

    DimLigne As Long

    DimI As Integer

    IfMe.ComboBox1.ListIndex = -1 Then Exit Sub

    Ligne = Me.ComboBox1.ListIndex + 2

    ComboBox2 = Ws.Cells(Ligne, "B")

    ForI = 1 To7

    Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)

    NextI

    End Sub

    Pour le bouton Nouveau contact, saisissez la suite :

    Pour le bouton Nouveau contact

    Private SubCommandButton1_Click()

    DimL As Integer

    IfMsgBox("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 nouvelenregistrement 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

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    7/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    7

    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 contactetDemande de confirmation dajout au titre de la

    bote de dialogue.

    Pour le bouton Modifier, saisissez la suite :

    Pour le bouton Modifier

    Private SubCommandButton2_Click()

    DimLigne As Long

    DimI As Integer

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

    confirmation de modification") = vbYes Then

    IfMe.ComboBox1.ListIndex = -1 Then Exit Sub

    Ligne = Me.ComboBox1.ListIndex + 2

    Ws.Cells(Ligne, "B") = ComboBox2

    ForI = 1 To7

    IfMe.Controls("TextBox" & I).Visible = True Then

    Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)

    End If

    NextI

    End IfEnd Sub

    La phrase Confirmez-vous la modification de ce contact ?indique la question qui sera pose

    lors du clic sur le bouton ModifieretDemande de confirmation de modificationau titre de la

    bote de dialogue.

    Enfin, pour le bouton Quitter, saisissez la suite :

    Pour le bouton Quitter

    Private SubCommandButton3_Click()

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    8/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    8

    Unload Me

    End Sub

    Attention, si vous avez plus ou moins de 7 TextBoxnoubliez pas de modifier le chiffre 7aux

    lignesFor I = 1 To 7dans les partiesFormulaire, Code clientetBoutonmodifieret rajouter

    une ligne la suite deRange("I" & L).Value = TextBox7dans la partieNouveau contact.

    Dsormais, vous pouvez appuyer surF5pour 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 Contrlesdans lordre. Pour remdier ceproblme, 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 Oksachant que lemplacement desLabelsna pas dimportance :

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    9/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    9

    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

    etAfficher 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_formulaireet 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 Optionset choisissez votre raccourci. Selon la lettre

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    10/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    10

    choisie, le raccourci comportera la touche Shiftou 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.

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog
  • 7/21/2019 Crer-un-formulaire-personnalis-pour-saisir-des-donnes-sur-Excel.pdf

    11/11

    Votr e AssistanteLe Blog :http://www.votreassistante.net/blog- le 17/10/2013

    Ar ticle cri t par Lydia Provin du blogVotr e AssistanteLe Blog :http://www.votreassistante.net/blog

    11

    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.

    http://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/bloghttp://www.votreassistante.net/blog