Macro pour changer source de données externes TCD

Bonjour,

J'utilise dans un classeur xlsm ("SUIVI") un TCD qui fait appel à une plage de cellule se trouvant dans un classeur xlsx ("EXPORT") situé dans le même dossier que le précédent.

Ma problématique est la suivante :

Mon fichier SUIVI est régulièrement copié et déplacé dans de nouveaux répertoires sur mon ordinateur. A chaque changement de répertoire, je réalise un nouvel EXPORT depuis mon ERP. Lorsque j'actualise mon TCD via une macro, j'aimerais que, au choix :

  • mon code modifie la source de données externes en sélectionnant toujours la même plage du même fichier EXPORT mais du fichier EXPORT se situant dans le même répertoire que mon fichier SUIVI.
  • mon code force l'adresse de la plage dans les propriétés de connexion du TCD.

Pouvez-vous m'orienter sur des fonctions à utiliser ?

Avec l'enregistreur de macro j'obtiens un code barbare difficile à adapter pour un novice comme moi.

Merci d'avance pour votre aide,

waxscud

Bonjour,

Visiblement cette problématique n'est pas simple.

Je vais essayer de reformuler d'un autre angle.

Mon classeur contient un TCD s'appuyant sur une source de données externe.

Ces données, ainsi que mon fichier, se trouvent dans le même dossier. Par exemple dans un dossier s'appelant "Juin".

J'aimerais qu'à chaque ouverture du classeur, une macro teste si le dossier dans le lequel se trouve le classeur est toujours le même que celui des données.

==> Si oui, aucune action

==> Sinon (le fichier se trouve par exemple désormais dans le dossier "Juillet")

1) des données de même format existent dans ce dossier => macro met à jour la connexion avec ces données

2) aucune données => macro rompt la connexion existante du TCD.

Cela semble-t-il possible ?

Merci à nouveau pour votre aide,

Bonne soirée,

waxscud

Bonsoir,

J'ai exactement la même problématique que Waxscud. Aviez-vous trouvé une solution? Si non est-ce que quelqu'un aurait la solution?

Merci par avance,

Romain,

Bonjour,

A défaut de fichiers, joins ton code barbare !...

Cdlt.

Bonsoir Jean-Eric,

Ci-joint deux fichiers illustrant mon problème. Lorsque je les change de dossier le lien entre les deux fichiers "se casse". Je n'arrive pas à automatiser la réparation (pour les TCD et les liens hypertextes) de ces liens sans les modifier un à un.

J'ai essayé d'illustrer cela dans les deux fichiers en PJ

Merci par avance de ton aide,

Romain

6test-source.xlsx (8.50 Ko)
6test-synthese.xlsx (11.95 Ko)

Bonjour,

Un début de réponse à analyser.

Cdlt.

21romain3369.zip (26.28 Ko)

Bonjour,

Merci de ton retour. Je suis désolé mais je ne vois pas où est le début de réponse sur les fichiers. Peux-tu m'expliquer ce que tu as fait?

Merci

Re,

Un complément d'informations.

La procédure est exécutée à l'ouverture du fichier "test synthèse.xlsm" (ThisWorkbook).

Option Explicit
Option Private Module

Public Sub RefreshData()
Dim wbPT As Workbook, wbSource As Workbook
Dim strPath As String
Dim PT As PivotTable
Const FILE As String = "test source.xlsx"

    Application.ScreenUpdating = False

    Set wbPT = ActiveWorkbook
    strPath = wbPT.Path & Application.PathSeparator

    On Error GoTo err_Handler

    Set wbSource = Workbooks.Open(strPath & FILE)
    Set PT = wbPT.Worksheets("Feuil1").PivotTables("PT_1")
    PT.PivotCache.Refresh
    wbSource.Close False

    wbPT.Save

    Application.ScreenUpdating = True

    MsgBox "Données mises à jour...", 64, "Information"

exit_Handler:
    Set PT = Nothing: Set wbPT = Nothing
    Exit Sub
err_Handler:
    MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
    Resume exit_Handler

End Sub
Rechercher des sujets similaires à "macro changer source donnees externes tcd"