AccueilLogicielMs ExcelCréer des formulaires interactifs en Excel VBA ActiveX

Créer des formulaires interactifs en Excel VBA ActiveX

Les contrôles ActiveX sont des composants interactifs qui peuvent être utilisés dans Microsoft Excel pour améliorer les capacités des feuilles de calcul. À l’aide des contrôles ActiveX, les utilisateurs peuvent créer des interfaces plus attrayantes et plus flexibles, telles que des zones de texte, des zones de liste, des zones de liste déroulante, des cases à cocher et des boutons d’option.

Cette fonctionnalité est optimisée par Visual Basic pour applications (VBA), qui permet aux utilisateurs d’écrire du code pour organiser les interactions entre les utilisateurs et les feuilles de calcul Excel.

La présence d’ActiveX dans Excel VBA est essentielle car elle offre un large éventail d’avantages.  Les contrôles ActiveX offrent des interactions plus intuitives, telles que le choix dans une liste ou la saisie de texte. De plus, avec VBA, les utilisateurs peuvent personnaliser le comportement et l’apparence des contrôles selon leurs besoins, par exemple en remplissant automatiquement les zones de liste déroulante à partir de la base de données.

ActiveX permet également de réduire les erreurs de saisie en fournissant des contrôles structurés, tels qu’une case à cocher pour les options Oui/Non. Les contrôles ActiveX peuvent être intégrés aux macros VBA, ce qui permet l’automatisation de diverses tâches, notamment la validation des données et la création de rapports dynamiques.

ActiveX Controls

Différence entre les contrôles ActiveX et les contrôles de formulaire dans Excel

Dans Excel, il existe deux principaux types de contrôles que vous pouvez utiliser : ActiveX Controls et Form Controls.

ComparaisonActiveX ControlsForm Controls
InteractivitéPlus dynamique, programmable avec VBAMoins flexible, uniquement pour les fonctions essentielles
PersonnalisationRedimensionnement, couleur et autres propriétésLimitations des paramètres d’affichage
CompatibilitéNe fonctionne que sous Windows et nécessite VBAPeut être utilisé sur Windows et Mac
Facilité d’utilisationBesoin de comprendre VBA pour une configuration avancéeFacile à utiliser sans codage
RéactivitéPeut répondre à des événements tels que des clics, des survols ou des entréesNe dispose que de fonctions de base telles que l’exécution de macros

Si vous avez besoin de contrôles plus complexes et d’une intégration avec VBA, les contrôles ActiveX sont la solution. Cependant, si vous souhaitez simplement utiliser de simples boutons ou listes sans avoir besoin de programmation, les contrôles de formulaire suffiront.

Activation des contrôles ActiveX dans Excel

Si ActiveX Controls ne fonctionnent pas dans Excel, les paramètres de sécurité intégrés d’Excel limitent probablement cette fonctionnalité. Microsoft restreint automatiquement l’utilisation de ActiveX Controls pour éviter les risques de sécurité, tels que l’exécution de code malveillant provenant de sources non fiables. Par conséquent, vous devez modifier les paramètres de sécurité dans le Trust Center afin qu’Excel puisse utiliser ActiveX Controls plus librement. Vous pouvez activer une option qui permet aux contrôles ActiveX de fonctionner sans restrictions ou de demander une confirmation avant de les activer.

Escalier:

  1. Ouvrez l’application Microsoft Excel.
  2. Cliquez sur le menu File, puis sélectionnez Options et passez à Trust Center.
  3. Dans la fenêtre qui s’affiche, sélectionnez Trust Center Settings….
  4. Dans le panneau de gauche, recherchez et sélectionnez ActiveX Settings.
  5. Vous verrez plusieurs options ; Choisissez l’une des options suivantes :
    • Enable all controls without restrictions and without prompting (Activez tous les contrôles sans restrictions ni demandes de confirmation).
    • Ou, si vous souhaitez un niveau de sécurité plus élevé, choisissez Prompt me before enabling all controls with minimal restrictions (Demandez confirmation avant d’activer tous les contrôles avec des restrictions minimales).
  6. Après avoir choisi, cliquez sur OK et fermez toutes les fenêtres de paramètres qui s’ouvrent.

