bonjour à tous,

J'arrive à récupérer des données sur l'AS400 via le provideur IBMDA400 puis à copier le recordset dans une cellule de ma feuille Excel mais je n'arrive pas à créer un tableau croisé dynamique. Help !!

Ce code est ok :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Private Sub recupsource_Click()
 
Dim wrqt As String
Dim was400 As String
 
 
wrqt = "SELECT * FROM ECFH0.SCQPOS WHERE SCQCLS=634859 AND SCQDFA=200801 FETCH FIRST 10 ROWS ONLY"
 
was400 = "HEPSTG1"
 
Conect wrqt, was400
End Sub
 
Private Sub Conect(wrqt As String, was400 As String)
 
Dim Con As New ADODB.Connection
Dim Cmd As New ADODB.Command
Dim Rs As ADODB.Recordset
Dim txtc As String
 
txtc = "provider=IBMDA400;data source=" & was400 & ";;;"
Con.Open txtc
 
Set Cmd.ActiveConnection = Con
Cmd.CommandText = wrqt
 
Set Rs = Nothing
Set Rs = Cmd.Execute()
 
Sheets("Relations Client").Select
ActiveSheet.Range("W53").CopyFromRecordset Rs
 
Set Rs = Nothing
Con.Close
 
End Sub

je voudrais remplacer l'instruction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ActiveSheet.Range("W53").CopyFromRecordset Rs
par l'instruction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ActiveSheet.PivotTableWizard SourceType:=xlExternal, SourceData:=Rs, Connection:=Con
mais ça ne fonctionne pas.