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

faire varier liens externes avec valeur cellule ou onglet

3 réponses
Avatar
Val
Bonjour a tous !

Je debute avec le VBA et malgré les bouquins achetés pour bachoter dans mon
coin, bah je cale..
Je vous explique :

J'ai une feuille excel dans laquelle la cellule I1 permet de déterminer le
nom de l'onglet, et l'evenement workbook close permet à la fermeture du
fichier de générer un fichier enregistré avec le nom de l'onglet.
Jusque la, ca marche. C'est déja ca, vous allez me dire.
Je cale cependant sur un autre probleme.
Mon tableau aux 36000 cellules renvoient a des valeurs contenues dans des
cellules de fichiers externes. Bon, ca c'est pas un probleme.
Mon probleme c'est que je souhaiterai que le chemin varie en fonction du nom
de l'onglet, car les onglets sont des noms de sociétés que je retrouve
également dans les autres fichiers (dans d'autres répertoires, evidemment).
Ainsi, le nom du fichier et l'onglet du fichier a l'interieur de ce fichier
externe doit varier avec le nom de l'onglet de la feuille courante.

Ex : J'ai mon fichier toto dans le repertoire trucmuche (généré
automatiquement par le code d'enregistrement) dans lequel les cellules de la
feuille toto font appel aux données présentes dans la feuille toto du
fichier toto du repertoire machin
Lecteur reseau, Repertoire machin, sous repertoire truc, fichier Toto,
onglet toto

='\\lecteur reseau\machin\truc\[toto.xls]toto'!A29

mais voila, comment faire varier le nom du fichier et le nom de la feuille
en fonction de l'onglet de la feuille (ou de la valeur en "I1", au choix )?

vous allez me dire que je pourrai le faire manuellement, mais je souhaiterai
a cet effet automatiser la creation de 70 fichiers identiques, dont seul le
nom change.

Hmmm, je me demande si je suis tres claire quand meme.

Merci pour votre aide!!!

Valérie

3 réponses

Avatar
LSteph
Bonsoir,
si ton but st vraiment de créer n="70 "répertoires toto"n"
avec un fifi du même non que la fefeuille dedans soit toto "n" itou
alors voici:
''***
sub ongletdir()
Dim i as integer,mydir as string
mydir=curdir

for i= 1 to 70
mkdir activesheet.name & i
activeworkbook.saveas activesheet.name & i &".xls"
chdir mydir
next

end sub
'***

'lSteph
"Val" a écrit dans le message de news:
43160207$0$5409$
Bonjour a tous !

Je debute avec le VBA et malgré les bouquins achetés pour bachoter dans
mon coin, bah je cale..
Je vous explique :

J'ai une feuille excel dans laquelle la cellule I1 permet de déterminer le
nom de l'onglet, et l'evenement workbook close permet à la fermeture du
fichier de générer un fichier enregistré avec le nom de l'onglet.
Jusque la, ca marche. C'est déja ca, vous allez me dire.
Je cale cependant sur un autre probleme.
Mon tableau aux 36000 cellules renvoient a des valeurs contenues dans des
cellules de fichiers externes. Bon, ca c'est pas un probleme.
Mon probleme c'est que je souhaiterai que le chemin varie en fonction du
nom de l'onglet, car les onglets sont des noms de sociétés que je retrouve
également dans les autres fichiers (dans d'autres répertoires,
evidemment).
Ainsi, le nom du fichier et l'onglet du fichier a l'interieur de ce
fichier externe doit varier avec le nom de l'onglet de la feuille
courante.

Ex : J'ai mon fichier toto dans le repertoire trucmuche (généré
automatiquement par le code d'enregistrement) dans lequel les cellules de
la feuille toto font appel aux données présentes dans la feuille toto du
fichier toto du repertoire machin
Lecteur reseau, Repertoire machin, sous repertoire truc, fichier Toto,
onglet toto

='lecteur reseaumachintruc[toto.xls]toto'!A29

mais voila, comment faire varier le nom du fichier et le nom de la feuille
en fonction de l'onglet de la feuille (ou de la valeur en "I1", au
choix )?

vous allez me dire que je pourrai le faire manuellement, mais je
souhaiterai a cet effet automatiser la creation de 70 fichiers identiques,
dont seul le nom change.

Hmmm, je me demande si je suis tres claire quand meme.

Merci pour votre aide!!!

Valérie



