modif code pour résoudre pb liens fichiers

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 !

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous et meilleurs voeux pour 2008

La macro ci-jointe me permet en actionnant la commande mise à jour de récupérer le chemin d'accès et la valeur de la cellule K7 des fichiers excel situés dans le sous-répertoire "Commande de milieux 2008" et de l'afficher sur la feuille du classeur Année 2008.

Tout fonctionnait à merveille jusqu'à ce que je rajoute une feuille dans les fichiers ou je récupère la valeur de la cellule K7. Dès lors j'ai systématiquement la boite de dialogue "Sélectionner une feuille qui s'affiche !

Pour éviter cela, j'aimerais modifier la ligne de code suivante afin de spécifier la feuille "demande de milieux" qui contient la valeur de la cellule K7 à récupérer.

Code actuel:
.Cells(i, 6) = "='" & NomDossier & "\[" & File.Name & "]" & .Cells(i, 5) & "'!" & Range("K7").Address

ce code a été écrit par Mit@ et après quelques essais de modifs infructueux de ma part, j'aurais besoin d'un coup de main pour réécrire la ligne de code.
En vous remerciant par avance

Philippe

PS: dans les fichiers joints, ouvrir Année 2008.xls
 

Pièces jointes

Re : modif code pour résoudre pb liens fichiers

Bingo j'ai compris ! En relisant une de tes réponses (... si le classeur 102 est ouvert). Effectivement si j'ouvre manuellement le fichier 102, la macro fonctionne. Là ou le bas blesse c'est que je ne veux pas l'ouvrir manuellement. Dans ta 1ère modif cad en nommant la feuille

.Cells(i, 6) = "='" & NomDossier & "\[" & File.Name & "]demande de milieux'!" & Range("K7").Address

la macro fonctionne sans que je sois obligé d'ouvrir manuellement le classeur 102. Je ne sais pas si cela est possible dans le cas de la 2ème modif ?
 
Re : modif code pour résoudre pb liens fichiers

bonjour Phillipe 🙂
explication: tu n'as rien parceque le on error goto fin fait son boulot
et moi j'ais fait tous mes tests avec fichier 102 ouvert

Voila une version qui devrait fonctionner:
La fonction ouvre le fichier (102 ici ), cherche le nom dont le codeName est Feuil1, et referme le fichier (Malheureusement ce n'est pas instantané)

concernant le on error , je l'ais mis en commentaire avec des ajouts permettant eventuellement de le retablir (et de savoir qu'il y a eu erreur)

pour ma part je ne l'utilise que très rarement (toujours avec on error goto 0) en encadrant la ligne qui peut provoquer l'erreur (celle que je ne peux absolument pas eviter)
 

Pièces jointes

Re : modif code pour résoudre pb liens fichiers

re, une autre remarque on peut lire des valeurs de cellules dans des fichiers excel sans ouvrir ces derniers à l'écran : gain très net en terme de performance si le nb de fichiers est important, si en plus on a un plug in style Norton AV qui teste chaque fichier avant ouverture ...
 
Dernière édition:
Re : modif code pour résoudre pb liens fichiers

bonjour Phillipe
Merci kiki
Si tu as une macro pour lire dans un fichier fichier fermé le contenu d'une cellule de la feuille dont on connait le CodeName tu seras gentil de nous la transmettre

Pour ma part et apres recherches je n'ais pu accoucher que de ceci (pas beaucoup plus rapide que la version precedente)
 

Pièces jointes

Re : modif code pour résoudre pb liens fichiers

re
Merci kiki

J'ais bien vu
et par ailleurs reconnu la patte de Mita (a l'origine egalement d'une macro des fichiers qui nous interessent)
tout le probleme réside dans 'et adapter'
je te rappelle qu'il s'agit de lire dans un fichier fermé le contenu d'une cellule connaissant :
le chemin complet du fichier
le codeName de la feuille
l'adresse de la cellule
 
Re : modif code pour résoudre pb liens fichiers

Re,
qqch comme
Code:
Option Explicit

Dim Dossier As String
Dim NomFeuille As String
Dim NomFichier As String

.....

    NomDossier = "C:\Transfert\Essai\"
    NomFichier = "Essai.xls"
    NomFeuille = "Feuil1"

.....
    Cells(1, 1) = ExtraireValeur(NomDossier, NomFichier, NomFeuille, "A2")
.....

Private Function ExtraireValeur(ByVal Dossier As String, ByVal Fichier As String, _
                                ByVal feuille As String, ByVal Cellule As String)
Dim argument As String
    argument = "'" & Dossier & "[" & Fichier & "]" & feuille & "'!" & Range(Cellule).Address(, , xlR1C1)
    ExtraireValeur = ExecuteExcel4Macro(argument)
End Function
Toujours à adapter au contexte
 
Dernière édition:
Re : modif code pour résoudre pb liens fichiers

re
Merci encore Kiki

Dans la rubrique a adapter
Voici 2 fichiers
Je souhaite l'adaptation afin que le bouton Lire du fichier jelis.xls me lise la feuille ayant pour CodeName : Feuil1 du fichier testlecture.xls

J'ais pris quelques libertés avec ton code:

Code:
Option Explicit
 
Dim [COLOR=blue]Nom[/COLOR]Dossier As String
Dim NomFeuille As String
Dim NomFichier As String
 
.....
 
    NomDossier = "C:\Transfert\Essai\"
    NomFichier = "Essai.xls"
    NomFeuille = "Feuil1"
 
.....
    Cells(1, 1) = ExtraireValeur(NomDossier, NomFichier, NomFeuille, "A2")
.....
 
Private Function ExtraireValeur(ByVal Dossier As String, ByVal Fichier As String, _
                                ByVal feuille As String, ByVal Cellule As String)
Dim argument As String
    argument = "'" & Dossier & "[COLOR=blue]\[/COLOR][" & Fichier & "]" & feuille & "'!" & Range(Cellule).Address(, , xlR1C1)
    ExtraireValeur = ExecuteExcel4Macro(argument)
End Function

et je te rappelle que dès l'origine antiphot avait un code qui lisait dans un fichier fermé
je cherche une melleure formule que celle que tu n'as surement pas manqué d'etudier, et que je lui ais proposée, pour faire la même chose a partir du CodeName et non du Name de la feuille
 

Pièces jointes

Re : modif code pour résoudre pb liens fichiers

Re, oui il lit les valeurs dans des fichiers fermés mais conserve les liens avec tous les problemes induits par les liaisons, il faudrait ajouter un copy/paste par valeurs pour s'en défaire

Pour connaitre le CodeName d'une feuille il faut à priori l'ouvrir
 
Re : modif code pour résoudre pb liens fichiers

Bonjour pierrejean et kiki29

Désolé de n'intervenir que si tard sur le fil, mais j'ai du m'absenter de façon imprévue pour raisons professionnelles. En tout cas, je vois que le duo n'a pas chômé 🙂

Concernant le délai supplémentaire suite à l'ouverture et la fermeture du fichier, il est vrai que cela peut-être gênant d'autant qu'au fil de l'année, je peux me retrouver avec plus d'une centaine de classeurs à traiter.

Ainsi que vous l'avez justement remarqué et comme je l'avais d'ailleurs signalé ds mon 1er post la macro est de Mita qui l'avait je crois adapté d'une macro de F Sigonneau.

Je vais de ce pas tester les nouvelles versions.

Merci pour tout
Philippe
 
- 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
2
Affichages
1 K
Retour