Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Excel: construire une formule qui utilise des accès à des fichiers

ESCOUGER2022

XLDnaute Nouveau
Bonjour,
Dans un tableau une cellule contient la formule suivante : =SIERREUR(RECHERCHEH(X9;'C:\CVS\[2023_Recap_m_Rjx.xlsm]recap'!$G$4:$FS$4;1;FAUX);"-")
Chaque année ce tableau est dupliqué et je dois modifier cette cellule pour faire + 1 sur l'année (ici 2023)
Il y a comme cela d'autre cellules dans ce tableau et j'aimerai construire la formule de telle sorte qu'elle récupère le numéro de l'année dans une autre cellule. En d'autres termes remplacer 2023 par , par exemple, le contenu de la cellule A1 qui contiendrait la valeur 2023.
Merci d'avance de m'aider à trouver un moyen de réaliser cela. Peut-être un macro activée dans l'Autpen ?
 

vgendron

XLDnaute Barbatruc
Bonjour

pas besoin de macro pour ca
il te suffit d'inscrire l'année dans une cellule (A1 ici pour l'exemple)
et ensuite tu modifies ta formule pour reconstruire le chemin de recherche

=SIERREUR(RECHERCHEH(X9;'C:\CVS\["&A1 &"_Recap_m_Rjx.xlsm]recap'!$G$4:$FS$4;1;FAUX);"-")

pas testé, ==> peut etre faut il modifier la syntaxe, voir ajouter de l'indirect dans la formule
 

chris

XLDnaute Barbatruc
Bonjour

La fonction INDIRECT peut faire cela mail elle ne fonctionne que si le second classeur est ouvert

Avec 2019 et la présence de PowerQuery, on évite ce type de formule en réalisant le lien par PowerQuery et en dirigeant la recherche sur le classeur en cours
 

chris

XLDnaute Barbatruc
Salut Chris
et si on mixe avec la fonction "Lien.hypertexte" peut etre??

Bonjour
Le lien peut ouvrir le classeur effectivement mais il faut l'activer
  • soit manuellement
  • soit par VBA mais alors autant ouvrir le classeur par VBA
L'autre solution est de stocker les classeurs ensemble le chemin étant alors inutile (il s'affiche mais n'est pas utilisé)
 

ESCOUGER2022

XLDnaute Nouveau
Hélas je me suis réjoui un peu vite.
Au niveau de la syntaxe çà passe, mais lors de l'exécution çà ne fonctionne pas.

SIERREUR est toujours déclenché vrai, que la recherche soit fructueuse ou pas.

J'ai pourtant simplement remplacé 2023 par "&A1 &" dans la formule.

Il semble que l'interprétation de cette formule soit défaillante.
Avec 2023 et le fichier appelé +la feuille nommée recap présents dans le répertoire ç'est OK
En remplaçant seulement 2023 par "&A1 &" et en ayant inscrit 2023 dans la cellule A1 l'erreur est active et mon résultat est = à un signe moins (-)
 

ESCOUGER2022

XLDnaute Nouveau
Non Chris tu n'a pas prêché dans le desert, car si je ne sais pas encore faire cela avec Powerquery je pense que cela intéressera certaines autres personnes.
Je m'en suis provisoirement sorti et construisant la formule dans la macro auto_open.
z1 = "=IFERROR(HLOOKUP(RC[-1],'C:\CVS\["
z2 = Range("c1")
z3 = "_Recap_m_RM1.xlsm]recap'!R4C7:R4C175,1,FALSE),""-"")"
z = z1 & z2 & z3
y2 = "W" & y1
Range(y2).Select
ActiveCell.FormulaR1C1 = z

Certes ce n'est pas très élégant, ni performant mais cela me dépanne en attendant d'avoir trouvé mieux...sans doute via powerquery?
Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…