Collection par variable

Résolu
Teoftene Messages postés 3 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 12 avril 2006 - 8 avril 2006 à 19:36
Teoftene Messages postés 3 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 12 avril 2006 - 12 avril 2006 à 15:43
Bonjour

Je cherche depuis plusieurs à faire passer une variable dans une collection.

Mon projet va chercher dans une BDD le type de document à ouvrir. Workbooks pour Excel et Documents sir c'est Word.
Je souhaite que ce projet évolutif par lui même et que donc, si un nouveau type est utilisé, il soit simplement ajouté à la BDD sans que personne ne soit obligé de rentrer dans le code.

Dim fctapp as Object
Dim fctfichier as Object

Set fctapp = CreateObject(strapplication) 'strapplication renvoi Excel.Application ou Word.Application

Set fctfichier = fctapp.workbooks.Open(strvierge & strtype & " Vierge" & strextension)

'strvierge --> renvoi une partie du chemin d'adresse
'strtype --> renvoi une autre partie du chemin d'adresse
'strextension --> renvoi .xls ou .doc

Je souhaiterais trouver un moyen pour que Workbooks ici en rouge, soit remplacer par une variable qui irait chercher dans la BDD soit, Workbooks, soit Documents.

J'ai essayé pas mal de chose, la création d'une nouvelle collection, passer par un objet mais rien y fait ...

Quelqu'un aurait il une idée et/ou une solution ????

Merci

5 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
11 avril 2006 à 01:18
Salut 742589 Teoftene, salut =941 Willi, salut 9517 JMO,

Teoftene, ce qu'il te manque, c'est la fonction CallByName (méconnue, mais VB quand même).

Cela donnera, dans ton cas :

Dim fctApp As Object' notes: la casse Chameau, c'est plus lisible
Dim objConteneur as Object
Dim fctFichier as Object

Set fctApp = CreateObject(strApplication) 'strApplication renvoi Excel.Application
' ou Word.Application
'récupère la collection et affecte sa référence dans objConteneur
Set objConteneur = CallByName (fctApp, _
strNomObjetConteneur, _
VbGet)'strNomObjetConteneur contient soit
' "Documents" soit "WorkBooks"
'et ensuite on appelle la méthode que l'on veut
'soit comme ça (bôf)
Set fctFichier = objConteneur.Open(strVierge & strType & " Vierge" & strExtension)
'soit comme ça (ah, yes!)
Set fctFichier = CallByName(objConteneur, _
"Open", _
VbMethod, _
strVierge & strType & " Vierge" & strExtension)

PS : n'oublies pas d'accepter la réponse, si c'est celle que tu attendais depuis longtemps, et surtout, si tu l'as testée et validée!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
8 avril 2006 à 23:22
Bonsoir,
Je n'ai pas trop compris.
Avant l'appel de l'instruction: Set fctfichier = fctapp.workbooks.Open(strvierge & strtype & " Vierge" & strextension)
Quelles sont les valeurs de strvierge, strtype et strextension ?
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
9 avril 2006 à 16:36
Bonsoir,

var = "workbooks"
msgbox "Set fctfichier = fctapp." & var & ".Open
0
Teoftene Messages postés 3 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 12 avril 2006
9 avril 2006 à 18:43
Sur mon projet, j'ai plusieurs type de fichier. Pour plus de clarté, disons qu'il y aura un type A, un B, un C et un D.

strvierge = "c:\monprojet"
strtype = "B"
strextension = ".xls"

Donc cela ouvre le fichier "B Vierge.xls" se trouvant dans le dossier "c:\monprojet"

JMO j'ai essayé, ca m'affiche bien ce que je recherche, mais impossible de d'assigner une variable dans l'objet fctfichier.
L'erreur qu'il ressort : "Objet requis"

Je cherche à ce que cela donne :

var ="Workbooks"
Set fichier = fctapp.var.Open(strvierge & strtype & " Vierge" & strextension)

Mais ca veut po
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Teoftene Messages postés 3 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 12 avril 2006
12 avril 2006 à 15:43
Où se trouve le temple dans lequel je dois t'aduler ???

=)

Grand merci
0
Rejoignez-nous