SlideShare une entreprise Scribd logo
Votre Assistante : https://www.votreassistante.net - le 17/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
1
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Si vous utilisez un formulaire Word composé de listes déroulantes, vous pouvez avoir besoin
d’alimenter dynamiquement ces listes à partir d’une liste sur Excel et c’est ce que nous
allons voir dans ce tutoriel en utilisant le langage VBA de Word.
Présentation des fichiers utilisés
Pour ce tutoriel, je vais me servir du fichier mis à jour que j’avais utilisé lors du tutoriel sur la
création de formulaires Word et d’un fichier Excel contenant le nom des classes à l’école
primaire. Je vais donc alimenter les listes déroulantes des champs Classe avec cette liste Excel.
Pour pouvoir l’utiliser, il faut avoir accès au fichier Excel et que le chemin soit le
même (attention en cas de partage).
Définition du nom de la plage Excel
J’ouvre le fichier Excel où se trouvent les listes de classe et je vais placer ces dernières dans
une plage de tableau. Pour cela, je me place sur une des cellules de ma liste et je clique sur
Tableau dans le menu Insertion. Je laisse décochée la case Mon tableau comporte
des en-têtes puisqu’il n’en contient pas et je m’assure que toute ma plage est comprise (A1 à
A5) avant de cliquer sur OK :
Sélectionnez ensuite les cellules A2 à A6 et, dans la Zone Nom, donnez-lui le nom Liste_classes
avant d’appuyer sur la touche Entrée. De cette manière, votre plage restera dynamique : si vous
supprimez ou ajoutez des éléments à la suite, la plage sera automatiquement redimensionnée.
Je ferme le fichier en l’enregistrant.
Affichage du menu Développeur de Word
Pour alimenter dynamiquement une liste déroulante dans Word, nous avons besoin de faire
appel à du code VBA (Visual Basic for Applications). Pour cela, je vous invite à consulter le
Votre Assistante : https://www.votreassistante.net - le 17/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
2
tutoriel sur l’affichage du menu Développeur de Word s’il n’apparaît pas sur votre logiciel, puis
à ouvrir le formulaire Word ou le document de votre choix.
Création des listes déroulantes que nous allons alimenter
Dans ce tutoriel, je vais vous montrer les trois différentes façons de remplir une liste déroulante
en utilisant les trois différents contrôles à votre disposition sur Windows. Sur Mac, vous n’aurez
accès qu’à la deuxième option (intitulée, sur Mac, Zone de liste modifiable ).
En allant dans le menu Développeur, vous avez :
• Le Contrôle du contenu de zone de liste déroulante :
Je le place en face de la première classe et je clique sur Propriétés du menu
Développeur pour lui donner le Titre Maliste1 avant de cliquer sur OK.
• La Zone de liste déroulante (Contrôle de formulaire) en cliquant sur Outils
hérités :
Je le place en face de la deuxième classe et je clique sur Propriétés (ou sur
Options sur Mac) du menu Développeur pour lui donner le Signet Maliste2 avant
de cliquer sur OK.
• La Zone de liste déroulante (Contrôle ActiveX) en cliquant sur Outils hérités :
Je le place en face de la troisième classe et je clique sur Propriétés du menu
Développeur pour lui donner le Nom (Name) Maliste3 avant de fermer la fenêtre.
Les morceaux de code seront quasiment identiques, seules leurs propriétés diffèreront.
Alimentation d’une liste déroulante dans Word avec une liste Excel
Je vais vous présenter les différentes méthodes pour alimenter une liste déroulante selon le type
de liste déroulante créée sachant que je vais les alimenter à l’ouverture du formulaire, donc du
Votre Assistante : https://www.votreassistante.net - le 17/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
3
fichier. Attention, si vous avez beaucoup de listes à alimenter avec beaucoup de données, cela
peut ralentir son ouverture.
Création de la procédure pour l’alimentation des listes déroulantes à l’ouverture du
fichier Word
Dans le menu Développeur, cliquez sur Visual Basic . Dans l’Explorateur de projets
de la fenêtre VBA (s’il n’apparaît pas, appuyez sur les touches Ctrl + R sur Windows,
Ctrl + Cmd + R sur Mac ou allez dans le menu Affichage > Explorateur de projets), faites un
double-clic sur ThisDocument du dossier Microsoft Word Objets du projet du fichier (Project
suivi du nom du fichier que vous utilisez).
En haut du module qui s’est ouvert, cliquez sur la première liste déroulante (Général) et
choisissez Document, puis, dans la deuxième liste, sélectionnez Open : cela crée la procédure
Document_Open qui correspond à l’ouverture du fichier. Vous pouvez supprimer la procédure
créée précédemment de façon automatique (Document_New).
Déclaration et définition des variables communes aux trois types de contrôles Word
Nous allons, maintenant, déclarer les variables qui vont être communes pour les trois méthodes
donc, quel que soit celle que vous souhaitez utiliser, déclarez et définissez toutes les variables
qui suivent à l’intérieur de la procédure Document_Open :
Dim xlApp As Object
1
Dim Fichier_Excel As String
2
Dim Nombre_lignes As Long, L As Long
3
Fichier_Excel = "C:UsersLydiaDesktopListes des classes.xlsx"
4
Set xlApp = GetObject(Fichier_Excel)
5
Nombre_lignes = xlApp.sheets("Classes").Range("Liste_classes").Rows. Count
6
La première ligne permet d’instancier un objet qui est désigné, à la ligne 5 comme notre fichier
Excel.
À la ligne 2, c’est donc la variable Fichier_Excel qui est déclarée comme textuelle et définie à
la ligne 4 comme étant le chemin du fichier. Ici, reprenez, entre guillemets, le chemin complet
du fichier où se trouve la liste Excel (répertoire + nom du fichier + extension). Par simplicité,
vous pouvez faire un clic droit sur l’icône du fichier en maintenant la touche Maj
Votre Assistante : https://www.votreassistante.net - le 17/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
4
enfoncée > Copier en tant que chemin d’accès sur Windows ou en maintenant la touche
Alt > Copier (nom du fichier) en tant que nom de chemin sur Mac.
Ensuite, nous déclarons la variable Nombre_lignes comme étant numérique et qui correspond,
comme indiqué à la ligne 6, à la plage nommée Liste_classes de la feuille nommée Classes du
fichier Excel instancié plus tôt. Cette variable nous permet de connaître le nombre de lignes
présentes dans la liste Excel.
Enfin, la variable L est également numérique et nous servira pour la suite.
Après ces déclarations, sautez quelques lignes pour laisser de la place pour l’alimentation des
lignes et saisissez la ligne suivante :
Set xlApp = Nothing
1
Celle-ci permet de vider la variable objet instanciée en début de procédure pour libérer de la
mémoire.
Alimentation d’une liste déroulante d’un contrôle de contenu sur Word (Windows)
À la suite des déclarations de variable et avant le vidage de la variable xlApp, saisissez :
ActiveDocument.SelectContentControlsByTag("Maliste1")(1).DropdownListEntries.Clear
1
For L = 1 To Nombre_lignes
2
ActiveDocument.SelectContentControlsByTag("Maliste1")(1).DropdownListEntries.
3
Add xlApp.sheets("Classes").Range("Liste_classes").Cells(L)
4
Next
5
La première ligne permet de vider la liste déroulante nommée Maliste1 afin de ne pas avoir de
doublons par un ajout des éléments à la suite.
À la deuxième ligne débute une boucle For Next qui se termine à la ligne 5. Celle-ci démarre
du numéro 1 jusqu’au nombre de lignes contenues dans la liste Excel, en l’occurrence 5.
À la ligne 3 et 4, on alimente la liste nommée Maliste1 avec chaque élément de la plage Excel
nommée Liste_classes de la feuille nommée Classes. Comme il s’agit d’une boucle, le
processus va se répéter, ici, 5 fois. L sera donc incrémenté à chaque nouvelle itération : ce sera
la première ligne de la liste Excel, puis la deuxième, etc. jusqu’à la 5e
itération.
Alimentation d’une liste déroulante d’un contrôle de formulaire hérité sur
Word (Windows et Mac)
Saisissez à la suite ou, si vous n’avez pas saisi le premier bloc de code, après la déclaration des
variables :
Votre Assistante : https://www.votreassistante.net - le 17/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
5
ActiveDocument.FormFields("Maliste2").DropDown.ListEntries.Clear
1
For L = 1 To Nombre_lignes
2
ActiveDocument.FormFields("Maliste2").DropDown.ListEntries.Add
3
xlApp.sheets("Classes").Range("Liste_classes").Cells(L)
4
Next
5
Le processus est quasiment similaire, la seule différence se situe à l’appel de la liste puisqu’il
s’agit d’un contrôle de formulaire hérité et que cette liste s’appelle Maliste2.
Alimentation d’une liste déroulante d’un contrôle ActiveX sur Word (Windows)
Saisissez à la suite ou, si vous n’avez pas saisi les deux premiers blocs de code, après la
déclaration des variables :
ActiveDocument.Maliste3.Clear
1
For L = 1 To Nombre_lignes
2
ActiveDocument. Maliste3.AddItem
3
xlApp.sheets("Classes").Range("Liste_classes").Cells(L)
4
Next
5
Une nouvelle fois, la procédure est quasiment similaire et seule la façon de faire appel à la liste
diffère ainsi que son nom Maliste3.
Ouverture du fichier pour lancer la macro
Pour tester notre fichier, il ne nous reste plus qu’à le fermer en l’enregistrant puisque la
procédure qui contient notre macro est celle qui se lance à l’ouverture. Attention, pensez bien
à l’enregistrer dans un fichier prenant en charge les macros (.docm), sinon vous perdrez toute
votre macro.
À l’ouverture, les listes avec le contrôle de contenu et le contrôle ActiveX ont été alimentées
par le fichier Excel.
Pour vérifier le bon remplissage de la liste du contrôle de formulaire hérité, il faut restreindre
la modification comme nous l’avions vu dans le tutoriel sur le formulaire Word.
Sur Windows, aller dans le menu Développeur > Restreindre la modification .
Dans le panneau latéral à droite, à l’étape 2, cochez la case Autoriser uniquement ce type de
modification dans le document, puis choisissez, dans la liste déroulante, Remplissage de
Votre Assistante : https://www.votreassistante.net - le 17/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
6
formulaires et terminez en cliquant sur le bouton Oui, activer la protection (assurez-vous,
pour cela, de ne pas être en Mode Création dans le menu Développeur).
Word vous demande un mot de passe, vous n’êtes pas obligé d’en choisir un, cliquez sur OK
et testez votre liste déroulante. Vous pourrez ensuite désactiver la protection en cliquant sur le
bouton correspondant au bas du panneau latéral.
Sur Mac, cliquez simplement sur Protéger le formulaire du menu Développeur
pour activer la protection, puis recliquez dessus pour la désactiver.
Nous avons vu, dans ce tutoriel, que nous pouvions alimenter une liste déroulante sur Word,
qu’elle soit un contrôle de contenu, un contrôle de formulaire hérité ou un contrôle ActiveX.
Toutefois, n’oubliez pas que si vous n’êtes pas le seul utilisateur du formulaire, le fichier Excel
devra pouvoir être à disposition des autres utilisateurs et posséder le même chemin que dans la
variable Fichier_Excel.
Notez que si vous n’avez besoin d’alimenter vos listes qu’une seule fois, mais avec beaucoup
de données Excel, vous pouvez effectuer cette manipulation, puis supprimer la macro Word
une fois que les listes auront été alimentées.
Vous retrouverez les fichiers utilisés dans l’Espace Membres accessible aux abonnés à la
newsletter.
Tutoriel réalisé avec Word Microsoft 365
Voir la version vidéo de cet article

