Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro excel pour mise à jour de liaisons

  • Initiateur de la discussion Initiateur de la discussion Yannick0
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Yannick0

XLDnaute Nouveau
Bonjour,

Actuellement en stage, j'ai besoin d'aide concernant la réalisation d'une macro.
Je dispose d'une fiche client (jointe) dans laquelle est présent un tableau avec une liste de raisons de refus d'une proposition commerciale. A terme, plusieurs fiches clientes sont prévues. Je dirais une cinquantaine avec 10 feuilles chacune.
Mon souhait serait de faire des statistiques de ces raisons dans un fichier annexe (exemple simplifié joint). Jusque là pas de souci, je sais faire. Le problème apparaît quand mes fiches clientes sont fermées (après modification) et que j'ouvre mon fichier de statistique. Excel n'est pas capable de mettre à jour le fichier. Après recherche sur le net, je me suis rendu compte que seule une macro pouvait s'en occuper. Il me faudrait donc une macro qui ouvre toutes mes fiches à l'ouverture du fichier pour qu'il se mette à jour. Et l'idéal serait qu'elles se referment automatiquement (sinon, ça se fera à la main). Sur Internet, j'ai trouvé une macro pour l'ouverture des fiches et la mise à jour du fichier (Mise à jour des liaisons sur Excel). Vous la trouverez ci-dessous. Seulement, vu mon expérience en macro, je suppose que je dois faire une mauvaise manipulation car cela ne fonctionne pas (je pense aussi qu'il faudrait l'adapter à mes fichiers : nom et emplacement notamment, mais je ne sais pas à quel endroit). Et j'ai beau faire des recherches, je ne sais pas comment faire.
Je voudrais donc savoir si vous pouvez jeter un coup d'oeil à la macro et voir ce qui cloche!

Merci beaucoup!!!!!


Sub changementliaison()

Dim FName As String, aLinks As Variant, wb As Workbook
Dim nomserveur, OldServer, Newlinks, OldDrive As String
Dim tempPath As String
Dim longueur As Integer, a As Integer, b As Integer

FName = Application.GetOpenFilename("Microsoft Excel Files (*.xls),
*.xls", _
, "Browse...", , False)
If FName = "False" Then Exit Sub

Set wb = Workbooks.Open(FName, UpdateLinks:=0)
Application.AskToUpdateLinks = False aLinks = wb.LinkSources(xlOLELinks)
' recherche du document à modifier

If Not IsEmpty(aLinks) Then
MsgBox wb.FullName & " Contient " & UBound(aLinks) & " Liaisons"
'affichage du nombre de liaisons dans le document
OldServer = InputBox("Entrez le nom du serveur que vous voulez
supprimer")
longueur = Len(OldServer)
For i = 1 To UBound(aLinks)

a = InStr(aLinks(i), "\\")
b = a + 2
nomserveur = Mid(aLinks(i), b, longueur)

If nomserveur = OldServer Then

If InStr(aLinks(i), "\\") > 0 Then

MsgBox "Ancien chemin unc de la liaison " & aLinks(i)

Newlinks = InputBox("Entrez le nom du nouveau serveur")

wb.ChangeLink aLinks(i), _
Application.Substitute(aLinks(i), _
OldServer, Newlinks, 1), xlOLELinks
Else

End If
Else
End If
Next i
wb.Save
End If
Application.AskToUpdateLinks = True

wb.Close False

End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
163
Réponses
4
Affichages
177
Réponses
5
Affichages
237
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…