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

bonjur voisin

Voici une modification possible
Le nom de la feuille est dans ce cas intégré au vba
Si tu souhaites le mentionner dans la feuille , reviens et precise la cellule ou tu l'auras spécifié

Code:
 .Cells(i, 6) = "='" & NomDossier & "\[" & File.Name & "]demande de milieux'!" & Range("K7").Address
 
Re : modif code pour résoudre pb liens fichiers

Bonjour pierrejean

Heureux de te retrouver sur ce fil. Merci pour la réponse. Je n'arrivais pas à trouver la bonne syntaxe.
Le code me convient parfaitement. Par contre juste par curiosité j'aimerais savoir si il est possible d'indiquer à la place du nom de la feuille "demande de milieux" feuil1 correspondant à sa position dans l'arborescence sous vba ?
Je ne sais pas si je suis très clair ? en fait imaginons qu'un utilisateur renomme la feuille, la macro saurais tout de même trouver la bonne feuille.

Philippe
 
Re : modif code pour résoudre pb liens fichiers

Re

A priori ce doit etre possible mais dangereux
En fait pour autant qu'il me souvienne l'index de la feuille depend de sa place a l'affichage
Mais je regarde si quelque chose est possible dans ce sens
 
Re : modif code pour résoudre pb liens fichiers

Re

en me remuant un peu les neurones et en titillant F1 je crois avoir trouvé ce que tu souhaites

une fonction permettant de trouver dans un fichier la feuille de code Feuil1
je dis bien code(CodeName) et non Nom(Name) ledit Nom

Code:
Function nomfeuille(fichier As String, code As String)
 For Each sh In Workbooks(fichier).Sheets
   If sh.CodeName = code Then nomfeuille = sh.Name
 Next sh
End Function

et son utilisation dans ton cas

Code:
 nm = nomfeuille(File.Name, "Feuil1")
 .Cells(i, 6) = "='" & NomDossier & "\[" & File.Name & "]" & nm & "'!" & Range("K7").Address
 
Re : modif code pour résoudre pb liens fichiers

Je viens de tester ta dernière modif c'est parfait. Je vais garder cette fonction bien au chaud au cas ou !
Merci pour tout et bonne soirée.

Il me reste maintenant à démonter toute la déco de noël!
 
Re : modif code pour résoudre pb liens fichiers

Je reviens sur le fil car je viens de m'apercevoir que je me suis réjouis un peu vite. En fait lors de le mise à jour, je ne récupère pas la valeur de la cellule K7.
Peux-tu faire un essai avec mon fichier joint stp ? j'ai vérifié et revérifié ton code pour voir si je n'avais pas fait d'erreur de transcription et apparement tout est bon !
 
Re : modif code pour résoudre pb liens fichiers

Soir Bon
Un conseil nommer tes feuilles en utilisant la propriété Coding Name (name) par exemple ShAzerty
[Alt+F11] [F4] et non name ( sans parenthèses ) et faire référence dans ton code à ce nom , de cette façon si l'utilisateur change le nom d'onglet le code lui n'est pas à modifier
 
Re : modif code pour résoudre pb liens fichiers

bonjour Antiphot

Salut kiki29

Je suis étonné car chez moi cela fonctionne
J'ais néanmoins fait une legere modif qui devrait permettre d'eviter la mise a jour systematique:

.Cells(i, 6).Formula = .....

au lieu de

.Cells(i, 6) = ....

teste sur ces fichiers

Edit
@ kiki : As-tu testé ton fichier ??
 

Pièces jointes

Dernière édition:
Re : modif code pour résoudre pb liens fichiers

bonjour pierrejean, kiki29

Pour kiki29: j'ai testé ton fichier mais apparement la mise à jour ne se fait pas. Dès que j'ai un moment, je regarde cela de plus près.

Pour pierrejean: Je suis vraiment désolé mais chez moi cela ne fonctionne pas ! Si je récupère bien le chemin d'accès du fichier, Je ne récupère tjs pas la valeur K7 du fichier 102 sur la feuille "listedossier" de mon fichier source "année 2008" en F1. C'est bien bizarre tout cela

Pour info, je suis sous excel 2003, donc à priori cela devrait être bon ?
 
Re : modif code pour résoudre pb liens fichiers

Re
Je n'apportais une réponse qu'à :
"en fait imaginons qu'un utilisateur renomme la feuille, la macro saurais tout de même trouver la bonne feuille", pour le reste cela reste de votre ressort
 
Re : modif code pour résoudre pb liens fichiers

Re

A priori cela devrait etre bon !
je suis moi sous Office 2000 et 2003 devrait assurer la compatibilité ascendante

En fait que se passe-t-il ?
Que trouves-tu en F1 Feuille liste des dossiers du fichier Année 2008 lorsque tu cliques sur le bouton Mise a jour ?
Normalement si le fichier 102.xls est ouvert on devrait y trouver le contenu de K7 du fichier 102.xls feuille ayant pour codeName 'Feuil1' c'est-a-dire 'demande de milieux'
 
Re : modif code pour résoudre pb liens fichiers

Et bien en fait lors de la mise à jour je récupère bien le chemin d'accès du fichier 102.xls mais dans le cellule F1 du fichier "année 2008", alors que je devrais récupérer la valeur K1 (en rouge dans mon fichier 102.xls), je n'ai rien. Donc je vais aller me taper la tête contre un mur !
Non je plaisante, mais je ne vais pas vous prendre le chou avec ça. J'ai opté pour ta première modif qui fonctionne bien. Je vais simplement m'arranger pour masquer l'onglet de façon à ce qu'il ne soit pas modifié par inadvertance.

Et puis à mes moments perdus je vais me pencher sur le pb de ta 2ème proposition pour comprendre pourquoi cela ne fonctionne pas chez moi.

En tout cas un grand merci pour ta disponibilité.

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