Hello !

Le but de la macro :
A partir de mon excel en VBA, j'ouvre un explorateur Windows afin d'ouvrir un fichier excel,
puis créer un TCD (Tableau Croisé Dynamique) qui pioche dans cet excel.

Voici le code que j'ai fait :

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
    Sheets("Feuil1").Select
    Columns("A:Z").Select
    Selection.Delete Shift:=xlToLeft
 
    Call Suprimer_Liaison
 
    Lien_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsm), *.xlsm")
If Lien_Fichier <> False Then
    Workbooks.Open Filename:=Lien_Fichier
End If
 
ActiveWindow.Visible = False
 
    For Z = 1 To 100
        If Left(Right(Lien_Fichier, Z), 1) = "\" Then
            y = Right(Lien_Fichier, Z - 1)
            GoTo 1
        End If
    Next Z
 
1
 
    For Z = 1 To 100
        If Right(Left(y, Z), 1) = "I" Then
            N°_Affaire = Left(y, Z)
            GoTo 2
        End If
    Next Z
 
2
 
    For Z = 1 To 100
        If Right(Left(y, Z), 1) = "x" Then
            Nom_Complet = Left(y, Z - 2)
            GoTo 3
        End If
    Next Z
 
3
 
    n = ActiveSheet.Name
 
    Application.DisplayAlerts = False
    Workbooks(Nom_Complet & ".xlsm").Close
 
    Workbooks("test - V4.xlsm").Connections.Add Nom_Complet, "", _
        Array( _
        "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=Lien_Fichier" _
        , _
        " ;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path" _
        , _
        "="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=" _
        , _
        "2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encry" _
        , _
        "pt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=Fals" _
        , _
        "e;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False" _
        ), Array(n), 3
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
        ActiveWorkbook.Connections(Nom_Complet), Version:= _
        xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil1!R1C1", _
        TableName:="Tableau croisé dynamique1", DefaultVersion:= _
        xlPivotTableVersion14
    Cells(1, 1).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("F7")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        N°_Affaire)
        .Orientation = xlPageField
        .Position = 1
    End With
 
    Cells(2, 1).Select
Mais à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
  "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=Lien_Fichier" _
        , _
        " ;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path" _
        , _
        "="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=" _
        , _
        "2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encry" _
        , _
        "pt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=Fals" _
        , _
        "e;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False" _
        ), Array(n), 3
J'ai l’erreur suivante :
La requête ne s'est pas exécutée ou la table de la base de donnée n'a pas pu être ouverte.

Cette erreur arrive dès que dans le code je modifie "Data Source=Lien_Fichier"

Je ne comprend pas d'où cela viens.

Merci d'avance pour votre aide.