Contenu connexe

Tendances

Access tables
Access tablesAccess tables
Access tables
hassan1488
 
Cours access
Cours accessCours access
Cours accesskourbali
 
Créer un tableau croisé dynamique avec Excel
Créer un tableau croisé dynamique avec ExcelCréer un tableau croisé dynamique avec Excel
Créer un tableau croisé dynamique avec Excel
Votre Assistante
 
Support de cours ACCESS
Support de cours ACCESSSupport de cours ACCESS
Support de cours ACCESS
Chingongou ­
 
Créer un échéancier sur Excel
Créer un échéancier sur ExcelCréer un échéancier sur Excel
Créer un échéancier sur Excel
Votre Assistante
 
Rechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur AccessRechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur Access
Votre Assistante
 
Cours access
Cours accessCours access
Cours accessmsodjinou
 
Scbd cg conception
Scbd cg conceptionScbd cg conception
Scbd cg conception
vangogue
 
Rechercher un enregistrement avec une liste déroulante dans un formulaire Access
Rechercher un enregistrement avec une liste déroulante dans un formulaire AccessRechercher un enregistrement avec une liste déroulante dans un formulaire Access
Rechercher un enregistrement avec une liste déroulante dans un formulaire Access
Votre Assistante
 
Tutoriel - Mettre en place une centrale de réservation avec google docs
Tutoriel - Mettre en place une centrale de réservation avec google docsTutoriel - Mettre en place une centrale de réservation avec google docs
Tutoriel - Mettre en place une centrale de réservation avec google docsPays Médoc
 