Types de contrôles ActiveX et comment les utiliser

Dans Excel VBA, ActiveX Controls sont utilisés pour améliorer l’interactivité et l’automatisation dans les feuilles de calcul. Voici quelques-unes des commandes les plus couramment utilisées et comment les utiliser.

1. Encadré

Le Text Box permet aux utilisateurs de saisir ou d’afficher du texte dans un UserForm ou une feuille de calcul Excel. Avec VBA, nous pouvons définir le contenu du Text Box, soit en remplissant les données automatiquement, soit en recevant des informations des utilisateurs.

Comment faire pour créer une zone de texte dans Excel VBA

  1. Ouvrez Excel et activez l’  onglet Developer.
  2. Sélectionnez Developer > Insert > Text Box (ActiveX Controls).
  3. Cliquez et faites glisser pour créer un Text Box sur la feuille de calcul.
  4. Pour ajouter un code VBA, faites un clic droit sur Text Box puis sélectionnez View Code.

Exemple de code VBA pour remplir automatiquement les zones de texte

Le code suivant remplira automatiquement le Text Box avec du texte lorsqu’il s’exécutera :

TextBox1.Text “Data imported successfully”

2. Boîte de liste

List Box est un élément de contrôle qui sert à afficher une liste de sélections, permettant à l’utilisateur de sélectionner un ou plusieurs éléments. Ceci est particulièrement utile dans les formulaires de saisie de données ou pour la navigation entre les pages dans les applications qui utilisent Excel VBA.

Comment faire pour ajouter des données à une zone de liste dans Excel VBA

  1. Ouvrez l’  onglet Developer dans Excel.
  2. Sélectionnez Insert > List Box (ActiveX Controls).
  3. Cliquez et faites glisser pour placer le List Box sur la feuille de calcul.
  4. Faites un clic droit sur List Box > Properties.

Exemple de code VBA pour ajouter des éléments à la zone de liste

Utilisez le code VBA suivant pour ajouter plusieurs noms de ville à l’List Box :

With Sheet1.ListBox1
 .AddItem “Jakarta”
 .AddItem “Surabaya”
 .AddItem “Bandung”
End With

Ce code peut être placé dans Workbook_Open événement afin que les données soient chargées automatiquement lors de l’ouverture du fichier.

Connexion de zones de liste avec des cellules dans Excel

Pour afficher les éléments sélectionnés de l’List Box dans une cellule spécifique, effectuez les opérations suivantes :

  1. Faites un clic droit sur List Box, puis sélectionnez Properties.
  2. Recherchez la propriété LinkedCell, puis entrez l’adresse de la cellule (exemple : D3).
  3. Désormais, chaque fois que l’utilisateur sélectionne un élément dans le List Box, la valeur apparaîtra dans la cellule D3.

Si vous souhaitez récupérer la valeur sélectionnée à l’aide de VBA, utilisez le code suivant :

Range(“D3”).Value =ListBox1.Value

3. Boîte combo

Combo Box est un contrôle ActiveX dans Excel VBA qui sert de liste d’options qui peuvent être déroulées. Les utilisateurs peuvent sélectionner un seul élément dans la liste ou taper son texte. Un Combo Box est souvent utilisé dans les formulaires de saisie pour minimiser les erreurs lors de la saisie des données, car les utilisateurs ne peuvent choisir que parmi les options qui ont été fournies.

Comment ajouter des données dynamiques à une liste déroulante

