Bonjour,
Je souhaiterais créer une ou plusieurs macro qui fonctionnerais de la manière suivant :
Lors de l'ouverture du classeur , il me demande de choisir un fichier.
Une fois que le fichier est choisi, je voudrais que la 1er feuille soit la source de données de mon TCD.

Le problème est que je n'arrive pas a choisir ma feuille comme source de données.

Le fichier sera toujours du même format et il contient le même nom et nombre de colonne.

La sélection de fichier marche mais j'ai une erreur lors de la création du TCD : "Incompatibilité de type"

Voici le code que j'utilise :
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
38
39
 
    Dim fichier_source As Workbook
    Dim plage As Range
    Dim classeur As Workbook
    Dim nom As String
 
   Set classeur = ThisWorkbook
 
       xls = Application.GetOpenFilename("Excel files (*.xlsx), *.xlsx", , "Choisir le fichier source.")
 
 
       If xls <> False Then
         Set fichier_source = Application.Workbooks.Open(xls)
            nom = fichier_source.Name
 
            fichier_source.Activate
 
            Sheets(1).Activate
 
            Dim dl As Long, dc As Long
 
            dl = ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row
            dc = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
          'Set plage = ActiveSheet.Range(Cells(1, 1), Cells(dl, dc))
            Set plage = ActiveSheet.Range(Cells(1, 1), Cells(dl, dc))
 
            classeur.Activate
 
                  ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
     "[" + nom + "]" + plage, Version:=6). _
        CreatePivotTable TableDestination:="Feuil1!R1C1", TableName:= _
        "Tableau croisé dynamique1", DefaultVersion:=6
    Sheets("Feuil1").Select
    Cells(1, 1).Select
 
 
            fichier_source.Activate
            ActiveWorkbook.Close False
       End If