Access formulaires
Access formulairesAccess formulaires
Access formulaireshassan1488
 
Réaliser un publipostage avec une base de données Word, Excel ou Access
Réaliser un publipostage avec une base de données Word, Excel ou AccessRéaliser un publipostage avec une base de données Word, Excel ou Access
Réaliser un publipostage avec une base de données Word, Excel ou Access
Votre Assistante
 
Formation access
Formation accessFormation access
Formation access
bouyahia76
 
Pratique professionnelle TCG KOUAMI DJOMO JULIO STEPHANE
Pratique professionnelle TCG  KOUAMI DJOMO JULIO STEPHANEPratique professionnelle TCG  KOUAMI DJOMO JULIO STEPHANE
Pratique professionnelle TCG KOUAMI DJOMO JULIO STEPHANE
Julio Djomo
 
pratique proessionnelle PCG/ACC KOUAMI DJOMO JULIO STEPHANE
pratique proessionnelle PCG/ACC  KOUAMI DJOMO JULIO STEPHANEpratique proessionnelle PCG/ACC  KOUAMI DJOMO JULIO STEPHANE
pratique proessionnelle PCG/ACC KOUAMI DJOMO JULIO STEPHANE
Julio Djomo
 
Totu access sphinx_epruves_excel Tle ACC
Totu access sphinx_epruves_excel Tle ACCTotu access sphinx_epruves_excel Tle ACC
Totu access sphinx_epruves_excel Tle ACC
Julio Djomo
 
