OVH Cloud OVH Cloud

Conversion "contenu de case" --> "Coordonnée de case"

13 réponses
Avatar
Emmanuel Valette
Bonjour,

Je viens de découvrir et de m'inscrire sur ce forum.

Je dois apprendre à maitriser la programmation VBA sous Excel.
J'aurais besoin de vos conseils ...

En attendant, une première question concrète :

La formule suivante va chercher le contenu de la valeur
de la case A2 de la Feuille1 du fichier Donnees.xsl

='C:\[Donnees.xls]Feuille1'!A2

Ce que je voudrais, c'est que le nom du fichier (Donnees.xls)
ne soit pas en dur dans la case mais soit la valeur de ma
case A1 locale.

Merci de votre aide.
Emmanuel

10 réponses

1 2
Avatar
patrick.lyon
Emmanuel Valette a exprimé avec précision :
Bonjour,
bonjour


Je viens de découvrir et de m'inscrire sur ce forum.

bienvenue

Je dois apprendre à maitriser la programmation VBA sous Excel.
J'aurais besoin de vos conseils ...

En attendant, une première question concrète :

La formule suivante va chercher le contenu de la valeur
de la case A2 de la Feuille1 du fichier Donnees.xsl

='C:[Donnees.xls]Feuille1'!A2

Ce que je voudrais, c'est que le nom du fichier (Donnees.xls)
ne soit pas en dur dans la case mais soit la valeur de ma
case A1 locale.

Merci de votre aide.
Emmanuel
un conseil, ne met pas ton adresse mail exact


Avatar
Emmanuel Valette

un conseil, ne met pas ton adresse mail exact



Merci de tes souhaîts de bienvenue et du conseil !

Emmanuel

Avatar
patrick.lyon
Emmanuel Valette a exprimé avec précision :

un conseil, ne met pas ton adresse mail exact



Merci de tes souhaîts de bienvenue et du conseil !

Emmanuel


='C:[Donnees.xls]Feuille1'!A2&A1

avec le caractere & de concatenation


Avatar
Emmanuel Valette

='C:[Donnees.xls]Feuille1'!A2&A1

avec le caractere & de concatenation



Merci ... mais j'ai du mal m'exprimer :
Je ne veux plus avoir à mettre dans ma formule [Donnees.xls] mais
je veux lire "Donnees.xls" dans ma cellule A1

Emmanuel

Avatar
patrick.lyon
donc
='C:[Donnees.xls]Feuille1'!A2
te donnes le contenu de A2
si tu écrits ="'C:["&A1&"]Feuille1'!A2"
tu obtiens ta formule
pour la faire fonctionner utilise la fonction INDIRECT()

ce qui nous donnes =INDIRECT("'C:["&A1&"]Feuille1'!A2";vrai)


Emmanuel Valette avait soumis l'idée :

='C:[Donnees.xls]Feuille1'!A2&A1

avec le caractere & de concatenation



Merci ... mais j'ai du mal m'exprimer :
Je ne veux plus avoir à mettre dans ma formule [Donnees.xls] mais
je veux lire "Donnees.xls" dans ma cellule A1

Emmanuel



Avatar
Emmanuel Valette
Merci Patrick, je sens qu'on avance !
Mais j'ai essayé successivement les deux choses suivantes :

A1=Donnees.xls
A2="'C:["&A1&"]Feuille1'!A1"

PUIS :
A1=Donnees.xls
A2=INDIRECT("'C:["&A1&"]Feuille1'!A1";vrai)

et dans les deux cas, j'obtiens #REF
alors qu'avec A2="'C:[Donnees.xls]Feuille1'!A1" ça marche.

Je suppose qu'il faut mettre la commande INDIRECT() quelque part
ailleurs ... mais où ?

Emmanuel

donc
='C:[Donnees.xls]Feuille1'!A2
te donnes le contenu de A2
si tu écrits ="'C:["&A1&"]Feuille1'!A2"
tu obtiens ta formule
pour la faire fonctionner utilise la fonction INDIRECT()

ce qui nous donnes =INDIRECT("'C:["&A1&"]Feuille1'!A2";vrai)


Emmanuel Valette avait soumis l'idée :



='C:[Donnees.xls]Feuille1'!A2&A1

avec le caractere & de concatenation



Merci ... mais j'ai du mal m'exprimer :
Je ne veux plus avoir à mettre dans ma formule [Donnees.xls] mais
je veux lire "Donnees.xls" dans ma cellule A1

