Collection par variable [Résolu]

Teoftene 3 Messages postés samedi 8 avril 2006Date d'inscription 12 avril 2006 Dernière intervention - 8 avril 2006 à 19:36 - Dernière réponse : Teoftene 3 Messages postés samedi 8 avril 2006Date d'inscription 12 avril 2006 Dernière intervention
- 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
Afficher la suite 

5 réponses

Meilleure réponse
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 11 avril 2006 à 01:18
3
Merci
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>

Merci rvblog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 8 avril 2006 à 23:22
0
Merci
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 ?
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 9 avril 2006 à 16:36
0
Merci
Bonsoir,

var = "workbooks"
msgbox "Set fctfichier = fctapp." & var & ".Open
Teoftene 3 Messages postés samedi 8 avril 2006Date d'inscription 12 avril 2006 Dernière intervention - 9 avril 2006 à 18:43
0
Merci
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
Teoftene 3 Messages postés samedi 8 avril 2006Date d'inscription 12 avril 2006 Dernière intervention - 12 avril 2006 à 15:43
0
Merci
Où se trouve le temple dans lequel je dois t'aduler ???

=)

Grand merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.