Cours Excel avance
Cours Excel avanceCours Excel avance
Cours Excel avance
hassan1488
 
Sociallymap - Qualitative automation tool
Sociallymap - Qualitative automation toolSociallymap - Qualitative automation tool
Sociallymap - Qualitative automation tool
Florent Hernandez
 
Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.
Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.
Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.
Sage france
 

Tendances (20)

Access tables
Access tablesAccess tables
Access tables
 
Cours access
Cours accessCours access
Cours access
 
Créer un tableau croisé dynamique avec Excel
Créer un tableau croisé dynamique avec ExcelCréer un tableau croisé dynamique avec Excel
Créer un tableau croisé dynamique avec Excel
 
Support de cours ACCESS
Support de cours ACCESSSupport de cours ACCESS
Support de cours ACCESS
 
Créer un échéancier sur Excel
Créer un échéancier sur ExcelCréer un échéancier sur Excel
Créer un échéancier sur Excel
 
Rechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur AccessRechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur Access
 
Cours access
Cours accessCours access
Cours access
 
Cours access
Cours accessCours access
Cours access
 
Scbd cg conception
Scbd cg conceptionScbd cg conception
Scbd cg conception
 
Rechercher un enregistrement avec une liste déroulante dans un formulaire Access
Rechercher un enregistrement avec une liste déroulante dans un formulaire AccessRechercher un enregistrement avec une liste déroulante dans un formulaire Access
Rechercher un enregistrement avec une liste déroulante dans un formulaire Access
 
Tutoriel - Mettre en place une centrale de réservation avec google docs
Tutoriel - Mettre en place une centrale de réservation avec google docsTutoriel - Mettre en place une centrale de réservation avec google docs
Tutoriel - Mettre en place une centrale de réservation avec google docs
 
Access formulaires
Access formulairesAccess formulaires
Access formulaires
 
Réaliser un publipostage avec une base de données Word, Excel ou Access
Réaliser un publipostage avec une base de données Word, Excel ou AccessRéaliser un publipostage avec une base de données Word, Excel ou Access
Réaliser un publipostage avec une base de données Word, Excel ou Access
 
Formation access
Formation accessFormation access
Formation access
 
Pratique professionnelle TCG KOUAMI DJOMO JULIO STEPHANE
Pratique professionnelle TCG  KOUAMI DJOMO JULIO STEPHANEPratique professionnelle TCG  KOUAMI DJOMO JULIO STEPHANE
Pratique professionnelle TCG KOUAMI DJOMO JULIO STEPHANE
 
