Mettre à jour des liaisons qui changent à chaque fichier
Bonjour à tous,
Je suis sous VBA, j'essaye de mettre à jour des liens de la façon suivante :
1) une boîte de dialogue s'ouvre (ça je sais faire)
2) un bouton 'parcourir' permet d'afficher l'adresse d'un autre fichier Excel dans un TextBox (ça je sais faire)
3) un bouton 'suivant' prend cette nouvelle adresse et remplace une des liaisons de mon classeur (pas n'importe laquelle évidemment) par cette nouvelle (ça je sais pas faire).
Je sais que tout ceci peut se faire sans VBA en cliquant simplement sur 'Modifier les liens' dans l'onglet 'Données' puis 'Modifier la source' pour chaque lien du classeur. Mais je voulais qu'à travers une macro ouvrant à la suite plusieurs boîtes de dialogue similaires, l'utilisateur du fichier mette à jour les liens qui ont besoin d'être mis à jour de manière didactique.
Au niveau de mon code, ça se résume à ça (c'est la seule piste que j'ai cru bon de suivre, mais je sais pas où ça me mène) :
Private Sub Suivant2_Click()
Application.AskToUpdateLinks = False
ActiveWorkbook.UpdateLink Name:=ActiveWorkBookLinkSources
End SubQuelqu'un peut m'indiquer si ce que je veux faire est possible et si je pars bien avec cette idée-là s'il vous plaît ? Je vous remercie d'avance, en tant que novice de VBA, je suis carrément perdu.
- Ecka
EDIT : Maintenant je me rends compte que ce n'est peut-être pas très clair mais je le précise : j'ai regardé beaucoup d'exemples sur des forums, et à chaque fois il faut écrire dans le code le nom du fichier tel qu'il est (ex : "classeur2.xsl qui vient remplacer classeur1.xsl"). Comme la fois d'après, la liaison aura été changée, elle ne sera plus "classeur1.xsl" dans les liaisons mais "classeur2.xsl". Pourtant, mon code dira de changer "classeur1.xsl" qui du coup n'est plus une liaison valide...
bonjjour
il me semble qu'Excel propose un dialog pour mettre à jour des liaisons
pas besoin de programmer
Oui oui j'ai bien conscience que c'est possible sans VBA, mais comme je l'ai dit j'aimerais que grâce à des boîtes de dialogue s'enchainant, l'utilisateur du fichier mette à jour les liens qui ont besoin d'être mis à jour de manière didactique.
Pour préciser un peu mon souci, l'idée est qu'un fichier utilisant des liaisons externes vers des bases de données de 2016 (dans un fichier Excel) puisse être mis à jour par VBA avec les exactes même bases de données de 2017, sans devoir écrire dans le code "2016 devient 2017" parce que l'année d'après ce sera "2017 devient 2018" et il faudra modifier le code.