XL 2016 Automatiser des liaisons avec un autre fichier

Msouami33

XLDnaute Nouveau
Bonjour,

Dans mon fichier il a y a des calcul qui sont associé au mois l'on est, par exemple en A2=3 pour mars, mais aussi a des cellules dans d 'autres fichiers, serait il possible d automatiser par rapport à la cellule A2.

Exemple:
Controle De Gestion Financiere\Reporting\2022\2022-02\Consolidation\[2022.02 Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$10, est ce que c'est possbible dans ce genre de lien de remplacer le 02 ci dessus par la cellule A2? 2 est donc le mios de fevrier

Merci d'avance :)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Msouami,
Peut être en utilisant la fonction "indirect", elle est faite pour ça :
Ca pourrait donner quelque chose comme ça :
VB:
=INDIRECT("'Controle De Gestion Financiere\Reporting\2022\2022-"&A2&"\Consolidation\[2022."&A2&" Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$10")
Mais, évidemment impossible à tester. A vous de tatonner.:)
 

Msouami33

XLDnaute Nouveau
Bonjour Msouami,
Peut être en utilisant la fonction "indirect", elle est faite pour ça :
Ca pourrait donner quelque chose comme ça :
VB:
=INDIRECT("'Controle De Gestion Financiere\Reporting\2022\2022-"&A2&"\Consolidation\[2022."&A2&" Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$10")
Mais, évidemment impossible à tester. A vous de tatonner.:)
Bonjour Sylvanu,

merci pour l'info je vais tatonner, du coup la cellule A2 ou j'ai mon chiffre représentant le mois, je dois la mettre en TEXTE pour que cela marche?
 

Msouami33

XLDnaute Nouveau
Dans ce cas remplacez A2 par DROITE("00"&A2;2) comme ça vous serez tranquille.
Bonjour sylvanu,

Bien joue pour la formule droite elle marche au top, par contre pour le reste malgres quelques transformation ca me renvoie toujours #REF!, je pense que c'est parce que c'est dans un autre dossier. la formule exacte est :

='S:\Controle De Gestion Financiere\Reporting\2022\2022-02\Consolidation\[2022.02 Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$22*-'S:\Controle De Gestion Financiere\Reporting\2022\Diffusion Reporting\Reporting It et Benelux et EAU\Italy\[Italy activity 022022 with Spain&Portugal.xlsx]Italy'!$F$9/1000/'S:\Controle De Gestion Financiere\Reporting\2022\2022-02\Consolidation\[2022.02 Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$10*1000

vu que je dois aller chercher dans mon S ca doit pas marcher, si tu as une idée? peut etre tu voudrais que je t'envoie un fichier?
 

Msouami33

XLDnaute Nouveau
Bonjour,
Je pense plutôt que dans votre formule il doit y avoir 3 indirect. Les signes de multiplication et de division doivent être hors indirect.
Indirect ne sert qu'à reconstituer une adresse.
Avez vous bien ces 3 indirect présent ?
Bonjour Sylvanu,

Effectivement cela marche, mais en faite je viens de voir qu'avec la fonction indirect il faut que tout les fichiers soient ouverts sinon ca ne marche pas, du coup c'est bien mais ca m'arrange pas tant que ca lol
 

Msouami33

XLDnaute Nouveau
Bonjour,
Juste pour savoir si vous pouviez l'écrire dans le code et apres je vous embete plus parce que j'avoue ne pas avoir trop compiis, si je vois le code ca sera plus simple pour tatonner ensuite
 

Pièces jointes

  • Exemple Fonction indirect.xlsx
    501.7 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
En PJ un essai avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A1]) Is Nothing Then
        [F16] = "='S:\Controle De Gestion Financiere\Reporting\2022\2022-" & [A2] & _
            "\Consolidation\[2022." & [A2] & _
            "  Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$22*-'S:\Controle De Gestion Financiere\Reporting\2022\Diffusion Reporting\Reporting It et Benelux et EAU\Italy\[Italy activity " & _
            [A2] & "2022 with Spain&Portugal.xlsx]Italy'!$F$9/'S:\Controle De Gestion Financiere\Reporting\2022\2022-" & [A2] & "\Consolidation\[2022." & [A2] & "  Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$10"
    End If
End Sub
La macro se lance automatiquement lorsque la valeur en A1 change. Elle utilise A2 comme variable.
Mais évidemment impossible à tester.
Il suffit de changer le mois, la formule change, on peut alors vérifier la formule en F16 ( je n'ai modifié que celle ci ) pour corriger.
J'ai supposé qu'il fallait modifier les 2022-01 et les 2022.01.
 

Pièces jointes

  • Exemple Fonction indirect.xlsm
    506 KB · Affichages: 11

Msouami33

XLDnaute Nouveau
Bonjour,
En PJ un essai avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A1]) Is Nothing Then
        [F16] = "='S:\Controle De Gestion Financiere\Reporting\2022\2022-" & [A2] & _
            "\Consolidation\[2022." & [A2] & _
            "  Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$22*-'S:\Controle De Gestion Financiere\Reporting\2022\Diffusion Reporting\Reporting It et Benelux et EAU\Italy\[Italy activity " & _
            [A2] & "2022 with Spain&Portugal.xlsx]Italy'!$F$9/'S:\Controle De Gestion Financiere\Reporting\2022\2022-" & [A2] & "\Consolidation\[2022." & [A2] & "  Division Profit & Loss Statement EMEA.xlsx]SASU'!$H$10"
    End If
End Sub
La macro se lance automatiquement lorsque la valeur en A1 change. Elle utilise A2 comme variable.
Mais évidemment impossible à tester.
Il suffit de changer le mois, la formule change, on peut alors vérifier la formule en F16 ( je n'ai modifié que celle ci ) pour corriger.
J'ai supposé qu'il fallait modifier les 2022-01 et les 2022.01.
A wé tu es vraiment trop fort, merci beaucoup !!! :)
 

Discussions similaires

Statistiques des forums

Discussions
312 905
Messages
2 093 469
Membres
105 740
dernier inscrit
Mln