Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Actualiser le chemin d'un dossier

19 réponses
Avatar
michir
Bonjour,
Je souhaiterais actualiser le chemine d'un dossier servant dans de nombreus=
es formules
Je m'explique, le chemin actuel est par exemple:
'=3D'D:\SUIVI HONORAIRES 2011\[Janvier 2011.xlsm]RECAP.'!$B$1
J'aimerais qu'il devienne automatiquement:
'=3D'D:\SUIVI HONORAIRES 2012\[Janvier 2012.xlsm]RECAP.'!$B$1
...et il y a 12 mois...
L'ann=E9e 2012 =E9tant sp=E9cifi=E9e en "ACCUEIL A1" par exemple
Est ce possible, de telle mani=E8re que cela soit automatique d=E8s que je =
change d'ann=E9e?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le cr=
=E9er manuellement
Merci

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Tu peux tout de suite faire un remplacement en recherchant, uniquement
dans les formules, 2011 par 2012 ou s'il y a risque de confusion, en
faisant deux remplacements, l'un en remplaçant "2011" par "2012", le
second "2011.xlsm]" par "2012.xlsm]".
Pour le dossier "SUIVI HONORAIRES 2012", je peux le créer manuellement


Et en ce qui concerne les 12 fichiers ?
Daniel


Bonjour,
Je souhaiterais actualiser le chemine d'un dossier servant dans de nombreuses
formules Je m'explique, le chemin actuel est par exemple:
'='D:SUIVI HONORAIRES 2011[Janvier 2011.xlsm]RECAP.'!$B$1
J'aimerais qu'il devienne automatiquement:
'='D:SUIVI HONORAIRES 2012[Janvier 2012.xlsm]RECAP.'!$B$1
...et il y a 12 mois...
L'année 2012 étant spécifiée en "ACCUEIL A1" par exemple
Est ce possible, de telle manière que cela soit automatique dès que je change
d'année?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le créer
manuellement Merci
Avatar
DanielCo
Pour une mise à jour par macro :

Sub test()
Dim Var, NouveauLien As String
Var = ActiveWorkbook.LinkSources
For i = 1 To UBound(Var)
NouveauLien = Replace(Var(i), [ACCUEIL!A1] - 1, [ACCUEIL!A1])
ActiveWorkbook.ChangeLink Var(i), NouveauLien
Next i
End Sub

Daniel


Bonjour,
Je souhaiterais actualiser le chemine d'un dossier servant dans de nombreuses
formules Je m'explique, le chemin actuel est par exemple:
'='D:SUIVI HONORAIRES 2011[Janvier 2011.xlsm]RECAP.'!$B$1
J'aimerais qu'il devienne automatiquement:
'='D:SUIVI HONORAIRES 2012[Janvier 2012.xlsm]RECAP.'!$B$1
...et il y a 12 mois...
L'année 2012 étant spécifiée en "ACCUEIL A1" par exemple
Est ce possible, de telle manière que cela soit automatique dès que je change
d'année?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le créer
manuellement Merci
Avatar
Frederic LE GUEN - MVP Excel
On 2 sep, 10:32, michir wrote:
Bonjour,
Je souhaiterais actualiser le chemine d'un dossier servant dans de nombre uses formules
Je m'explique, le chemin actuel est par exemple:
'='D:SUIVI HONORAIRES  2011[Janvier  2011.xlsm]RECAP.'!$B$1
J'aimerais qu'il devienne automatiquement:
'='D:SUIVI HONORAIRES  2012[Janvier  2012.xlsm]RECAP.'!$B$1
...et il y a 12 mois...
L'année 2012 étant spécifiée en "ACCUEIL A1" par exemple
Est ce possible, de telle manière que cela soit automatique dès que j e change d'année?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le cr éer manuellement
Merci



Bonjour,
Avec une fonction INDIRECT c'est très facile (et en plus tu donne tous
les paramètres dans ton énoncé ;) )
Alors, si tu cherches à rendre ton chemin variable en fonction de
l'année, tu écris
=INDIRECT("'='D:SUIVI HONORAIRES " &'Accueil'!A1&"[Janvier "
&'Accueil'!A1&".xlsm]RECAP.'!$B$1")

J'ai fait une fiche sur le sujet en mettant en relation des feuilles
de calculs dans le même classeur mais le principe est le même avec les
noms des classeurs ou des chemins.
http://www.excel-exercice.com/fonction-indirect

Cette fonction est vraiment un must quand on travaille fréquemment
avec des classeurs où un seul paramètre varie (comme dans ton cas)
Avatar
DanielCo
Bonjour Frédéric,
Comme il n'a pas affluence aujourd'hui,je vais me permettre d'objecter.
D'accord avec toi, INDIRECT est indispensable dans bien des cas;
seulement, le michir, il a écrit qu'il avait de nombreuses formules;
donc il faut qu'il se les paluche à la main (pléonasme ?). D'accord, ce
n'est qu'une fois pour toutes. Passe encore si les formules sont toutes
du genre de celle donnée en exemple. Ensuite, INDIRECT, à mon sens, a
deux inconvénients :
1. la formule est moins lisible.
2. les références sont gravées dans le marbre, quel que soit les lignes
et les colonnes ajoutées ou supprimées.
Bon, c'était surtout pour animer l'après-midi.
Cordialement.
Daniel


