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
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")
=> 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
Merci clément
Je n'avais pas vu ton post
Avec votre aide j'ai trouvé la soluce
@+
"ClémentMarcotte" <clement.marcotte@sympatico.ca> a écrit dans le message de
news: OHVP7E9rFHA.2880@TK2MSFTNGP12.phx.gbl...
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" <schricke.franck@wanadoo.fr> a écrit dans le message de
news:43185a3b$0$7849$8fcfb975@news.wanadoo.fr...
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" <clement.marcotte@sympatico.ca> a écrit dans le message
de
news: e4qY5A8rFHA.3440@TK2MSFTNGP10.phx.gbl...
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" <schricke.franck@wanadoo.fr> a écrit dans le message de
news:43184ac8$0$1740$8fcfb975@news.wanadoo.fr...
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")
=> 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" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news:
%23eDKHCnrFHA.3096@TK2MSFTNGP15.phx.gbl...
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
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")
=> 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