Rechercher et remplacer automatiquement

Bonjour à tous!

Un problème récurrent, lorsque je déplace un fichier ou qu'Excel le sauvegarde automatiquement à un endroit différent, Excel modifie l'adresse.

Par exemple:

=[Recettes.xlsb]NR!$P$5 devient :

='C:\Public\Partage\Tables\[Recettes.xlsb]NR'!$P$5, et cela sur parfois des milliers de cellules et plusieurs feuilles.

Je peux utiliser la fonction remplacer: "C:\Public\Partage\Tables\[" par "[" . Cela marche très bien, mais je voudrais créer une variable dans une cellule pour simplifier.

J'avais ce code, mais qui ne fonctionne plus, peut être créé avec une version antérieure:

Dim Aremp As String
Aremp = Range("E48") 'C:\Public\Partage\Tables\[ dans notre exemple
Dim Rempart As String
Rempart = Range("E49") '[ dans notre exemple
Range("A1").Select
Cells.Replace What:=Aremp, Replacement:= _
Rempart, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False _
, SearchFormat:=False, ReplaceFormat:=False
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
ActiveSheet.Calculate

Quelqu'un peut m'aider?

Bien cordialement.

Bonjour,

Merci d'utiliser les balises de codes en cliquant sur l'icone </> disponible dans le menu et en collant le code dans la fenêtre. Il sera plus facile à lire.

Cela marche très bien, mais je voudrais créer une variable dans une cellule pour simplifier.

Pas trop compris là...
Vous voulez mettre l'adresse dans une cellule de référence et utiliser cette cellule dans toutes les cellules où vous devez avoir l'adresse plutôt que de passer par un code ?

Cordialement

Bonjour, et merci beaucoup de votre réponse!

Oui, c'est tout à fait cela! Je voudrais mettre le complément d'adresse créé par excel dans une cellule qui servira de variable , et la valeur à attribuer dans une autre, sinon il faut recommencer l'opération manuellement sur des dizaines de feuilles.

Un autre exemple, une formule un peu plus complexe:

=SOMMEPROD((DECALER('C:\Public\Partage\Tables\[Recettes.xlsb]NR'!$R$1;A4;0):DECALER('C:\Public\Partage\Tables\[Recettes.xlsb]NR'!$R$1;B2;0)=$A$3)*(DECALER('C:\Public\Partage\Tables\[Recettes.xlsb]NR'!$AP$1;A4;0):DECALER('C:\Public\Partage\Tables\[Recettes.xlsb]NR'!$AP$1;B2;0)))

Je voudrais remplacer les

C:\Public\Partage\Tables\[

par

[

ou plus simplement supprimer les

C:\Public\Partage\Tables\

J'espère que je suis plus clair.

Bien cordialement

Bonjour,

Dan bonjour,

je pense qu'avec INDIRECT c'est possible, mais cette fonction ne gère pas les fichiers "fermés" d'Excel, il faut donc que le fichier source soit ouvert, il me semble.
Mais comme dit sur un autre fil, je ne maitrise pas les accès extérieurs au fichier utilisé... Alors je reste attentif.

@ bientôt

LouReeD

Bonjour

Quand les classeurs sont dans un même dossier, le chemin est éventuellement affiché mais non enregistré en dur dans le classeur.

Dans le cas contraire le chemin est en dur et non relatif.

Ce qu'il faut changer c'est la liaison, pas chaque cellule.

Mais DECALER et les références tableau ne fonctionnent pas si on se réfère à un fichier externe fermé donc tout cela ne me parait pas clair

Bonjour, et merci pour la réponse! Pardon de répondre tard, elle était en spam.

La citation de Confucius n'est pas complète.

Il a dit aussi " Quand un homme se noie, il n'est pas très utile de lui apprendre à pêcher". Ou il aurait pu le dire.

Rechercher des sujets similaires à "rechercher remplacer automatiquement"