Tab croisé dynamique, pb avec la source externe suite à son déplacement

  • Initiateur de la discussion Initiateur de la discussion David
  • 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 !

D

David

Guest
Hello !

Sous Excel 2002 et 97.
Suite à changement de place et un changement de nom de la source externe (base access) d'un tableau croisé dynamique je n'arrive pas à le lier de nouveau. Je suis allé dans Actualiser les données, là j'ai message d'erreur m'indiquant que le .mdb est introuvable, je clique sur ok et là j'ai la possibilité de lui indiquer le nouveau chemin, je le fais mais j'ai droit encore à un message d'erreur pratiquement identique =>
Microsoft Pilote ODBC Fichier D:\...\fichier.mdb introuvable

Quelqu'un aurait il été déjà confronté à ce pb ?

merci.

david
 
Hello,

Il faut que tu remettes la base à son ancien emplacement (tout en la laissant au nouvel emplacement)......dès que ce sera fait, va sur ton TCD, clique droit, get datas, cancel, yes......Microsoft Query devrait s'ouvrir.....clique sur l'icone "SQL".......tu verras le chemin de l'ancienne base.....il faut simplement changer ce chemin avec le nouveau.

Cdlt

Fred
 
Hello !

J'ai refait le test et ca marche ! En fait j'avais du faire tellement de manip
sur le xls original qu'il était peut être en vrac. J'ai repris une copie saine et ca marche. Par contre c'est lourd ! Tu ne connais pas une autre solution plus simple ? (Je sais j'exagère)

Merci beaucoup de ta réponse !!!!!!!!!!!

David
 
Salut

J’ai peut être la solution et si c’est le cas, tu as du bol, j’ai eu le même soucis ce Jeudi, n’ayant pas trouvé de doc ni de références sur le net, j’ai bidouillé un peu et le résultat a l’air concluant.
J’y croyais pas trop mais ça a l’air de marcher (du code à exécuter)
Ptete le faire évoluer et le mettre en macro complémentaire


***************

Dim deb, fin As Long
Dim listeparam() As String
Dim feuille As Worksheet
Dim tableau As PivotTable
Dim sdArray As Variant
Dim j As Integer

For Each feuille In Sheets
If feuille.PivotTables.Count > 0 Then
MsgBox "Dans """ & feuille.Name & """ il y a " & feuille.PivotTables.Count & " TCD"
For Each tableau In feuille.PivotTables
sdArray = tableau.SourceData
str = sdArray(LBound(sdArray))
str2 = ""
str3 = ""
str4 = ""
message = ""

listeparam = Split(str, ";")
For j = 0 To UBound(listeparam())
str2 = str2 & Chr(13) & " " & listeparam(j)
Next
str2 = " Nom : " & tableau.Name & Chr(13) & str2
message = "Parametres de votre TCD : " & Chr(13) & str2

deb = InStr(1, str, "DBQ=", vbTextCompare)
If deb > 0 Then
fin = InStr(deb, str, ";", vbTextCompare)
str3 = Left(str, fin - 1)
str3 = Right(str3, Len(str3) - deb - 3)

message = message & Chr(13) & Chr(13) & _
"Voulez vous modifier cette référence ? " & Chr(13) & _
" Base de donnée = " & str3

deb = InStr(1, str, "DSN=", vbTextCompare)
If deb > 0 Then
fin = InStr(deb, str, ";", vbTextCompare)
str4 = Left(str, fin - 1)
str4 = Right(str4, Len(str4) - deb - 3)
message = message & Chr(13) & _
" DSN = " & str4
End If



If MsgBox(message, vbYesNo) = vbYes Then
Stop
sdArray(LBound(sdArray)) = ""
tableau.SourceData = sdArray
End If
End If
Next
End If 'Feuille avec TCD
Next

End Sub

**************

Tu me dis si ca marche bien pour toi et si tu as une idée d'évolution

Bonne journée
Nabil
 
Bonjour Nabil,

Moi aussi je souhaite "paramétrer "la chaîne de connection d'un TCD, j'ai réaliser à peu près el même code MAIS
La propiété SourceData d'un Pivottable est en lecture seule.
Comment as-tu pu le modiifer ?

Merci à tous
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour