OVH Cloud OVH Cloud

liste excel dans listbox word

6 réponses
Avatar
Sky
Bonjour à tous,

Voici mon problème :
Je dispose d'une liste dans excel nommée Liste_Chantier dans un fichier
planning.xls, j'aimerais retrouver le contenu de cette liste dans un
formulaire word que j'ai créé, mais je ne sais pas comment faire

Merci pour votre aide

6 réponses

Avatar
Anacoluthe
Bonjour !

'Sky' nous a écrit ...
Je dispose d'une liste dans excel nommée Liste_Chantier dans un fichier
planning.xls, j'aimerais retrouver le contenu de cette liste dans un
formulaire word que j'ai créé, mais je ne sais pas comment faire


Nous n'avons pas répondu à vos posts précédents parce qu'il reste
une ambiguïté dans vos questions : vous sembliez parler au début
d'un contrôle* 'zone de liste' (ou peut-être zone de liste déroulante?)
puis vous semblez parler d'un champ de formulaire* 'Liste déroulante'.
C'est quoi très précisément votre liste déroutante ?
(merci de rester dans la même ficelle pour qu'on puisse suivre)

Anacoluthe
« À travers les champs verts s'en va se déroulant
La route dont l'averse a creusé les ornières »
- Émile VERHAEREN

Avatar
Sky
bonjour anacoluthe

Désolé de n'avoir pu m'exprimer correctement et d'avoir bifurquer

Voilà mon schéma :

Dans word, j'ai créé un formulaire visant à faciliter les contrats de
travail où sont repris les principales caractéristiques du salarié et les
références du chantier où il doit exercer son emploi.
Les différents champs de ce formulaire sont copiés dans un tableau excel
puis exploités par ce dernier dans un autre tableau afin d'établir un
planning.
Mon souci est lorsque la saisie est effectuée dans word, le nom du chantier
peut varier (ex : roissy T1 et T1 roissy) ce qui implique que mes liaisons
ne sont plus fiables (concaténation des données, etc...)

Donc, j'aimerais reprendre dans word la liste des chantiers créée
initialement dans le tableau excel afin que l'opérateur puisse sélectionner
toujours le même nom de chantier (et pouvoir le créer si il n'existe pas).
Le contrôle se trouvant dans mon formulaire que j'aimerais exploiter est une
listbox.

D'après l'aide fournie par office et vous même, je sais qu'un contrôle de ce
type implique le renseignement des éléments de la liste un par un. Mais vous
m'aviez également évoqué "une variable tableau", qui à mon sens, serait la
solution

En fait le contenu de mon contrôle listbox dans word serait une plage nommée
ListeChantier dans mon tableau excel.

En espérant avoir répondu à vos attentes

Merci pour votre aide








"Anacoluthe" a écrit dans le message de news:

Bonjour !

'Sky' nous a écrit ...
Je dispose d'une liste dans excel nommée Liste_Chantier dans un fichier
planning.xls, j'aimerais retrouver le contenu de cette liste dans un
formulaire word que j'ai créé, mais je ne sais pas comment faire


Nous n'avons pas répondu à vos posts précédents parce qu'il reste
une ambiguïté dans vos questions : vous sembliez parler au début
d'un contrôle* 'zone de liste' (ou peut-être zone de liste déroulante?)
puis vous semblez parler d'un champ de formulaire* 'Liste déroulante'.
C'est quoi très précisément votre liste déroutante ?
(merci de rester dans la même ficelle pour qu'on puisse suivre)

Anacoluthe
« À travers les champs verts s'en va se déroulant
La route dont l'averse a creusé les ornières »
- Émile VERHAEREN



Avatar
Anacoluthe
Bonjour !

'Sky' nous a écrit ...
Donc, j'aimerais reprendre dans word la liste des chantiers créée
initialement dans le tableau excel
Le contrôle se trouvant dans mon formulaire que j'aimerais exploiter est une
listbox.


Private Sub Document_Open()
Dim MonXL As Object
Dim Tablo As Variant
Set MonXL = GetObject("C:MesDonnées.xls")
Tablo = MonXL.Names("Chantiers").RefersToRange
Me.ListBox1.List = Tablo
Set MonXL = Nothing
End Sub

Ce code doit être placé dans ThisDocument du formulaire
lequel doit contenir une listbox nommée ListBox1, le fichier
MesDonnées.xls doit être fermé et contenir une plage Chantiers

A l'ouverture du formulaire, la ListBox est remplie avec
les données Chantiers de la feuille de calcul MesDonnées.xls

Anacoluthe
« Toute liste est perfectible »
- Ludwig WITTGENSTEIN

Avatar
Sky
Bonjour Alain

Merci d'avoir répondu à ma requête, j'ai transposé ton code avec mon cas de
figure, mais ma listbox reste désespérément vide.

Ayant actuellement des yeux de lapin russe, je préfère méditer posément sur
cette problèmatique ce week end

Toutefois, j'ai analysé ton code et je l'ai également posé avec un fichier
word "vierge" en reprenant un formulaire et contrôle listbox unique et le
résultat est le même
Ne faut-il pas créer une variable du type excel.application pour ouvrir une
instance ?

Merci de votre attention
@+



"Anacoluthe" a écrit dans le message de
news:%23KB1u$
Bonjour !

'Sky' nous a écrit ...
Donc, j'aimerais reprendre dans word la liste des chantiers créée
initialement dans le tableau excel
Le contrôle se trouvant dans mon formulaire que j'aimerais exploiter est
une


listbox.


Private Sub Document_Open()
Dim MonXL As Object
Dim Tablo As Variant
Set MonXL = GetObject("C:MesDonnées.xls")
Tablo = MonXL.Names("Chantiers").RefersToRange
Me.ListBox1.List = Tablo
Set MonXL = Nothing
End Sub

Ce code doit être placé dans ThisDocument du formulaire
lequel doit contenir une listbox nommée ListBox1, le fichier
MesDonnées.xls doit être fermé et contenir une plage Chantiers

A l'ouverture du formulaire, la ListBox est remplie avec
les données Chantiers de la feuille de calcul MesDonnées.xls

Anacoluthe
« Toute liste est perfectible »
- Ludwig WITTGENSTEIN



Avatar
Anacoluthe
Bonjour !

'Sky' nous a écrit ...
Merci d'avoir répondu à ma requête, j'ai transposé ton code avec mon cas de
figure, mais ma listbox reste désespérément vide.
Ayant actuellement des yeux de lapin russe, je préfère méditer posément sur
cette problèmatique ce week end
Toutefois, j'ai analysé ton code et je l'ai également posé avec un fichier
word "vierge" en reprenant un formulaire et contrôle listbox unique et le
résultat est le même
Ne faut-il pas créer une variable du type excel.application pour ouvrir une
instance ?


Non, le code utilise la méthode GetObject sur un fichier xls :
l'objet est alors reconnu de classe WorkBook et l'application
Excel est automatiquement instancée.

Pour fonctionner le code que j'ai donné a besoin de 4 objets :
un document Word contenant une listbox, un classeur Excel
contenant une plage nommée. La listbox est remplie avec
les valeurs de la plage. À ce stade je ne peux rien faire
de plus si vous n’arrivez pas à le mettre en oeuvre. Désolé.

Anacoluthe
« Toute liste est perfectible »
- Ludwig WITTGENSTEIN

Avatar
Franck SCHRICKE
Bonjour !

Vous n'avez pas à l'être ! vous m'avez déjà bien aiguillé
et je vous remercie encore de votre précieuse aide,
je vais reprendre mes éléments afin d'y trouver la solution

@+
"Anacoluthe" a écrit dans le message de news:
ePNLP$
Bonjour !

'Sky' nous a écrit ...
Merci d'avoir répondu à ma requête, j'ai transposé ton code avec mon cas
de
figure, mais ma listbox reste désespérément vide.
Ayant actuellement des yeux de lapin russe, je préfère méditer posément
sur
cette problèmatique ce week end
Toutefois, j'ai analysé ton code et je l'ai également posé avec un
fichier
word "vierge" en reprenant un formulaire et contrôle listbox unique et le
résultat est le même
Ne faut-il pas créer une variable du type excel.application pour ouvrir
une
instance ?


Non, le code utilise la méthode GetObject sur un fichier xls :
l'objet est alors reconnu de classe WorkBook et l'application
Excel est automatiquement instancée.

Pour fonctionner le code que j'ai donné a besoin de 4 objets :
un document Word contenant une listbox, un classeur Excel
contenant une plage nommée. La listbox est remplie avec
les valeurs de la plage. À ce stade je ne peux rien faire
de plus si vous n’arrivez pas à le mettre en oeuvre. Désolé.

Anacoluthe
« Toute liste est perfectible »
- Ludwig WITTGENSTEIN