Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2011, 12h15   #1
Membre du Club
 
Inscription : septembre 2006
Messages : 217
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : septembre 2006
Messages : 217
Points : 58
Points : 58
Par défaut SourceData non définie dans un tableau croisé dynamique

Bonjour;
Sur mon fichier Excel j'ai crée à l'aide de l'assisatnet un tableau croisé dynamique provenant d'une connexion à une base de données sql server , pour rafraichir les données j'utilise une macro dont le code est la suivant
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
 Dim sql As String
 
 
    Dim pt As PivotTable
 
    Dim tabch1 As String
    Dim tabch2 As String
    Dim tabch3 As String
    Dim tabch4 As String
    Dim tabch5 As String
    Dim tabch6 As String
 
    Dim cl1 As Workbook
    Dim cl2 As Workbook
 
    Dim tab5 As Variant
 
    Set cl1 = Application.ActiveWorkbook
 
    With cl1.Worksheets(9)
 
    Set pt = .PivotTables(1)   ' .PivotTables(1)
 
 
    tabch1 = " DRIVER={SQL Server};SERVER=ServeurDeMaBase;UID=;PWD=;APP=Etat Calcul des prevision;WSID=;LANGUAGE=us_english;DATABASE=DB1"
 
tabch2 = " SELECT  dbo.table1.Libelle AS Libellé, dbo.table1.PU AS PU, sum(dbo.table1.Quantite) as Quantité, sum(dbo.table1.Quantite * dbo.table1.PU) AS Valeur "
    tabch3 = " FROM dbo.table1 INNER JOIN dbo.table11 ON dbo.table1.id1= dbo.table11.id11"
    tabch4 = " WHERE     (dbo.table11 .id11in (select id11 from table11 where id12 = " & id12 & ")  ) "
    tabch5 = " Group by dbo.table1.Libelle , dbo.table1.PU  "
    tabch6 = " ORDER BY dbo.table1.Libelle "
 
 
    pt.SourceData = Array(tabch1, tabch2, tabch3, tabch4, tabch5, tabch6)
        pt.RefreshTable
        Set pt = Nothing
    End With
Quand le programme arrive sur l'instruction
Code :
1
2
 
 pt.SourceData = Array(tabch1, tabch2, tabch3, tabch4, tabch5, tabch6)
il affiche le bug suivant "Erreur définie par l'application ou par l'objet " ???

comment résoudre ce problème??? cela fait plus que 3 jours que je travaille là dessus et ca me casse la tête , j'ai essayé à maintes fois de recréer mon tableau et relancer la macro mais toujours la même erreur !!!!

Merci d'avance.
zanoubya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 11h47   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
C'est quoi le APP de ta chaine de connexion ? Je ne connais pas.
Tu as testé ta requête et elle marche ? Je me méfie des accents.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 15h45   #3
Membre du Club
 
Inscription : septembre 2006
Messages : 217
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : septembre 2006
Messages : 217
Points : 58
Points : 58
Bonjour;

La requête est juste je l'ai testé dans l’analyseur et j'ai même essayé de mettre au lieu de ma requête un simple select getdate() afin de savoir si c'est elle la source de l'erreur , mais j'avais toujours le même bug ce qui signifie que le problème n'est pas dû à ca.

APP représente quoi exactement ?

Merci.
zanoubya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h14   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
C'était justement ma question. Il y a dans ta chaîne de connexion
Citation:
APP=Etat Calcul des prevision
Et je ne vois pas ce que c'est.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 12h04   #5
Membre du Club
 
Inscription : septembre 2006
Messages : 217
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : septembre 2006
Messages : 217
Points : 58
Points : 58
J'ai utilisé l'assistant pour créer la table croisée dynamique et celui qui a crée automatiquement cette chaîne de connexion


Dans les étapes j'ai renseigné le serveur et la base sql server en précisant le mode d'authentification windows.

Merci.
zanoubya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 12h18   #6
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Je n'ai pas de SQL Server pour tester. Mais tu pourrais peut-être essayer pour tester ta chaine de connexion, de l'utiliser sur une ADODB.Connection et de récupérer le résultat de ta requête dans un RecordSet.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 18h08   #7
Membre du Club
 
Inscription : septembre 2006
Messages : 217
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : septembre 2006
Messages : 217
Points : 58
Points : 58
Bonjour ; oui voilà il m'a donné la bonne chaîne de connexion.

Merci.
zanoubya est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h37.


 
 
 
 
Partenaires

Hébergement Web