pratique proessionnelle PCG/ACC KOUAMI DJOMO JULIO STEPHANE
pratique proessionnelle PCG/ACC  KOUAMI DJOMO JULIO STEPHANEpratique proessionnelle PCG/ACC  KOUAMI DJOMO JULIO STEPHANE
pratique proessionnelle PCG/ACC KOUAMI DJOMO JULIO STEPHANE
 
Totu access sphinx_epruves_excel Tle ACC
Totu access sphinx_epruves_excel Tle ACCTotu access sphinx_epruves_excel Tle ACC
Totu access sphinx_epruves_excel Tle ACC
 
Cours Excel avance
Cours Excel avanceCours Excel avance
Cours Excel avance
 
Sociallymap - Qualitative automation tool
Sociallymap - Qualitative automation toolSociallymap - Qualitative automation tool
Sociallymap - Qualitative automation tool
 
Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.
Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.
Des trucs et astuces pour gagner du temps avec Sage 100 Gestion Commerciale i7.
 

Similaire à Comment alimenter une liste déroulante dans Word avec une liste Excel ?

Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Votre Assistante
 
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Votre Assistante
 
Créer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’ExcelCréer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’Excel
Votre Assistante
 
Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...
Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...
Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...
Votre Assistante
 
coursaccess.pdf
coursaccess.pdfcoursaccess.pdf
coursaccess.pdf
AyoubElKhatib
 
Cours wpf avancé
Cours wpf avancéCours wpf avancé
Cours wpf avancé
lucas zientek
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac
Amri Ossama
 
Php1
Php1Php1
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
FethiBenYahia1
 
Cours php
Cours php Cours php
Cours php
Yassine Badri
 