Pour ajouter un Combo Box à une feuille de calcul, procédez comme suit :

  1. Ouvrez Excel et assurez-vous que l’ onglet Developer est activé.
  2. Cliquez sur Developer > Insert > Combo Box (ActiveX Controls).
  3. Cliquez et faites glisser pour dessiner Combo Box dans la feuille de calcul.
  4. Faites un clic droit sur Combo Box, puis sélectionnez Properties.

Exemple de code VBA pour ajouter dynamiquement des éléments à une liste déroulante

Utilisez le code suivant pour ajouter automatiquement des éléments au Combo Box lorsque le classeur est ouvert ou que l’on clique sur le bouton :

ComboBox.Add Item “Option 1”
ComboBox1.Add Item “Option 2”
ComboBox1.Add Item “Option 3”

Connexion de zones de liste déroulante avec des cellules dans Excel

Pour enregistrer la valeur sélectionnée dans le Combo Box dans une cellule spécifique, procédez comme suit :

  1. Faites un clic droit sur Combo Box, puis sélectionnez Properties.
  2. Recherchez la propriété LinkedCell, puis entrez l’adresse de la cellule (par exemple, D3).
  3. Désormais, chaque fois que l’utilisateur sélectionne un élément dans le Combo Box, cette valeur apparaîtra dans la cellule D3.

Vous pouvez également utiliser le code VBA suivant pour enregistrer la valeur de l’option dans la cellule :

Range(“D3”).Value  ComboBox1.Value

4. Case à cocher

Check Box est un contrôle qui permet à l’utilisateur de sélectionner l’option Ya/Tidak ou True/False. Ceci est utile pour les entrées binaires telles que la confirmation du consentement, la sélection d’une fonctionnalité ou l’activation/désactivation d’une fonction dans un formulaire.

Utilisation de la case à cocher pour enregistrer les valeurs vrai/faux

Pour ajouter un Check Box dans Excel VBA, procédez comme suit :

  1. Ouvrez l’  onglet Developer dans Excel.
  2. Cliquez sur Insert > Check Box (ActiveX Controls).
  3. Cliquez et faites glisser pour placer le Check Box sur la feuille de calcul.
  4. Faites un clic droit sur Check Box > Properties.

Exemple de code VBA pour connecter une case à cocher à une cellule

Pour que Check Box stocker des valeurs dans des cellules en fonction de leur état, utilisez le code suivant :

If CheckBox1.Value =True Then
 Range(“D2”).Value  1
Else
 Range(“D2”).Value = 0
End If

Ce code remplira D2 cellules avec 1 si le Check Box est coché et 0 s’il n’est pas coché.

Pour que cette fonction s’exécute automatiquement lorsque l’utilisateur clique sur Check Box, utilisez event Change à l’intérieur du VBA Editor :

Private Sub CheckBox1_Click()
 If CheckBox1.ValueTrue Then
 Range(“D2”).Value  1
 Else
 Range(“D2”).Value = 0
 End If
End Sub

5. Boutons d’option

 Les Check Box et Option Buttons sont utilisés pour fournir des options aux utilisateurs, mais il existe des différences importantes entre les deux :

CaractéristiqueCheck BoxOption Buttons
FonctionPermet aux utilisateurs de choisir plus d’une optionUne seule option peut être sélectionnée dans un groupe
Type d’entréeValeur binaire (Vrai/Faux)Options exclusives (une seule option active dans un groupe)
UtiliserUtilisé pour activer/désactiver des fonctionnalitésUtilisé pour choisir l’une des nombreuses options
Exemples d’utilisationChoisir des fonctionnalités supplémentaires dans un formulaireChoisissez un sexe ou un mode de paiement

Si l’utilisateur doit sélectionner plusieurs options, utilisez Check Box. Cependant, si vous ne pouvez choisir qu’une seule des options parmi plusieurs options, utilisez Option Buttons.

