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

Fonction CONCATENER avec symboles spéciaux

  • Initiateur de la discussion Initiateur de la discussion the_ionic
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

the_ionic

Guest
Bonjour, je souhaite utiliser la fonction concaténer pour récupérer les valeurs d'une certaine cellule dans un fichier fermé.
Je dois donc produire un truc de la forme:
'nom_du_fichier'!nom_du_champ
le problème, c'est que nom de fichier se trouve dans une cellule:
Je fais donc:
=(CONCATENER(C6;"!nom_du_champ"))
Ca ça me produit un truc du style:
nom_du_fichier!nom_du_champ
Il me manque donc les symboles ' autour de nom_du_fichier.
Lorsque j'essaye de les ajouter, ça marche pas. Il doit sans doute y avoir moyen de dire que c'est un symbole spécial mais je ne sais pas comment faire...
merci d'avance
 
Re : Fonction CONCATENER avec symboles spéciaux

Effectivement, ça marche, merci beaucoup... quel imbécile de ne pas y avoir pensé!
Par contre, ça ne résouds pas mon problème, je m'explique!
Donc si je tape directement à la main la chose suivante:
='2006_Nantes_P_BDPv2.1_DAS_Audas.xls'!ChargeFinale
Ca me récupère bien la valeur que je veux soit 53.5.