[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...
[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...
[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...
AT Internet
 
Notice bibliographique pour les doctorants chercheurs en VBA sous Excel
Notice bibliographique pour les  doctorants chercheurs en VBA sous Excel Notice bibliographique pour les  doctorants chercheurs en VBA sous Excel
Notice bibliographique pour les doctorants chercheurs en VBA sous Excel
Adad Med Chérif
 
Cour excel informatique de gestion semestre4
Cour excel informatique de gestion semestre4Cour excel informatique de gestion semestre4
Cour excel informatique de gestion semestre4
Jamal Yasser
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
Said Sadik
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbc
Ines Ouaz
 
Cours BASE de DONNES.pdf
Cours BASE de DONNES.pdfCours BASE de DONNES.pdf
Cours BASE de DONNES.pdf
ManelHamdi7
 
Cours_initiation_SPSS (1). Pratiques pdf
Cours_initiation_SPSS (1). Pratiques pdfCours_initiation_SPSS (1). Pratiques pdf
Cours_initiation_SPSS (1). Pratiques pdf
koffiayamichle
 
js---Partie1----.pdf
js---Partie1----.pdfjs---Partie1----.pdf
js---Partie1----.pdf
MiRA452885
 
Access 2007
Access 2007Access 2007
Access 2007
Ramzi Mandhouj
 

Similaire à Comment alimenter une liste déroulante dans Word avec une liste Excel ? (20)

Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
 
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
 
Créer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’ExcelCréer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’Excel
 
Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...
Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...
Comment utiliser une liste ou un nom défini provenant d’un autre classeur Exc...
 
09coursaccess
09coursaccess09coursaccess
09coursaccess
 
coursaccess.pdf
coursaccess.pdfcoursaccess.pdf
coursaccess.pdf
 
Cours wpf avancé
Cours wpf avancéCours wpf avancé
Cours wpf avancé
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac
 
Php1
Php1Php1
Php1
 
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
 
Cours php
Cours php Cours php
Cours php
 
[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...
[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...
[User Guide] 7 bonnes pratiques pour réussir vos tableaux de bord Excel avec ...
 
Notice bibliographique pour les doctorants chercheurs en VBA sous Excel
Notice bibliographique pour les  doctorants chercheurs en VBA sous Excel Notice bibliographique pour les  doctorants chercheurs en VBA sous Excel
Notice bibliographique pour les doctorants chercheurs en VBA sous Excel
 
Cour excel informatique de gestion semestre4
Cour excel informatique de gestion semestre4Cour excel informatique de gestion semestre4
Cour excel informatique de gestion semestre4
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbc
 
Cours BASE de DONNES.pdf
Cours BASE de DONNES.pdfCours BASE de DONNES.pdf
Cours BASE de DONNES.pdf
 
Cours_initiation_SPSS (1). Pratiques pdf
Cours_initiation_SPSS (1). Pratiques pdfCours_initiation_SPSS (1). Pratiques pdf
Cours_initiation_SPSS (1). Pratiques pdf
 
js---Partie1----.pdf
js---Partie1----.pdfjs---Partie1----.pdf
js---Partie1----.pdf
 
Access 2007
Access 2007Access 2007
Access 2007
 

Plus de Votre Assistante

Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Votre Assistante
 
Comment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdfComment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdf
Votre Assistante
 
Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?
Votre Assistante
 
Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?
Votre Assistante
 
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Votre Assistante
 
Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?
Votre Assistante
 
Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?
Votre Assistante
 
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Votre Assistante
 
Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?
Votre Assistante
 
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Votre Assistante
 
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Votre Assistante
 
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Votre Assistante
 
Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?
Votre Assistante
 
Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?
Votre Assistante
 
Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?
Votre Assistante
 
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Votre Assistante
 
Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?
Votre Assistante
 
Créer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorCréer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec Illustrator
Votre Assistante
 
Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?
Votre Assistante
 
4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus
Votre Assistante
 

Plus de Votre Assistante (20)

Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?
 
Comment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdfComment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdf
 
Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?
 
Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?
 
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
 
Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?
 
Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?
 
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
 
Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?
 
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
 
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
 
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
 
Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?
 
Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?
 
Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?
 
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
 
Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?
 
Créer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorCréer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec Illustrator
 
Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?
 
4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus
 

Comment alimenter une liste déroulante dans Word avec une liste Excel ?

  • 1. Votre Assistante : https://www.votreassistante.net - le 17/03/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 1 Comment alimenter une liste déroulante dans Word avec une liste Excel ? Si vous utilisez un formulaire Word composé de listes déroulantes, vous pouvez avoir besoin d’alimenter dynamiquement ces listes à partir d’une liste sur Excel et c’est ce que nous allons voir dans ce tutoriel en utilisant le langage VBA de Word. Présentation des fichiers utilisés Pour ce tutoriel, je vais me servir du fichier mis à jour que j’avais utilisé lors du tutoriel sur la création de formulaires Word et d’un fichier Excel contenant le nom des classes à l’école primaire. Je vais donc alimenter les listes déroulantes des champs Classe avec cette liste Excel. Pour pouvoir l’utiliser, il faut avoir accès au fichier Excel et que le chemin soit le même (attention en cas de partage). Définition du nom de la plage Excel J’ouvre le fichier Excel où se trouvent les listes de classe et je vais placer ces dernières dans une plage de tableau. Pour cela, je me place sur une des cellules de ma liste et je clique sur Tableau dans le menu Insertion. Je laisse décochée la case Mon tableau comporte des en-têtes puisqu’il n’en contient pas et je m’assure que toute ma plage est comprise (A1 à A5) avant de cliquer sur OK : Sélectionnez ensuite les cellules A2 à A6 et, dans la Zone Nom, donnez-lui le nom Liste_classes avant d’appuyer sur la touche Entrée. De cette manière, votre plage restera dynamique : si vous supprimez ou ajoutez des éléments à la suite, la plage sera automatiquement redimensionnée. Je ferme le fichier en l’enregistrant. Affichage du menu Développeur de Word Pour alimenter dynamiquement une liste déroulante dans Word, nous avons besoin de faire appel à du code VBA (Visual Basic for Applications). Pour cela, je vous invite à consulter le
  • 2. Votre Assistante : https://www.votreassistante.net - le 17/03/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 2 tutoriel sur l’affichage du menu Développeur de Word s’il n’apparaît pas sur votre logiciel, puis à ouvrir le formulaire Word ou le document de votre choix. Création des listes déroulantes que nous allons alimenter Dans ce tutoriel, je vais vous montrer les trois différentes façons de remplir une liste déroulante en utilisant les trois différents contrôles à votre disposition sur Windows. Sur Mac, vous n’aurez accès qu’à la deuxième option (intitulée, sur Mac, Zone de liste modifiable ). En allant dans le menu Développeur, vous avez : • Le Contrôle du contenu de zone de liste déroulante : Je le place en face de la première classe et je clique sur Propriétés du menu Développeur pour lui donner le Titre Maliste1 avant de cliquer sur OK. • La Zone de liste déroulante (Contrôle de formulaire) en cliquant sur Outils hérités : Je le place en face de la deuxième classe et je clique sur Propriétés (ou sur Options sur Mac) du menu Développeur pour lui donner le Signet Maliste2 avant de cliquer sur OK. • La Zone de liste déroulante (Contrôle ActiveX) en cliquant sur Outils hérités : Je le place en face de la troisième classe et je clique sur Propriétés du menu Développeur pour lui donner le Nom (Name) Maliste3 avant de fermer la fenêtre. Les morceaux de code seront quasiment identiques, seules leurs propriétés diffèreront. Alimentation d’une liste déroulante dans Word avec une liste Excel Je vais vous présenter les différentes méthodes pour alimenter une liste déroulante selon le type de liste déroulante créée sachant que je vais les alimenter à l’ouverture du formulaire, donc du
  • 3. Votre Assistante : https://www.votreassistante.net - le 17/03/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 3 fichier. Attention, si vous avez beaucoup de listes à alimenter avec beaucoup de données, cela peut ralentir son ouverture. Création de la procédure pour l’alimentation des listes déroulantes à l’ouverture du fichier Word Dans le menu Développeur, cliquez sur Visual Basic . Dans l’Explorateur de projets de la fenêtre VBA (s’il n’apparaît pas, appuyez sur les touches Ctrl + R sur Windows, Ctrl + Cmd + R sur Mac ou allez dans le menu Affichage > Explorateur de projets), faites un double-clic sur ThisDocument du dossier Microsoft Word Objets du projet du fichier (Project suivi du nom du fichier que vous utilisez). En haut du module qui s’est ouvert, cliquez sur la première liste déroulante (Général) et choisissez Document, puis, dans la deuxième liste, sélectionnez Open : cela crée la procédure Document_Open qui correspond à l’ouverture du fichier. Vous pouvez supprimer la procédure créée précédemment de façon automatique (Document_New). Déclaration et définition des variables communes aux trois types de contrôles Word Nous allons, maintenant, déclarer les variables qui vont être communes pour les trois méthodes donc, quel que soit celle que vous souhaitez utiliser, déclarez et définissez toutes les variables qui suivent à l’intérieur de la procédure Document_Open : Dim xlApp As Object 1 Dim Fichier_Excel As String 2 Dim Nombre_lignes As Long, L As Long 3 Fichier_Excel = "C:UsersLydiaDesktopListes des classes.xlsx" 4 Set xlApp = GetObject(Fichier_Excel) 5 Nombre_lignes = xlApp.sheets("Classes").Range("Liste_classes").Rows. Count 6 La première ligne permet d’instancier un objet qui est désigné, à la ligne 5 comme notre fichier Excel. À la ligne 2, c’est donc la variable Fichier_Excel qui est déclarée comme textuelle et définie à la ligne 4 comme étant le chemin du fichier. Ici, reprenez, entre guillemets, le chemin complet du fichier où se trouve la liste Excel (répertoire + nom du fichier + extension). Par simplicité, vous pouvez faire un clic droit sur l’icône du fichier en maintenant la touche Maj
  • 4. Votre Assistante : https://www.votreassistante.net - le 17/03/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 4 enfoncée > Copier en tant que chemin d’accès sur Windows ou en maintenant la touche Alt > Copier (nom du fichier) en tant que nom de chemin sur Mac. Ensuite, nous déclarons la variable Nombre_lignes comme étant numérique et qui correspond, comme indiqué à la ligne 6, à la plage nommée Liste_classes de la feuille nommée Classes du fichier Excel instancié plus tôt. Cette variable nous permet de connaître le nombre de lignes présentes dans la liste Excel. Enfin, la variable L est également numérique et nous servira pour la suite. Après ces déclarations, sautez quelques lignes pour laisser de la place pour l’alimentation des lignes et saisissez la ligne suivante : Set xlApp = Nothing 1 Celle-ci permet de vider la variable objet instanciée en début de procédure pour libérer de la mémoire. Alimentation d’une liste déroulante d’un contrôle de contenu sur Word (Windows) À la suite des déclarations de variable et avant le vidage de la variable xlApp, saisissez : ActiveDocument.SelectContentControlsByTag("Maliste1")(1).DropdownListEntries.Clear 1 For L = 1 To Nombre_lignes 2 ActiveDocument.SelectContentControlsByTag("Maliste1")(1).DropdownListEntries. 3 Add xlApp.sheets("Classes").Range("Liste_classes").Cells(L) 4 Next 5 La première ligne permet de vider la liste déroulante nommée Maliste1 afin de ne pas avoir de doublons par un ajout des éléments à la suite. À la deuxième ligne débute une boucle For Next qui se termine à la ligne 5. Celle-ci démarre du numéro 1 jusqu’au nombre de lignes contenues dans la liste Excel, en l’occurrence 5. À la ligne 3 et 4, on alimente la liste nommée Maliste1 avec chaque élément de la plage Excel nommée Liste_classes de la feuille nommée Classes. Comme il s’agit d’une boucle, le processus va se répéter, ici, 5 fois. L sera donc incrémenté à chaque nouvelle itération : ce sera la première ligne de la liste Excel, puis la deuxième, etc. jusqu’à la 5e itération. Alimentation d’une liste déroulante d’un contrôle de formulaire hérité sur Word (Windows et Mac) Saisissez à la suite ou, si vous n’avez pas saisi le premier bloc de code, après la déclaration des variables :
  • 5. Votre Assistante : https://www.votreassistante.net - le 17/03/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 5 ActiveDocument.FormFields("Maliste2").DropDown.ListEntries.Clear 1 For L = 1 To Nombre_lignes 2 ActiveDocument.FormFields("Maliste2").DropDown.ListEntries.Add 3 xlApp.sheets("Classes").Range("Liste_classes").Cells(L) 4 Next 5 Le processus est quasiment similaire, la seule différence se situe à l’appel de la liste puisqu’il s’agit d’un contrôle de formulaire hérité et que cette liste s’appelle Maliste2. Alimentation d’une liste déroulante d’un contrôle ActiveX sur Word (Windows) Saisissez à la suite ou, si vous n’avez pas saisi les deux premiers blocs de code, après la déclaration des variables : ActiveDocument.Maliste3.Clear 1 For L = 1 To Nombre_lignes 2 ActiveDocument. Maliste3.AddItem 3 xlApp.sheets("Classes").Range("Liste_classes").Cells(L) 4 Next 5 Une nouvelle fois, la procédure est quasiment similaire et seule la façon de faire appel à la liste diffère ainsi que son nom Maliste3. Ouverture du fichier pour lancer la macro Pour tester notre fichier, il ne nous reste plus qu’à le fermer en l’enregistrant puisque la procédure qui contient notre macro est celle qui se lance à l’ouverture. Attention, pensez bien à l’enregistrer dans un fichier prenant en charge les macros (.docm), sinon vous perdrez toute votre macro. À l’ouverture, les listes avec le contrôle de contenu et le contrôle ActiveX ont été alimentées par le fichier Excel. Pour vérifier le bon remplissage de la liste du contrôle de formulaire hérité, il faut restreindre la modification comme nous l’avions vu dans le tutoriel sur le formulaire Word. Sur Windows, aller dans le menu Développeur > Restreindre la modification . Dans le panneau latéral à droite, à l’étape 2, cochez la case Autoriser uniquement ce type de modification dans le document, puis choisissez, dans la liste déroulante, Remplissage de
  • 6. Votre Assistante : https://www.votreassistante.net - le 17/03/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 6 formulaires et terminez en cliquant sur le bouton Oui, activer la protection (assurez-vous, pour cela, de ne pas être en Mode Création dans le menu Développeur). Word vous demande un mot de passe, vous n’êtes pas obligé d’en choisir un, cliquez sur OK et testez votre liste déroulante. Vous pourrez ensuite désactiver la protection en cliquant sur le bouton correspondant au bas du panneau latéral. Sur Mac, cliquez simplement sur Protéger le formulaire du menu Développeur pour activer la protection, puis recliquez dessus pour la désactiver. Nous avons vu, dans ce tutoriel, que nous pouvions alimenter une liste déroulante sur Word, qu’elle soit un contrôle de contenu, un contrôle de formulaire hérité ou un contrôle ActiveX. Toutefois, n’oubliez pas que si vous n’êtes pas le seul utilisateur du formulaire, le fichier Excel devra pouvoir être à disposition des autres utilisateurs et posséder le même chemin que dans la variable Fichier_Excel. Notez que si vous n’avez besoin d’alimenter vos listes qu’une seule fois, mais avec beaucoup de données Excel, vous pouvez effectuer cette manipulation, puis supprimer la macro Word une fois que les listes auront été alimentées. Vous retrouverez les fichiers utilisés dans l’Espace Membres accessible aux abonnés à la newsletter. Tutoriel réalisé avec Word Microsoft 365 Voir la version vidéo de cet article