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

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
 
F

Fredrennes

Guest
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
 
D

david

Guest
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
 
N

Nabil

Guest
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
 
R

raelison

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 764
Messages
2 091 859
Membres
105 079
dernier inscrit
Biscot_399