Bonjour à tous,
Mon chemin d'accès complet => Z:\AFFAIRES\18000\DOSSIERS\Essai 3.xlsm
Pour l'instant dans la cellule B3 j'ai => =STXT(CELLULE("nomfichier");13;5) qui me permet de récupérer le "18000" (5 caractères à partir du 13ième caractère).
J'en suis à récupérer la totalité du chemin par :
Code:
Sub test3()
Range("B3") = ThisWorkbook.FullName
End Sub
mais je n'arrive pas à extraire le "18000" (?)
Merci pour votre aide.
Bonjour vgendron, Jacky67, le Forum,
Merci à vous 2 pour vos solutions (il a fallu en choisir 1 en "Solution"...désolé )
Je l'ai donc inséré dans mon code.
Un problème subsiste :
Quand la macro se lance, elle me demande de "Mettre à jour les valeurs" à chaque cellule modifiée (par la suite, que je pointe le dossier ou que je fasse "Annuler" la cellule va bien chercher au bon endroit).
J'ai tenté :
Alors la cellule B4 arrive correctement puis tout le reste en #REF!
Si je vais dans la cellule B5, je fais "Entrée" dans la formule, je cible le dossier et le lien se fait.
Par la suite, si j'efface le contenu de toutes les cellules et que je relance la macro, cette fois ci, le lien avec la cellule B5 se fait [il garde en mémoire le lien (?)] .
Merci pour votre aide.
Désolé,
mais en fait, on ne comprend plus rien à ce que tu souhaites faire
des bouts de code sans aucun fichier n'aident pas à la compréhension de ton problème qui était juste d'extraire un bout de chaine
Désolé,
Voici mon classeur.
Au début, sous l'Explorateur, j'ai un répertoire DOSSIER TYPE que je duplique et que je renomme.
Dans mon exemple il prend le nom de 18000.
VB:
[B4] = Split(ThisWorkbook.FullName, "\")(2)
me permet de récupérer 18000 dans ma cellule B4.
La formule, sous le DOSSIER TYPE donne (exemple avec la cellule B16) : ='\\srv\AFFAIRES\DOSSIER TYPE\DOSSIER\[Dossier type.xlsm]Questionnaire'!$B$16
Sous 18000, elle devient :
='\\srv\AFFAIRES\18000\DOSSIER\[Dossier 18000.xlsm]Questionnaire'!$B$16
d'où :
Désolé,
Voici mon classeur.
Au début, sous l'Explorateur, j'ai un répertoire DOSSIER TYPE que je duplique et que je renomme.
Dans mon exemple il prend le nom de 18000.
VB:
[B4] = Split(ThisWorkbook.FullName, "\")(2)
me permet de récupérer 18000 dans ma cellule B4.
La formule, sous le DOSSIER TYPE donne (exemple avec la cellule B16) : ='\\srvpcvs01\PCVS\AFFAIRES\DOSSIER TYPE\DOSSIER\[Dossier type.xlsm]Questionnaire'!$B$16
Sous 18000, elle devient :
='\\srvpcvs01\PCVS\AFFAIRES\18000\DOSSIER\[Dossier 18000.xlsm]Questionnaire'!$B$16
d'où :
as tu bien compris le fonctionnement de la fonction split?
cette fonction découpe une chaine de caractère avec le séparateur spécifié
exemple
chaine="ceci est le texte à découper"
séparateur = " "
split(chaine, séparateur)(0) '==> retourne le premier element de la chaine ==> ceci
split(chaine,séparateur)(3) '==>retourne le 4eme élément de la chaine==>texte
donc selon ou tu places ton classeur, et donc la position de 18000 dans la chaine, il va falloir adapter l'indice de retour (0 1 2 3 ....)
dans la macro
si tu fais application.displayalerts=false
il faut absolument le remettre à true en fin de macro
Le "18000" apparaissait bien en B4, mais je ne comprenais pas pourquoi avec le (2) du split [au lieu du (5)].
Avec le (5) j'avais => Erreur d'exécution'9': L'indice n'appartient pas à la sélection.
Mon chemin était erroné, javais noté :
='\\srv\AFFAIRES\DOSSIER TYPE\DOSSIER\[Dossier... [qui donne bien (5) avec "\" dans le split]
Au lieu de :
='srv\AFFAIRES\DOSSIER TYPE\DOSSIER\[Dossier... [qui donne bien (2) avec "\"dans le split]
Ce qui donne :
Bonjour vgendron, Jacky67, le Forum,
Merci pour votre aide.
J'ai bien pataugé...et viens de trouver pourquoi le lien ne se faisait pas correctement.
Le chemin contient \DOSSIERS\ avec un S ...
Le code était \DOSSIER\ sans S ...
Tout fonctionne.
Merci pour votre persévérance et votre pédagogie.