On 2 sep, 10:32, michir wrote:
Bonjour,
Je souhaiterais actualiser le chemine d'un dossier servant dans de
nombreuses formules Je m'explique, le chemin actuel est par exemple:
'='D:SUIVI HONORAIRES  2011[Janvier  2011.xlsm]RECAP.'!$B$1
J'aimerais qu'il devienne automatiquement:
'='D:SUIVI HONORAIRES  2012[Janvier  2012.xlsm]RECAP.'!$B$1
...et il y a 12 mois...
L'année 2012 étant spécifiée en "ACCUEIL A1" par exemple
Est ce possible, de telle manière que cela soit automatique dès que je
change d'année?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le créer
manuellement Merci



Bonjour,
Avec une fonction INDIRECT c'est très facile (et en plus tu donne tous
les paramètres dans ton énoncé ;) )
Alors, si tu cherches à rendre ton chemin variable en fonction de
l'année, tu écris
=INDIRECT("'='D:SUIVI HONORAIRES " &'Accueil'!A1&"[Janvier "
&'Accueil'!A1&".xlsm]RECAP.'!$B$1")

J'ai fait une fiche sur le sujet en mettant en relation des feuilles
de calculs dans le même classeur mais le principe est le même avec les
noms des classeurs ou des chemins.
http://www.excel-exercice.com/fonction-indirect

Cette fonction est vraiment un must quand on travaille fréquemment
avec des classeurs où un seul paramètre varie (comme dans ton cas)
Avatar
michir
Merci à tous, Hier je me suis colleter avec la fonction DECALER, aujourd' hui la fonctions INDIRECT, j'ai l'impression d'être devant une boite à outils magique...je n'exagère pas
Bien cordialement à vous tous, il me reste à bien intégrer tout ceci
Michel
Avatar
michir
Toujours michir,
je découvre le site Excel-Exercice cité par Frederic Le Guen...génial , détour obligatoire, je ne connaissais pas....
http://www.excel-exercice.com/fonction-indirect
Michel
Avatar
Frederic LE GUEN - MVP Excel
On 2 sep, 17:43, DanielCo wrote:
Bonjour Frédéric,
Comme il n'a pas affluence aujourd'hui,je vais me permettre d'objecter.
D'accord avec toi, INDIRECT est indispensable dans bien des cas;
seulement, le michir, il a écrit qu'il avait de nombreuses formules;
donc il faut qu'il se les paluche à la main (pléonasme ?). D'accord, ce
n'est qu'une fois pour toutes. Passe encore si les formules sont toutes
du genre de celle donnée en exemple. Ensuite, INDIRECT, à mon sens, a
deux inconvénients :
1. la formule est moins lisible.
2. les références sont gravées dans le marbre, quel que soit les li gnes
et les colonnes ajoutées ou supprimées.
Bon, c'était surtout pour animer l'après-midi.
Cordialement.
Daniel



> On 2 sep, 10:32, michir wrote:
>> Bonjour,
>> Je souhaiterais actualiser le chemine d'un dossier servant dans de
>> nombreuses formules Je m'explique, le chemin actuel est par exemple:
>> '='D:SUIVI HONORAIRES  2011[Janvier  2011.xlsm]RECAP.'!$B$1
>> J'aimerais qu'il devienne automatiquement:
>> '='D:SUIVI HONORAIRES  2012[Janvier  2012.xlsm]RECAP.'!$B$1
>> ...et il y a 12 mois...
>> L'année 2012 étant spécifiée en "ACCUEIL A1" par exemple
>> Est ce possible, de telle manière que cela soit automatique dès qu e je
>> change d'année?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le créer
>> manuellement Merci

> Bonjour,
> Avec une fonction INDIRECT c'est très facile (et en plus tu donne tou s
> les paramètres dans ton énoncé ;) )
> Alors, si tu cherches à rendre ton chemin variable en fonction de
> l'année, tu écris
> =INDIRECT("'='D:SUIVI HONORAIRES  " &'Accueil'!A1&"[Janvier   "
> &'Accueil'!A1&".xlsm]RECAP.'!$B$1")

> J'ai fait une fiche sur le sujet en mettant en relation des feuilles
> de calculs dans le même classeur mais le principe est le même avec les
> noms des classeurs ou des chemins.
>http://www.excel-exercice.com/fonction-indirect

> Cette fonction est vraiment un must quand on travaille fréquemment
> avec des classeurs où un seul paramètre varie (comme dans ton cas)- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



mouais, mouais.
C'est pas faux mais bon, je suis partisan d'avoir des formules plutot
que du code car c'est justement plus lisible. Alors je préfère prendre
le temps de faire une à une les formules pour péréniser le classeur.
Je parle en connaissance de cause, je suis en mission dans une société
pour reprendre des codes vieux de 15 ans (macro Lotus 1-2-3) et rien
ne vaut une bonne vieille formule.

