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.

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 »

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é).