Sélectionner un fichier pour une liaison

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 !

Luicoaat

XLDnaute Nouveau
Bonjour,
Après quelques recherches sur le forum je ne crois pas avoir trouvé la solution à mon problème.

J'ai un tableau excel servant de modèle. A chaque début de mois, je rentre des informations spécifiques.
Une des feuilles du classeur doit être liée avec celle d'un autre fichier excel mais le problème est que ce fichier a un nom différent chaque mois.

J'ai donc, dans un premier temps, mis en place la macro suivante:

Sheets("REALISE").Select
Range("C4").Select
ActiveCell.Value = "='[INTERFACE 01 JANVIER 09.xls]GRENOBLE'!E7"


Je souhaiterais que l'utilisateur puisse sélectionner le fichier "INTERFACE 01 JANVIER 09" lui même puisque ce fichier n'est pas le même chaque mois.

En fait, je voudrais ceci:

Sheets("REALISE").Select
Range("C4").Select
ActiveCell.Value = "='[ouvrir un répertoire et sélectionner le fichier.xls]GRENOBLE'!E7"

De plus, si cela est possible, faire de même pour toutes les autres cellules à lier mais sans que l'on ait à sélectionner le fichier source qui serait le même.


J'espère que je me suis bien exprimée 😕

Merci de votre aide
 
Re : Sélectionner un fichier pour une liaison

Bonjour,

Une piste avec le code exemple ci-dessous dans lequel il vous
faudra adapter MesCellules = Array(... avec les adresses des cellules concernées.

Code:
Sub LiaisonFichier()
Dim MesCellules
Dim var
Dim Chemin$
Dim Fichier$
Dim i&
Dim S As Worksheet
'### Adapter les adresse de MesCellules ###
MesCellules = Array("c4", "c7", "c10")
'##########################################
var = Application.GetOpenFilename _
        (filefilter:="Classeur Microsoft Excel (*.xls), *.xls", _
         Title:="Sélectionner un fichier pour une liaison ")
If var = False Then Exit Sub
Fichier$ = Mid(var, InStrRev(var, "\") + 1)
Chemin$ = Mid(var, 1, Len(var) - Len(Fichier$))
Set S = Sheets("REALISE")
S.Select
For i& = LBound(MesCellules) To UBound(MesCellules)
  S.Range(MesCellules(i&)) = "='" & Chemin$ & "[" & Fichier$ & "]GRENOBLE'!E7"
Next i&
End Sub


Cordialement.

PMO
Patrick Morange
 
Re : Sélectionner un fichier pour une liaison

Je viens de faire un petit test et malheureusement, dans les cellules C4, C7 et C10 ça me copie la même valeur: celle de E7 du fichier GRENOBLE.
Puis-je faire en sorte que:
- dans la cellule C4 j'ai la liaison avec E7
- dans la cellule C5 j'ai la liaison avec E8
- ...
 
Re : Sélectionner un fichier pour une liaison

Bonjour,

Ce résultat est tout à fait normal puisque c'est le résultat escompté par le code.

Vous nous disiez "De plus, si cela est possible, faire de même pour toutes les autres cellules à lier mais sans que l'on ait à sélectionner le fichier source qui serait le même." sans indiquer quelles sont les cellules source ni quelles sont les cellules de destination.

Pouvez vous dresser une liste exhaustive de ces cellules du style :
Source= E7,E8,... va respectivement dans Destination= C4,C5,...
OU
si ce sont des plages
Source= E7:E65 va dans Destination= C4:C65

Cordialement.

PMO
Patrick Morange
 
Re : Sélectionner un fichier pour une liaison

J'ai trouvé autre chose aussi:

Sub LiaisonFichier()
Dim MesCellules
Dim var
Dim Chemin$
Dim Fichier$
Dim i&
Dim S As Worksheet
MesCellules = Array("c4")
var = Application.GetOpenFilename _
(filefilter:="Classeur Microsoft Excel (*.xls), *.xls", _
Title:="Sélectionner un fichier pour une liaison ")
If var = False Then Exit Sub
Fichier$ = Mid(var, InStrRev(var, "\") + 1)
Chemin$ = Mid(var, 1, Len(var) - Len(Fichier$))
Set S = Sheets("REALISE")
S.Select
For i& = LBound(MesCellules) To UBound(MesCellules)
S.Range(MesCellules(i&)) = "='" & Chemin$ & "[" & Fichier$ & "]GRENOBLE'!E7"
Next i&
End Sub

Je fais ensuite une macro de recopie automatique pour les cellules du bas

S.Range("C7") = "='" & Chemin$ & "[" & Fichier$ & "]GRENOBLE'!K7"
Puis encore la macro de recopie automatique vers le bas

...

Ca marche à merveille.

Merci pour votre aide.
 
- 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

Discussions similaires

Réponses
12
Affichages
500
Réponses
6
Affichages
736
Retour