Pour en revenir à la formule INDIRECT, il faut que les classeurs
sources soient ouvert. Sinon, il faut utiliser la formule de Laurent
Longre
Avatar
DanielCo
Encore plus important, il faut ajouter que INDIRECT ne fonctionne pas
quand l'argument fait référence à un classeur fermé. Dans notre cas, il
faudrait donc que les 12 classeurs sient ouverts.
Daniel


Bonjour Frédéric,
Comme il n'a pas affluence aujourd'hui,je vais me permettre d'objecter.
D'accord avec toi, INDIRECT est indispensable dans bien des cas; seulement,
le michir, il a écrit qu'il avait de nombreuses formules; donc il faut qu'il
se les paluche à la main (pléonasme ?). D'accord, ce n'est qu'une fois pour
toutes. Passe encore si les formules sont toutes du genre de celle donnée en
exemple. Ensuite, INDIRECT, à mon sens, a deux inconvénients :
1. la formule est moins lisible.
2. les références sont gravées dans le marbre, quel que soit les lignes et
les colonnes ajoutées ou supprimées.
Bon, c'était surtout pour animer l'après-midi.
Cordialement.
Daniel


On 2 sep, 10:32, michir wrote:
Bonjour,
Je souhaiterais actualiser le chemine d'un dossier servant dans de
nombreuses formules Je m'explique, le chemin actuel est par exemple:
'='D:SUIVI HONORAIRES  2011[Janvier  2011.xlsm]RECAP.'!$B$1
J'aimerais qu'il devienne automatiquement:
'='D:SUIVI HONORAIRES  2012[Janvier  2012.xlsm]RECAP.'!$B$1
...et il y a 12 mois...
L'année 2012 étant spécifiée en "ACCUEIL A1" par exemple
Est ce possible, de telle manière que cela soit automatique dès que je
change d'année?. Pour le dossier "SUIVI HONORAIRES 2012", je peux le créer
manuellement Merci



Bonjour,
Avec une fonction INDIRECT c'est très facile (et en plus tu donne tous
les paramètres dans ton énoncé ;) )
Alors, si tu cherches à rendre ton chemin variable en fonction de
l'année, tu écris
=INDIRECT("'='D:SUIVI HONORAIRES " &'Accueil'!A1&"[Janvier "
&'Accueil'!A1&".xlsm]RECAP.'!$B$1")

J'ai fait une fiche sur le sujet en mettant en relation des feuilles
de calculs dans le même classeur mais le principe est le même avec les
noms des classeurs ou des chemins.
http://www.excel-exercice.com/fonction-indirect

Cette fonction est vraiment un must quand on travaille fréquemment
avec des classeurs où un seul paramètre varie (comme dans ton cas)
Avatar
DanielCo
mouais, mouais.
C'est pas faux mais bon, je suis partisan d'avoir des formules plutot
que du code car c'est justement plus lisible. Alors je préfère prendre
le temps de faire une à une les formules pour péréniser le classeur.
Je parle en connaissance de cause, je suis en mission dans une société
pour reprendre des codes vieux de 15 ans (macro Lotus 1-2-3) et rien
ne vaut une bonne vieille formule.

Pour en revenir à la formule INDIRECT, il faut que les classeurs
sources soient ouvert. Sinon, il faut utiliser la formule de Laurent
Longre



En l'occurence, la macro ne remplace pas les formules, elle les modifie
en changeant l'année incluse dans les noms de dossier et de fichiers.
Et ces six lignes de code, s'il faut les réécrire dans 15 ans,
donneront du travail aux générations futures ;-)
Daniel
Avatar
Frederic LE GUEN - MVP Excel
On 2 sep, 21:10, DanielCo wrote:
> mouais, mouais.
> C'est pas faux mais bon, je suis partisan d'avoir des formules plutot
> que du code car c'est justement plus lisible. Alors je préfère pren dre
> le temps de faire une à une les formules pour péréniser le classe ur.
> Je parle en connaissance de cause, je suis en mission dans une sociét é
> pour reprendre des codes vieux de 15 ans (macro Lotus 1-2-3) et rien
> ne vaut une bonne vieille formule.

> Pour en revenir à la formule INDIRECT, il faut que les classeurs
> sources soient ouvert. Sinon, il faut utiliser la formule de Laurent
> Longre

En l'occurence, la macro ne remplace pas les formules, elle les modifie
en changeant l'année incluse dans les noms de dossier et de fichiers.
Et  ces six lignes de code, s'il faut les réécrire dans 15 ans,
donneront du travail aux générations futures   ;-)
Daniel



Ah mais je ne me plains pas de ré-écrire des macros vieilles de 15 ans
(c'est toujours du boulot en plus pour moi). Par contre, mes
utilisateurs eux font la gueule car ils ne comprennent rien !
Oui bien sur ton code est correct mais par expérience, si une fonction
fait aussi le même travail, alors je privilégie les fonctions ; tout
est affaire de goût
Et puis pour femer la parenthèse, je n'ai rien contre les macros. J'ai
même écrit un bouquin sur le sujet http://livre.fnac.com/a2988675/Frede ric-Le-Guen-Macros-et-langage-VBA
A+ Daniel
1 2