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

Notions à retenir

  • Excel propose un formulaire par défaut basique, mais un formulaire personnalisé VBA offre plus de fonctionnalités (listes déroulantes, design personnalisé)
  • La création nécessite l’onglet Développeur, Visual Basic et du code VBA pour gérer les interactions
  • Le fichier doit être sauvegardé au format .XLSM pour préserver les macros

Formulaire de saisie Excel par défaut

Pour accéder au formulaire de base, activez d’abord le bouton correspondant. Allez dans Fichier > Options > Personnaliser le ruban. Sélectionnez un onglet à droite, cliquez sur « Nouveau groupe », puis dans la partie gauche choisissez « Toutes les commandes » et recherchez « Formulaires… ». Cliquez sur « Ajouter ». Cochez également l’onglet « Développeur » si nécessaire.

Configuration du ruban Excel pour ajouter le formulaire

Le formulaire classique reprend automatiquement tous vos champs avec les fonctions suivantes :
– Nouvelle/Supprimer : ajouter ou supprimer des fiches
– Restaurer : annuler les modifications
– Précédente/Suivante : navigation entre enregistrements
– Critères : fonction de recherche
– Fermer : quitter le formulaire

Création du formulaire personnalisé

Rendez-vous dans Développeur > Visual Basic > Insertion > UserForm. Agrandissez le formulaire vierge avec les poignées.

Dans la Boîte à outils (menu Affichage si non visible), créez :
– 2 « Zone de liste modifiable » (ComboBox) pour Code client et Civilité
– 7 « Zone de texte » (TextBox) pour les autres champs
– Des « Intitulés » devant chaque élément avec les libellés : Code client, Civilité, Prénom, Nom, Adresse, Code Postal, Ville, Téléphone, E-mail
– 3 « Bouton de commande » nommés « Nouveau contact », « Modifier » et « Quitter »

Interface de création du formulaire personnalisé Excel

Personnalisez l’apparence via les Propriétés : Caption pour les titres, BackColor pour les couleurs de fond, ForeColor pour les couleurs de texte, Font pour les polices.

Code VBA du formulaire

Double-cliquez sur le formulaire pour accéder au code VBA. Remplacez le contenu 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
ComboBox2.List() = Array("", "M.", "Mme", "Mlle")

Set Ws = Sheets("Clients")

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

Ajoutez ensuite le code pour chaque fonctionnalité :

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 » :

Private Sub CommandButton1_Click()
Dim L As Integer

If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1

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
Range("G" & L).Value = TextBox5
Range("H" & L).Value = TextBox6
Range("I" & L).Value = TextBox7
End If
End Sub

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

Pour le bouton « Quitter » :

Private Sub CommandButton3_Click()
Unload Me
End Sub

Finalisation et utilisation

Testez le formulaire avec F5. Pour corriger l’ordre de tabulation, clic droit sur le formulaire > Ordre de tabulation.

Créez une macro de lancement : Développeur > Macros > nom « Lancer_formulaire » > Créer. Saisissez entre les lignes : UserForm1.Show vbModeless

Définissez un raccourci dans Macros > Options.

Enregistrez obligatoirement le fichier au format .XLSM (Fichier > Enregistrer sous > Classeur Excel prenant en charge les macros) pour conserver les fonctionnalités VBA.

Pour éviter les notifications de sécurité à l’ouverture, allez dans Fichier > Options > Centre de gestion de la confidentialité > Paramètres du Centre de gestion de la confidentialité > Paramètres des macros > Activer toutes les macros (non recommandé pour la sécurité).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

38 − 36 =
Powered by MathCaptcha

Retour en haut