Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par Insertion>Nom>Définir…
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par Insertion>Nom>Définir…
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par Insertion>Nom>Définir…
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui, de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui, de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
03D13DB6-613E-43BF-9A38-FB2C3FBC08F8@microsoft.com...
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui, de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui, de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui, de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
03D13DB6-613E-43BF-9A38-FB2C3FBC08F8@microsoft.com...
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui, de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
03D13DB6-613E-43BF-9A38-FB2C3FBC08F8@microsoft.com...
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Tu as raison, on peut nommer directement la plage par macro.
Si le nom existe déjà, le renommer à nouveau remplace l'ancienne référence
par la nouvelle
Sub NommerPlage()
Names.Add Name:="Test", RefersTo:="=$a$1"
Names.Add Name:="Cible",
RefersTo:="='c:données[cible.xls]feuil1'!$a$1"
End Sub
Attention. Si tu fais référence à une plage nommée dans un autre classeur,
il faut ôter les crochets encadrant le nom du classeur
Names.Add Name:="cible1", RefersTo:="='c:donnéescible.xls'!nom"
Ok?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Tu as raison, on peut nommer directement la plage par macro.
Si le nom existe déjà, le renommer à nouveau remplace l'ancienne référence
par la nouvelle
Sub NommerPlage()
Names.Add Name:="Test", RefersTo:="=$a$1"
Names.Add Name:="Cible",
RefersTo:="='c:données[cible.xls]feuil1'!$a$1"
End Sub
Attention. Si tu fais référence à une plage nommée dans un autre classeur,
il faut ôter les crochets encadrant le nom du classeur
Names.Add Name:="cible1", RefersTo:="='c:donnéescible.xls'!nom"
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
DE7CC0C4-FB1A-4126-B5E3-79DCBD0E18B1@microsoft.com...
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
03D13DB6-613E-43BF-9A38-FB2C3FBC08F8@microsoft.com...
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
Tu as raison, on peut nommer directement la plage par macro.
Si le nom existe déjà, le renommer à nouveau remplace l'ancienne référence
par la nouvelle
Sub NommerPlage()
Names.Add Name:="Test", RefersTo:="=$a$1"
Names.Add Name:="Cible",
RefersTo:="='c:données[cible.xls]feuil1'!$a$1"
End Sub
Attention. Si tu fais référence à une plage nommée dans un autre classeur,
il faut ôter les crochets encadrant le nom du classeur
Names.Add Name:="cible1", RefersTo:="='c:donnéescible.xls'!nom"
Ok?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <> 0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
OK
J'ai adapté la solution à mon cas de la façon suivante :
Dans le classeur Base.xls je crée une nouvelle feuille Init où je mets le
nom des plages : dans la colonne A les plges du classeur Base.xls, et dans
la
colonne B et en regard les plages correspondantes du classeur Données.xls
(j'utilise pour cela par exemple Insertion>Nom>Coller une liste, puis
comme
le chemin apparaît dans les cellules de la colonne B, je le remplace par
rien
et je n'ai que le nom de la plage)
Ensuite j'écris la procédure suivante :
Sub NommerPlage()
Workbooks("Base.xls").Sheets("Init").Activate
DerLig=Range("A65536").EndxlUp).Row
For Ligne = 1 To DerLig
Names.Add Name:=Range("A" & Ligne), RefersTo:="='" & chem & "'!" &
Range("B"
& Ligne)
Next Ligne
WorkBooks("Base.xls").Sheets(1).Activate
End Sub
chem est le chemin du classeur Données.xls défini par ailleurs.
Attention à la saisie des caractères :
"='" est en fait " puis = puis ' puis "
"'!" est en fait " puis ' puis ! puis "
GGALTu as raison, on peut nommer directement la plage par macro.
Si le nom existe déjà, le renommer à nouveau remplace l'ancienne
référence
par la nouvelle
Sub NommerPlage()
Names.Add Name:="Test", RefersTo:="=$a$1"
Names.Add Name:="Cible",
RefersTo:="='c:données[cible.xls]feuil1'!$a$1"
End Sub
Attention. Si tu fais référence à une plage nommée dans un autre
classeur,
il faut ôter les crochets encadrant le nom du classeur
Names.Add Name:="cible1", RefersTo:="='c:donnéescible.xls'!nom"
Ok?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais
la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas
nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si
oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <>
0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien
en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de
news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
OK
J'ai adapté la solution à mon cas de la façon suivante :
Dans le classeur Base.xls je crée une nouvelle feuille Init où je mets le
nom des plages : dans la colonne A les plges du classeur Base.xls, et dans
la
colonne B et en regard les plages correspondantes du classeur Données.xls
(j'utilise pour cela par exemple Insertion>Nom>Coller une liste, puis
comme
le chemin apparaît dans les cellules de la colonne B, je le remplace par
rien
et je n'ai que le nom de la plage)
Ensuite j'écris la procédure suivante :
Sub NommerPlage()
Workbooks("Base.xls").Sheets("Init").Activate
DerLig=Range("A65536").EndxlUp).Row
For Ligne = 1 To DerLig
Names.Add Name:=Range("A" & Ligne), RefersTo:="='" & chem & "'!" &
Range("B"
& Ligne)
Next Ligne
WorkBooks("Base.xls").Sheets(1).Activate
End Sub
chem est le chemin du classeur Données.xls défini par ailleurs.
Attention à la saisie des caractères :
"='" est en fait " puis = puis ' puis "
"'!" est en fait " puis ' puis ! puis "
GGAL
Tu as raison, on peut nommer directement la plage par macro.
Si le nom existe déjà, le renommer à nouveau remplace l'ancienne
référence
par la nouvelle
Sub NommerPlage()
Names.Add Name:="Test", RefersTo:="=$a$1"
Names.Add Name:="Cible",
RefersTo:="='c:données[cible.xls]feuil1'!$a$1"
End Sub
Attention. Si tu fais référence à une plage nommée dans un autre
classeur,
il faut ôter les crochets encadrant le nom du classeur
Names.Add Name:="cible1", RefersTo:="='c:donnéescible.xls'!nom"
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
DE7CC0C4-FB1A-4126-B5E3-79DCBD0E18B1@microsoft.com...
Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais
la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas
nommer
les plages directement par macro ?
GGal
Bonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si
oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <>
0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien
en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de
news:
03D13DB6-613E-43BF-9A38-FB2C3FBC08F8@microsoft.com...
Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal
OK
J'ai adapté la solution à mon cas de la façon suivante :
Dans le classeur Base.xls je crée une nouvelle feuille Init où je mets le
nom des plages : dans la colonne A les plges du classeur Base.xls, et dans
la
colonne B et en regard les plages correspondantes du classeur Données.xls
(j'utilise pour cela par exemple Insertion>Nom>Coller une liste, puis
comme
le chemin apparaît dans les cellules de la colonne B, je le remplace par
rien
et je n'ai que le nom de la plage)
Ensuite j'écris la procédure suivante :
Sub NommerPlage()
Workbooks("Base.xls").Sheets("Init").Activate
DerLig=Range("A65536").EndxlUp).Row
For Ligne = 1 To DerLig
Names.Add Name:=Range("A" & Ligne), RefersTo:="='" & chem & "'!" &
Range("B"
& Ligne)
Next Ligne
WorkBooks("Base.xls").Sheets(1).Activate
End Sub
chem est le chemin du classeur Données.xls défini par ailleurs.
Attention à la saisie des caractères :
"='" est en fait " puis = puis ' puis "
"'!" est en fait " puis ' puis ! puis "
GGALTu as raison, on peut nommer directement la plage par macro.
Si le nom existe déjà, le renommer à nouveau remplace l'ancienne
référence
par la nouvelle
Sub NommerPlage()
Names.Add Name:="Test", RefersTo:="=$a$1"
Names.Add Name:="Cible",
RefersTo:="='c:données[cible.xls]feuil1'!$a$1"
End Sub
Attention. Si tu fais référence à une plage nommée dans un autre
classeur,
il faut ôter les crochets encadrant le nom du classeur
Names.Add Name:="cible1", RefersTo:="='c:donnéescible.xls'!nom"
Ok?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de news:Il y a quelque chose qui ne va pas pour la méthode d'anonymousA, mais
la
méthode de Pierre fonctionne.
Je réfléchis : Plutôt que de remplacer des chemins ou des classeurs, et
puisqu'on connaît le chemin du classeur Données.xls, on ne peut pas
nommer
les plages directement par macro ?
GGalBonjour
L'idée es d'itérer sur les noms du classeur, de vérifier la propriété
RefersTo de chaque nom pour voir si l'ancien nom s'y trouve, et si
oui,
de
remplacer l'ancien nom par le nouveau. Ceci pourrait faire l'affaire
Sub ModifierCibles()
Dim NomAncienClasseur As String
Dim NomNouveauClasseur As String
Dim Nom As Name
NomAncienClasseur = "c:données[cible.xls]"
NomNouveauClasseur = "c:données[nouvellecible.xls]"
For Each Nom In ThisWorkbook.Names
If InStr(1, Nom.RefersTo, NomAncienClasseur, vbTextCompare) <>
0
Then _
Nom.RefersTo = Replace(expression:=Nom.RefersTo,
Find:=NomAncienClasseur, _
Replace:=NomNouveauClasseur, compare:=vbTextCompare)
Next Nom
End Sub
Cela convient-il?
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien
en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"GGAL" a écrit dans le message de
news:Bonjour,
À partir d'un classeur de départ (base.xls), j'ai nommé manuellement
des
plages provenant d'un autre classeur Données.xls, par
Insertion>Nom>Définir.
J'ai donc par exemple :
ListeOp1
Fait référence à
='D:ArchivesDonnées.xls'!Oper1
ListeOp2
Fait référence à
='D:ArchivesDonnées.xls'!Oper2
etc.
Je souhaiterais, par macro, pouvoir modifier le chemin d'accès, en
remplaçant D:Archives par C:DOCUTOP de façon à avoir :
ListeOp1
Fait référence à
='C:DOCUTOPDonnées.xls'!Oper1
etc.
Comment faire ?
Merci,
GGal