Avatar
LSteph
...pardon pour que le fichier soit dedans, un détail aussi (que le rep
n'existe pas déjà) :

''***
Sub ongletdir()
Dim i As Integer, mydir As String
mydir = CurDir

For i = 1 To 10

MkDir ActiveSheet.Name & i
ActiveWorkbook.SaveAs ActiveSheet.Name & i & _
"" & ActiveSheet.Name & i & ".xls"
ChDir mydir
Next

End Sub
'***


"Val" a écrit dans le message de news:
43160207$0$5409$
Bonjour a tous !

Je debute avec le VBA et malgré les bouquins achetés pour bachoter dans
mon coin, bah je cale..
Je vous explique :

J'ai une feuille excel dans laquelle la cellule I1 permet de déterminer le
nom de l'onglet, et l'evenement workbook close permet à la fermeture du
fichier de générer un fichier enregistré avec le nom de l'onglet.
Jusque la, ca marche. C'est déja ca, vous allez me dire.
Je cale cependant sur un autre probleme.
Mon tableau aux 36000 cellules renvoient a des valeurs contenues dans des
cellules de fichiers externes. Bon, ca c'est pas un probleme.
Mon probleme c'est que je souhaiterai que le chemin varie en fonction du
nom de l'onglet, car les onglets sont des noms de sociétés que je retrouve
également dans les autres fichiers (dans d'autres répertoires,
evidemment).
Ainsi, le nom du fichier et l'onglet du fichier a l'interieur de ce
fichier externe doit varier avec le nom de l'onglet de la feuille
courante.

Ex : J'ai mon fichier toto dans le repertoire trucmuche (généré
automatiquement par le code d'enregistrement) dans lequel les cellules de
la feuille toto font appel aux données présentes dans la feuille toto du
fichier toto du repertoire machin
Lecteur reseau, Repertoire machin, sous repertoire truc, fichier Toto,
onglet toto

='lecteur reseaumachintruc[toto.xls]toto'!A29

mais voila, comment faire varier le nom du fichier et le nom de la feuille
en fonction de l'onglet de la feuille (ou de la valeur en "I1", au
choix )?

vous allez me dire que je pourrai le faire manuellement, mais je
souhaiterai a cet effet automatiser la creation de 70 fichiers identiques,
dont seul le nom change.

Hmmm, je me demande si je suis tres claire quand meme.

Merci pour votre aide!!!

Valérie



Avatar
michdenis
Bonjour Val,

Pour modifier une liaison spécifique, tu peux utiliser ceci en VBA

LienActuel = "C:AtravailClasseur4.xls"
NouveauLien = "C:AtravailClasseur2.xls"

ActiveWorkbook.ChangeLink Name:=LienActuel, NewName:= _
NouveauLien, Type:=xlExcelLinks
ActiveWorkbook.UpdateLink NouveauLien

Cependant, je ne sais pas comment en vba on arrive à modifier le nom de la feuille qui est inscrit dans la liaison dans les
cellules. Il y a ce petit "truc" ... après avoir modifié ta liaison..(chemin et nom du fichier), tu sélectionnes une cellule ayant
cette liaison et tu ajoutes quelques caractères au nom de la feuille inscrite dans le lien... comme la liaison ne trouve pas la
feuille au moment de valider, excel t'ouvre une fenêtre te permettant de choisir une des feuilles du classeur de la nouvelle
liaison. À la fermeture de la fenêtre, il a valider pour toute les feuilles.

IL y a bien sûr ceci qui peut être utilisé pour modifier le nom de la feuille mais sur une très grande plage cela prendra un certain
temps !
'-------------------------------
Dim rg As Range
Set rg = Feuil1.UsedRange.SpecialCells(xlCellTypeFormulas)

For Each c In rg
c.Value = Replace(c.Formula, "Feuil2", "BDD")
Next
'-------------------------------


Salutations!







"Val" a écrit dans le message de news: 43160207$0$5409$
Bonjour a tous !

Je debute avec le VBA et malgré les bouquins achetés pour bachoter dans mon
coin, bah je cale..
Je vous explique :

J'ai une feuille excel dans laquelle la cellule I1 permet de déterminer le
nom de l'onglet, et l'evenement workbook close permet à la fermeture du
fichier de générer un fichier enregistré avec le nom de l'onglet.
Jusque la, ca marche. C'est déja ca, vous allez me dire.
Je cale cependant sur un autre probleme.
Mon tableau aux 36000 cellules renvoient a des valeurs contenues dans des
cellules de fichiers externes. Bon, ca c'est pas un probleme.
Mon probleme c'est que je souhaiterai que le chemin varie en fonction du nom
de l'onglet, car les onglets sont des noms de sociétés que je retrouve
également dans les autres fichiers (dans d'autres répertoires, evidemment).
Ainsi, le nom du fichier et l'onglet du fichier a l'interieur de ce fichier
externe doit varier avec le nom de l'onglet de la feuille courante.

Ex : J'ai mon fichier toto dans le repertoire trucmuche (généré
automatiquement par le code d'enregistrement) dans lequel les cellules de la
feuille toto font appel aux données présentes dans la feuille toto du
fichier toto du repertoire machin
Lecteur reseau, Repertoire machin, sous repertoire truc, fichier Toto,
onglet toto

='lecteur reseaumachintruc[toto.xls]toto'!A29

mais voila, comment faire varier le nom du fichier et le nom de la feuille
en fonction de l'onglet de la feuille (ou de la valeur en "I1", au choix )?

vous allez me dire que je pourrai le faire manuellement, mais je souhaiterai
a cet effet automatiser la creation de 70 fichiers identiques, dont seul le
nom change.

Hmmm, je me demande si je suis tres claire quand meme.

Merci pour votre aide!!!

Valérie