Si j'essaye d'automatiser ça à l'aide de la formule ci-dessous:
=(CONCATENER("'";C27;"'";"!ChargeFinale"😉)
Et bien ça me retourne ça dans ma cellule:
'2006_Nantes_P_BDPv2.1_DAS_Audas.xls'!ChargeFinale
or moi je m'attends à retrouver ma valeur 53.5.
Il doit y avoir un problème de type mais je ne vois pas.

PS: Je ne veux pas utiliser la fonction INDIRECT car je veux pouvoir récupérer la valeur même si mon fichier '2006_Nantes_P_BDPv2.1_DAS_Audas.xls' n'est pas ouvert.

Merci d'avance!
 
Re : Fonction CONCATENER avec symboles spéciaux

C'est normal, car CONCATENER assemble juste des chaines de caractères ; et ne renvoie pas les valeurs..

D'accodac, et je fais comment alors moi 😉???

En gros, le truc, c'est que je veux pouvoir récupérer des valeurs de cellules dans un fichier qui est fermé... j'ai les nom de fichiers dans une cellule de mon classeur et donc ben je veux que ça se fasse en fonction du nom de fichier.
Donc je sais que faut faire un truc de la forme:
='D:\MesDocuments\Mondossier\[Monclasseur.xls]Feuil1'!B12
qu'on peut simplifier par:
='2006_Nantes_P_BDPv2.1_DAS_Audas.xls'!ChargeFinale
par exemple dans mon cas... donc comment je construis ça pour que ça se fassse automatiquement? CONCATENER est une mauvaise pistE?
 
Re : Fonction CONCATENER avec symboles spéciaux

Regarde peut-être du côté de ADO

Euh, j'ai regardé un peu ADO, ça me paraît bien complexe pour un truc qui me semble plutôt relativement trivial. De plus, normalement je ne dois pas utiliser de VB script dans ma feuille excel pour des sombres raisons que je n'oserai dévoiler 😉

Alors personne n'a la solution???
 
Re : Fonction CONCATENER avec symboles spéciaux

Bonjour à tous,

Il n'y a pas de fonction native sur Excel pour utiliser INDIRECT sur un classeur fermé.

Une solution : télécharger la macro complémentaire Morefunc.xll de Laurent Longre sur son site : Ce lien n'existe plus

Cette macro complémentaire ajoute 65 fonctions (je les ai pas comptées), dont une qui s'appelle INDIRECT.EXT qui devrait répondre à ton problème.

Si le fichier doit voyager de micro en micro, il faut que cette macro soit installée sur tous les postes.

@+
 
Re : Fonction CONCATENER avec symboles spéciaux

Bonjour

Même si ton problème de semble simple, ce qui n'est pas le cas. Tu n'as pas de solution avec les formules excel, il te faut passer par VBA.

@+Jean-Marie
 
Re : Fonction CONCATENER avec symboles spéciaux


Bonjour

Même si ton problème de semble simple, ce qui n'est pas le cas. Tu n'as pas de solution avec les formules excel, il te faut passer par VBA.

@+Jean-Marie

Ok, c'est bien noté. Je reste quand même pris d'un petit doute me faisant penser qu'une feinte de fenneck pourrait transformer mon truc en retour de valeur mais euh, je fais confiance aux experts.
Je m'en vais donc sortir l'artillerie VBA, que je vais essayer de ce pas!
Si j'ai un problème, je reviens par ici.

Merci à tous! 🙂
 
Re : Fonction CONCATENER avec symboles spéciaux

Bon, ayé, après m'être un peu battu avec VB (et surtout pompé honteusement une source Internet) situé sur l'excellente page:
Ce lien n'existe plus

J'en arrive à la conclusion qu'une fonction du style:

Code:
Function RECUP(Fichier As String, Feuille As String, _
Ligne As Long, Col As Integer)
With CreateObject("Excel.Application").Workbooks.Open(Fichier)
RECUP = .Worksheets(Feuille).Cells(Ligne, Col)
.Close False
End With
End Function

m'ira très bien. Alors oui, ça fonctionne, pas de souci, enfin si, quelques soucis. En gros, l'utilisation ne me convient pas!

Pour utiliser, on fait par exmeple:

Code:
=RECUP("C:\Test.xls";"Feuil1";5;10)

Et c'est là ou le bas blesse parce que faut indiquer le numéro de ligne, et le numéro de colonne... et ça, c'est pas bien pour mon cas, la cellule a récupérer n'étant pas forcément au même endroit, d'où l'utilisation de champ nommé. Donc je voudrais la même fonction, mais qui marche avec champ nommé, et là, ma nullité sans nom en VB ne me donne pas le début d'une solution.
Je sais bien que ça fait un peu le gars qui cherche pas mais euh, disons que si quelqu'un pouvait m'aider, ça m'arrangerait En plus, je pense que c'est quand même un problème interessant.

PS: Je ne peux pas utiliser morefunc enfin si, mais ça a fait planter ma version d'excel et je préfère pas prendre le risque au niveau de mes clients...
 
Re : Fonction CONCATENER avec symboles spéciaux

Merci beaucoup, excellente solution qui marche aussi bien avec des champs nommés, qu'avec un nom de cellule (par exemple B32).

Sincèrement merci à tous, j'espère ne plus reposter dans ce sujet, cela signifierait la fin de mes problèmes!🙂
 
Re : Fonction CONCATENER avec symboles spéciaux

Salut à tous, je souhaiterai ajouter un petit truc au code précédent.

Code:
Function RECUP(Fichier As String, Feuille As String, _
Champ As String)
With CreateObject("Excel.Application").Workbooks.Open(Fichier)
RECUP = .Worksheets(Feuille).Range(Champ)
.Close False
End With
End Function

En fait là, il faut absolument que la variable fichier contiennent le chemin, et le nom du fichier pour qu'il s'ouvre correctement. (Par exemple D:/repertoire_toto/truc.xls") or moi je voudrais que ça ouvre par défaut dans le répertoire courant (c'est à dire celui du classeur exécutant la fonction).
J'ai bien vu que Curdir pouvait m'aider ou un truc du genre, mais j'y arrive pas 🙁

Quelqu'un a-t'il la solution? Merci à tous
 
Re : Fonction CONCATENER avec symboles spéciaux

Et oui, encore une question... je pense que ça sera la dernière, mais je crois que ça fait 4 fois que je dis ça ;-)

Bon, tout marche bien là, maintenant, un dernier truc...
Lorsque j'ouvre mon classeur qui récupère les données à partir d'autres fichiers (sans les ouvrir), enfin qui fait ce qui doit faire en fait, un petit problème se pose à moi:
Le truc ne revérifie pas les valeurs, c'est à dire qu'il ne va pas voir dans le fichier si la valeur a changé, enfin il ne fait pas actualiser quoi, je sais pas trop comment m'exprimer... je crois que ça s'apelle recalcul en terme Excel.

Moi ce que je voudrai, c'est que quand j'ouvre mon classeur, il recalcule chaque champ qui fait appel à la fonction RECUP (oui je sais, ça va être ultra lourd, mais moi, je veux essayer comme ça dans un premier temps).
Valà, si c'est pas clair, hésitez pas à demander des précisions!
Merci d'avance!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
3
Affichages
1 K
Apuerio
A
D
Réponses
0
Affichages
2 K
Début-lent
D
P
Réponses
12
Affichages
2 K
Pauliakov
P
J
Réponses
7
Affichages
1 K
B
Réponses
9
Affichages
2 K
bloodyspyke
B
T
Réponses
2
Affichages
2 K
Taedd
T
G
Réponses
9
Affichages
4 K
graalnoir
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…