Formules à partir d'un lien hypertexte dans une autre case

Bonjour le forum,

J'aimerais créer un fichier excel (commandes.xlsx) contenant des informations provenant de plusieurs factures différentes (des fichiers excels aussi basés sur le même modèle).

Pour que ce se soit facile pour l'utilisateur j'aimerais qu'il ait simplement à mettre un lien hyperlien dans une case (l'hyperlien renseigne l'emplacement de la facture à synthétiser) et que le tableau de synthèse (commande.xlsx donc) complète de lui même la ligne à partir du fichier renseigné en hyperlien.

L'astuce c'est que je n'ai pas réussi à faire des formules pouvant utiliser le chemin de l'hyperlien : je n'ai pu que créer une version texte de la formule désirée.

Mon explication doit être embrouillée mais avec les deux fichiers en pièces jointe je pense que ça devient assez clair.

Merci !

75commandes.xlsx (10.17 Ko)
73facture.xlsx (8.65 Ko)

Salut le forum

A essayer

=LIEN_HYPERTEXTE(CONCATENER("[";Demandes!$M3;"]Feuil1!$C$4"))

Mytå

Super, maintenant le but c'est de récupérer immédiatement la valeur trouvée dans la case de la facture.

En fait l'utilisateur inscrit dans un lien hyper texte tout à droite du fichier "commande" et la ligne se remplit d'elle même grâce à des formules.

Bonjour

comment remplir ta ligne sans aucune donnée dans ton fichier?

Cordialement

Les données ne comptent pas tu peux mettre ce que tu veux dans les factures.

Mais le but c'est que la ligne des commandes soit remplie automatiquement lorsque quelqu'un indique le bon hyperlien. J'ai juste besoin d'aide pour la première formule, je n'avais juste réussi à faire une version "texte" de la formule que je voulais.

Bonsoir

Je peux me tromper, mais je ne pense pas que tu puisse faire ce que tu demandes à partir de ton lien hypertexte.

Je verrais davantage l'utilisation de la fonction INDIRECT.EXT du Pack Morefunc.

Cordialement

Re le forum

En utilisant le même principe que le lien hypertexte

=INDIRECT(CONCATENER("[";Demandes!$M3;"]Feuil1!$C$4"))

Mytå

Salut Mytå

Et un beau #VALEUR! comme résultat.

Cordialement

Re le forum

Un beau #Ref si le fichier est fermé c'est vrai.

Sinon un code de Frédéric Sigonneau

Nécessite d'acitver la référence : Microsoft ActiveX Data Objects 2.x library

'lire la valeur d'une cellule dans un classeur fermé

Sub test()
Dim fich$, feuil$, Cell As Range
  fich = "D:\TestADO.xls"
  feuil = "feuil1"
  Set Cell = Range("A1")

  MsgBox GetValueWithADO(fich, feuil, Cell)

End Sub

'Note : cette fonction est utilisable dans une feuille de calcul
'Ex :
' =GetValueWithADO("D:\TestADO.xls";"feuil1";A1)

Function GetValueWithADO(Classeur$, Feuille$, Cell As Range)
'renvoie la valeur de la cellule Cell de la feuille Feuille
'du classeur fermé Classeur
Dim RcdSet As Object
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range

  'prépare une "base de données" bidon pour la clause SELECT
  '(une entête fictive et une ligne de données)
  Set dummyBase = Cell.Resize(2)

  'prépare les commandes ADO et SQL
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & Classeur & ";" & _
                "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
  strCmd = "SELECT * FROM [" & Feuille & "$" & dummyBase.Address(0, 0) & "]"

  'crée l'objet Recordset
  Set RcdSet = CreateObject("ADODB.Recordset")

  'va chercher l'info
  RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText

  'et la renvoie
  GetValueWithADO = Application.Clean(RcdSet(0))
  'autre syntaxe possible
'  GetValueWithADO =Application.Clean(RcdSet.GetString(NumRows:=1))

  'nettoyage
  Set RcdSet = Nothing
End Function 'fs

Mytå

Il n'y a pas une simple fonction qui peut transformer un texte en une formule ?

Bonjour

Comme signalé précédemment, il y a la fonction INDIRECT.EXT

Cordialement

Il faudra installer cette fonction sur chaque ordinateur utilisant le fichier excel ? ou bien ça s'installe dans le document ?

Bonjour

Sur chaque PC

Cordialement

Le problème est que je dois utiliser cette feuille Excel sur de nombreux pc. Ce n'est donc pas possible pour moi.

N'y a t'il pas d'autres solutions sans passer par des macro pour remplir automatiquement ces lignes une fois que l'utilisateur à encodé l'hyperlien ?

Bonjour

Pour ma part, je ne connais pas d'autres moyens que par macro.

Cordialement

Salut le forum

Le problème avec les macros complémentaires est de faire l'installation sur tout les postes de travail,

c'est pour cela que j'avais proposé l'équivalent par macro qui a l'avantage de suivre le fichier.

Voir la ficelle : Au bas de la page #1

Mytå

Rechercher des sujets similaires à "formules partir lien hypertexte case"