Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb liaison word excel avec combobox

11 réponses
Avatar
Sky
bonjour à tous,

J'ai un userform dans word dans lequel est un combobox dont je voudrais que
le contenu se réfère à une plage nommé dans excel (ListeChantier).
Avec l'aide d'anacoluthe, il a été établi le code suivant que je n'arrive
pas à appliquer, le combobox reste désespérement vide alors que toutes les
données sont exactes.

Pour récapituler dans VB

- au niveau de This document j'ai le code suivant

Private Sub document_open()

Dim MonXL As Object
Dim Tablo As Variant
Set MonXL = GetObject("E:\PROJET EN COURS\CONTRATS WORD\planning.xls")
Tablo = MonXL.Names("ListeChantier").RefersToRange
Me.ListChant.List = Tablo
Set MonXL = Nothing

End Sub


- dans Feuilles
j'ai un userform "CDIC" avec aucun problème de code


- Dans modules
j'ai un module1 avec le code suivant

Sub autoopen()

CDIC.Show

End Sub

PS : dans mon userform ListChant existe bien sous le nom du combobox, le
chemin d'accès est bon
lorsque je lance la macro, le fichier est fermé et il n'a aucune protection

D'avance merci pour votre aide


--
Franck

1 réponse

1 2
Avatar
Sky
Merci clément

Je n'avais pas vu ton post
Avec votre aide j'ai trouvé la soluce

@+

"ClémentMarcotte" a écrit dans le message de
news:
Bonjour,

Si ce n'est pas confidentiel, mets une copie abrégée de ton classeur
(genre
une feuille typique avec une dizaine de lignes différentes) et ton fichier
Word sur:

http://www.cjoint.com et ramène nous le lien que cjoint va te donner à la
fin du processus.


"Sky" a écrit dans le message de
news:43185a3b$0$7849$
oui, mais elle ne donne aucun résultat, la liste reste vide

J'ai pensé qu'anacoluthe avait fait une erreur de syntaxe mais à priori,
c'est bon




"ClémentMarcotte" a écrit dans le message
de

news:
PS : si je peux me permettre et pour votre information la fonction
Name
ne
prend pas de s



Ça dépend:

Il y a la collection Names qui regroupe les objets Name.

Les objets Name

L' instruction Name pour renommer des fichiers.

M'est avis que le Names d'Anacoluthe est correct.

A partir du code ci-dessus, j'ai le message suivant

Erreur 451 : La procédure property let n'est pas définie et la
procédure



property get n'a pas renvoyé d'objet.



Où ?

De plus les procédures "Property" servent dans les modules de classe,
pas


dans les modules standards.


As-tu essayé la procédure d'Anacoluthe sans rien changer ?

"Sky" a écrit dans le message de
news:43184ac8$0$1740$
Bonjour !

J'ai avancé dans mon problème, après avoir potassé l'aide embarquée
dans



word, j'ai modifié un peu votre code :

Public Sub RemplirComboAvecExcel()

Dim MonXL As Object
Dim Tablo As Variant

Set MonXL = GetObject(, "excel.application")
MonXL.Visible = False
MonXL.Workbooks.Open ("E:PROJET EN COURSCONTRATS WORDplanning.xls")

Tablo = MonXL.Name("ListeChantier").RefersToRange
CDIC.ListChant.List = Tablo
CDIC.ListChant.ListIndex = 0
Set MonXL = Nothing


End Sub

=> Autant je comprends la propriété d'appel de l'application (en
l'occurence

ici excel, avec l'ouverture du classeur planning.xls) que je
m'interroge



sur
la propriété let

Pouvez vous m'aiguiller sur son fonctionnement ?
d'avance merci

@+
End Sub
"Anacoluthe" a écrit dans le message de
news:

%
Bonjour !

'Franck SCHRICKE' nous a écrit ...
Désolé pour les erreurs de vocable, mais je suis franchement perdu
dans
le vb et j'essaye d'avancer du mieux que je peux.
Etant autodidacte, je n'ais pas les bases de ce langage
Merci de votre compréhension


Pas grave, on a l'habitude ici. Commencez par faire du simple
pour comprendre comment ça marche. Voyez les exemples de la faq.
Sur le forum on peut vous donner un coup de main, vous orienter
sur une propriété ou une méthode d'un objet mais on ne peut pas
écrire une application à votre place. Bon courage !

Essayez encore...
Une UserForm nommée MaUserForm contenant une ComboBox nommée
ComboBox1 à remplir avec la plage ListeChantier de Planning.xls :

Public Sub RemplirComboAvecExcel()
Dim MonXL As Object
Dim Tablo As Variant
Set MonXL = GetObject("E:planning.xls")
Tablo = MonXL.Names("ListeChantier").RefersToRange
MaUserForm.ComboBox1.List = Tablo
MaUserForm.ComboBox1.ListIndex = 0
Set MonXL = Nothing
End Sub

Public Sub LanceUserForm()
RemplirComboAvecExcel
MaUserForm.Show
End Sub

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS



















1 2