Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

faire référence à un classeur externe dans une formule EQUIV

3 réponses
Avatar
Nadyajah
Bonjour,

Quelqu'un saurait comment faire référence à un classeur externe qui sera
différent à chaque fois?
Voici ma formule insérée dans une cellule de mon fichier "Fichier client".
Le classeur choisi ici est "Reporting REGIS.xls"
Le classeur concerné sera ouvert à chaque fois mais s'appelera :
Reporting xxx
Le nom du classeur sera positionné en A1 dans mon fichier "Fichier client"

ActiveCell.FormulaR1C1 = _
"=IF(RC[-9]="""","""",(IF(ISNA(MATCH(RC[-9],'Reporting
REGIS.xls'!Num_Salon,0)),""salon inconnu"",INDEX('Reporting
REGIS.xls'!Nom_Salon,MATCH(RC[-9],'Reporting REGIS.xls'!Num_Salon,0),1))))"


J'aimerai une formule par ex :

XXX=Range("A1")

"=IF(RC[-9]="""","""",(IF(ISNA(MATCH(RC[-9],'XXX!Num_Salon,0)),""salon
inconnu"",INDEX('XXX'!Nom_Salon,MATCH(RC[-9],'XXX'!Num_Salon,0),1))))"

Nadyajah

3 réponses

Avatar
Rai
Bonjour,

Quelqu'un saurait comment faire référence à un classeur externe qui sera
différent à chaque fois?
Voici ma formule insérée dans une cellule de mon fichier "Fichier client".
Le classeur choisi ici est "Reporting REGIS.xls"
Le classeur concerné sera ouvert à chaque fois mais s'appelera :
Reporting xxx
Le nom du classeur sera positionné en A1 dans mon fichier "Fichier client"

ActiveCell.FormulaR1C1 = _
"=IF(RC[-9]="""","""",(IF(ISNA(MATCH(RC[-9],'Reporting
REGIS.xls'!Num_Salon,0)),""salon inconnu"",INDEX('Reporting
REGIS.xls'!Nom_Salon,MATCH(RC[-9],'Reporting REGIS.xls'!Num_Salon,0),1))))"


J'aimerai une formule par ex :

XXX=Range("A1")

"=IF(RC[-9]="""","""",(IF(ISNA(MATCH(RC[-9],'XXX!Num_Salon,0)),""salon
inconnu"",INDEX('XXX'!Nom_Salon,MATCH(RC[-9],'XXX'!Num_Salon,0),1))))"

Nadyajah
Bonjour,


Place le nom du classeur, ou son numéro d'ordre dans une variable. Cela
te donnera quelquechose du genre :

Num = WorkBooks("Fichier Client").Sheets("Feuil1").range("A1")
' A adapter selon le nom de ta feuille contenant le numéro
NomClasseur = "Reporting " & Num
ActiveCell.FormulaR1C1 = _
"=IF(RC[-9]="""","""",(IF(ISNA(MATCH(RC[-9]," & NomClasseur" &
"!Num_Salon,0)),""salon inconnu"",INDEX(" & NomClasseur" &
"!Nom_Salon,MATCH(RC[-9]," & NomClasseur" & "!Num_Salon,0),1))))"

Bonne continuation

Rai

Avatar
JB
Bonjour,

Si le classeur est ouvert,on peut utiliser la fonction Indirect()

http://cjoint.com/?dsiHuDC0tE
http://cjoint.com/?dsiIFstr0Q

On recherche le prix d'un produit d'une table nommée Produit dans un
autre classeur:

B2 contient le nom du classeur:
B6 contient le code cherché

=RECHERCHEV(B6;INDIRECT("["&$B$2&"]"& "Feuil1!produit");2;FAUX)

ou

=INDEX(INDIRECT("["&$B$2&"]"&
"Feuil1!prix");EQUIV(B6;INDIRECT("["&$B$2&"]"& "Feuil1!codes");0))

Code Prix
P01 100
P02 110
P03 120
P04 130
P05 140

Cordialement JB
Avatar
Rai
Bonjour,

Si le classeur est ouvert,on peut utiliser la fonction Indirect()


Cordialement JB



Bonjour JB,

Tout à fait, INDIRECT aurait même ma préférence : préférer une belle
formule à de la programmation éventuellement inutile.

Après c'est selon la manière dont l'appli va être gérée.

En tous cas, voilà 2 solutions qui devraient permettre de s'en sortir
dans tous les cas de figure.

Bonne fin de semaine

Rai