Étapes de création d’un bouton de sélection dans Excel VBA

  1. Ouvrez Excel et activez l’  onglet Developer.
  2. Sélectionnez Developer > Insert > Option Button (ActiveX Controls).
  3. Cliquez et faites glisser pour placer deux Option Buttons sur la feuille de calcul.
  4. Faites un clic droit sur chaque Option Button puis sélectionnez Properties.
    • Renommez (Name) en OptionButton1 et OptionButton2.
    • Changez le Caption en « Mâle » pour OptionButton1 et « Femelle » pour OptionButton2.
  5. Pour regrouper les deux boutons, placez-les dans Frame (ActiveX Controls) ou sur le UserForm.

Exemple de code VBA pour la connexion de touches de sélection avec des cellules

Le code suivant stockera une sélection de l’Option Button dans la cellule D3 selon le choix de l’utilisateur :

If OptionButton1.Value =True Then Range(“D3”).Value “Male”
If OptionButton2.Value =True Then Range(“D3”).Value “Female”

Pour vous assurer que ce code s’exécute automatiquement lorsque l’utilisateur clique sur le bouton, utilisez les événements VBA suivants :

Private Sub OptionButton1_Click()
 Range(“D3”).Value =“Male”
End Sub

Private Sub OptionButton2_Click()
 Range(“D3”).Value =“Female”
End Sub

Avec ce code, D3 cellules seront automatiquement mises à jour en fonction des choix effectués par l’utilisateur.

6. Bouton de rotation

Spin Button est un contrôle utilisé pour augmenter ou diminuer progressivement la valeur numérique d’une cellule. Ceci est particulièrement utile pour les entrées numériques, telles que la définition du nombre de biens, des taux d’intérêt ou d’autres paramètres qui ont des limites de valeur.

Comment définir les valeurs maximale et minimale dans le bouton Spin

  1. Ouvrez l’  onglet Developer dans Excel.
  2. Cliquez sur Insert > Spin Button (ActiveX Controls).
  3. Cliquez et faites glisser pour placer le Spin Button sur la feuille de calcul.
  4. Faites un clic droit sur le Spin Button, puis sélectionnez Properties.

Exemple de code VBA pour régler le bouton de rotation

Utilisez le code suivant pour définir la limite de valeur Spin Button :

SpinButton1.Max =100
SpinButton1.Min =0

Pour connecter Spin Button avec des cellules dans Excel, utilisez le code suivant :

Private Sub SpinButton1_Change()
 Range(“C3”).Value =SpinButton1.Value
End Sub

Ce code garantira que chaque fois que l’utilisateur appuie sur la touche Spin Button, les valeurs de la cellule C3 changeront en fonction des valeurs définies dans les commandes.

Conclusion

Contrôles ActiveX dans Excel VBA est une fonctionnalité très utile pour améliorer l’interaction et l’efficacité du traitement des données. Avec divers contrôles tels que Text Box, Combo Box, List Box, Check Box, Option Buttons et Spin Button, les utilisateurs peuvent créer une interface plus compréhensible, automatiser le remplissage des données et réduire les erreurs lors du remplissage des formulaires.

L’un des principaux avantages d’ActiveX Controls est sa capacité à être personnalisé via VBA, ce qui permet l’exécution automatique des commandes et l’intégration avec des bases de données ou des macros pour une gestion des données plus complexe.

Pour maximiser l’utilisation des contrôles ActiveX, il est recommandé d’implémenter des techniques d’automatisation plus avancées telles que l’utilisation de UserForm, la validation des données, la gestion des événements et la mise en forme conditionnelle afin d’améliorer l’expérience utilisateur. De plus, la connexion des contrôles ActiveX à des bases de données telles que Microsoft Access ou SQL Server peut aider à gérer de grandes quantités de données.

En appliquant ces techniques, le processus de remplissage des données devient plus efficace, plus précis et plus professionnel. Par conséquent, la compréhension et la mise en œuvre des contrôles ActiveX dans Excel VBA peuvent être la meilleure solution pour les utilisateurs qui souhaitent créer un système de saisie de données plus structuré et automatisé.

Articles Récents