Variable

Résolu
stefolo Messages postés 2 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 4 mars 2009 - 4 mars 2009 à 12:40
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 - 4 mars 2009 à 14:17
Bonjour à tous,

Je cherche désespérément une solution pour reprendre le contenu d'une variable un peu comme la fonction indirect() dans excel.

Voici le code qui me pose problème :


Dim fich, chem1, chem2, chem3, adresse, fichier As String



chem1 = "
[file://serveur1//Stock/Ad/
\\serveur1\\Stock\Ad\
]
"       
chem2 = "
[file://\\serveur2\\Stock\Az\
\\serveur2\\Stock\Az\
]
"
chem3 =
[file://\\serveur3\\Stock\Xz\
\\serveur3\\Stock\Xz\
]


....





For N = 1 To 8





fich = ActiveWorkbook.Name                        
adresse = "chem" & N                     
fichier = adresse & fich

.....

Next


j'aimerais que le contenu de la variable "fichier" soit égale à chaque passage de boucle par :

[file://\\serveur1\\Stock\Ad\FichierOuvert.xls \\serveur1\\Stock\Ad\FichierOuvert.xls]
[file://\\serveur2\\Stock\Az\ \\serveur2\\Stock\Az\]FichierOuvert.xls
[file://\\serveur3\\Stock\Xz\ \\serveur3\\Stock\Xz\]FichierOuvert.xls

Mais ça me donne :

chem1FichierOuvert.xls
chem2FichierOuvert.xls
chem3FichierOuvert.xls

Qq-un aurait-il une idée ?

Merci d'avance et bonnes salutations

Stéf

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 mars 2009 à 13:44
Salut
Le plus simple serait de créer un tableau de chaine
   Dim Chem(7) As String   ' Tableau d'index 0 à 7 = 8 éléments
De le renseigner
   Chem(0) = "\\serveur1\\Stock\Ad\FichierOuvert.xls"
   Chem(1) = "[file://\\serveur2\\Stock\Az\FichierOuvert.xls \\serveur2\\Stock\Az\FichierOuvert.xls]"
   ...
et quand tu en as besoin
   maChaine = Chem(monIndex)

NB : Le dimensionnement tel que
   Dim fich, chem1, chem2, chem3, adresse, fichier As String
ne signifie pas que tous les variables soient de type String.
Seule la dernière le sera, les précédente seront de type Variant
Il faut répéter le type pour chaque variable

PS : Le VB des applications Office est du VBA, pas du .Net --> Modif catégorie

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
4 mars 2009 à 13:46
bonjour
premiere erreur :
Dim fich, chem1, chem2, chem3, adresse, fichier As String
seul fichier est un string
tu aurais du mettre
Dim fich as string, chem1 as string , etc ...

pour le reste remplace chem1, chem2, chem3 par

dim chem(0) as string
chem(0) = " \\serveur1\\stock\Ad"
chem(1) = " \\serveur2\\stock\Az"
chem(2) = " \\serveur3\\stock\Xz"
ensuite
adresse =chem(N)      

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
4 mars 2009 à 13:47
oups ! jack tu as été plus rapide que moi 

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
stefolo Messages postés 2 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 4 mars 2009
4 mars 2009 à 14:09
ça marche du tonnerre !

GRAND merci à Jack et Pile_Poil

Stéf

P.S.  p/ Pile_Poil,
dim chem(0) as string ne marche pas, mais dim chem(7) as string pour mes 8 éléments
3

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

Posez votre question
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
4 mars 2009 à 14:17
absolument !
dans mon exemple j'aurais dû mettre dim chem(2) as string puisque je n'avais que trois éléments c'était une erreur de frappe

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
Rejoignez-nous