Emmanuel








Avatar
patrick.lyon
Note

Si l'argument réf_texte fait référence à un autre classeur (une référence externe), ce dernier doit être ouvert. Si le classeur
auxiliaire ne l'est pas, la fonction INDIRECT renvoie la valeur d'erreur #REF!

Emmanuel Valette a pensé très fort :
Merci Patrick, je sens qu'on avance !
Mais j'ai essayé successivement les deux choses suivantes :

A1=Donnees.xls
A2="'C:["&A1&"]Feuille1'!A1"

PUIS :
A1=Donnees.xls
A2=INDIRECT("'C:["&A1&"]Feuille1'!A1";vrai)

et dans les deux cas, j'obtiens #REF
alors qu'avec A2="'C:[Donnees.xls]Feuille1'!A1" ça marche.

Je suppose qu'il faut mettre la commande INDIRECT() quelque part ailleurs ... mais où ?

Emmanuel

donc
='C:[Donnees.xls]Feuille1'!A2
te donnes le contenu de A2
si tu écrits ="'C:["&A1&"]Feuille1'!A2"
tu obtiens ta formule
pour la faire fonctionner utilise la fonction INDIRECT()

ce qui nous donnes =INDIRECT("'C:["&A1&"]Feuille1'!A2";vrai)


Emmanuel Valette avait soumis l'idée :



='C:[Donnees.xls]Feuille1'!A2&A1

avec le caractere & de concatenation



Merci ... mais j'ai du mal m'exprimer :
Je ne veux plus avoir à mettre dans ma formule [Donnees.xls] mais
je veux lire "Donnees.xls" dans ma cellule A1

Emmanuel










Avatar
Emmanuel Valette
Je ne sais pas ce qu'est l'argument réf_texte, est-ce ["&A1&"] ?

Si oui, il fait référence, oui, à un autre classeur (c:Donnees.xls) ...
mais c'est la même chose dans la formule A2="'C:[Donnees.xls]Feuille1'!A1"
non ?

Désolé je débute ...

Note

Si l'argument réf_texte fait référence à un autre classeur (une
référence externe), ce dernier doit être ouvert. Si le classeur
auxiliaire ne l'est pas, la fonction INDIRECT renvoie la valeur d'erreur
#REF!

Emmanuel Valette a pensé très fort :

Merci Patrick, je sens qu'on avance !
Mais j'ai essayé successivement les deux choses suivantes :

A1=Donnees.xls
A2="'C:["&A1&"]Feuille1'!A1"

PUIS :
A1=Donnees.xls
A2=INDIRECT("'C:["&A1&"]Feuille1'!A1";vrai)

et dans les deux cas, j'obtiens #REF
alors qu'avec A2="'C:[Donnees.xls]Feuille1'!A1" ça marche.

Je suppose qu'il faut mettre la commande INDIRECT() quelque part
ailleurs ... mais où ?

Emmanuel


donc
='C:[Donnees.xls]Feuille1'!A2
te donnes le contenu de A2
si tu écrits ="'C:["&A1&"]Feuille1'!A2"
tu obtiens ta formule
pour la faire fonctionner utilise la fonction INDIRECT()

ce qui nous donnes =INDIRECT("'C:["&A1&"]Feuille1'!A2";vrai)


Emmanuel Valette avait soumis l'idée :



='C:[Donnees.xls]Feuille1'!A2&A1

avec le caractere & de concatenation



Merci ... mais j'ai du mal m'exprimer :
Je ne veux plus avoir à mettre dans ma formule [Donnees.xls] mais
je veux lire "Donnees.xls" dans ma cellule A1

Emmanuel















Avatar
patrick.lyon
la formule ne fonctionne pas de toute façon quand le classeur est fermé
réf_texte correspond a ta concaténation
regarde dans l'aide, c'est mieux expliqué

Je ne sais pas ce qu'est l'argument réf_texte, est-ce ["&A1&"] ?

Si oui, il fait référence, oui, à un autre classeur (c:Donnees.xls) ...
mais c'est la même chose dans la formule A2="'C:[Donnees.xls]Feuille1'!A1"
non ?

Désolé je débute ...



Avatar
patrick.lyon
la macro suivante fonctionne par contre
Sub Macro1()
ppvar = Range("A1")
ActiveCell.FormulaR1C1 = "='E:[" & ppvar & "]Feuil1'!R1C1"
End Sub
1 2