Bonjour à tous,
Je cherche à lier deux fichiers excel via des requêtes SQL programmé sous VBA. J'ai, grâce au tutoriel de SilkyRoad, réussi à aller les chercher les données dans un classeur fermé grace à ces requêtes mais maintenant je voudrais pouvoir lier deux classeurs fermés et rassembler les données ensembles. et faire la somme par ID.
Donc j'ai un autre classeur qui se nomme auto1 dont je veux assembler avec le classeur auto ci-dessous dans le code.
Merci pour votre aide
Voila mon programme que j'ai pour l'instant pour la lecture du premier classeur auto:
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 Sub Loading_players() class = "C:\Bibliothèques\Documents\auto.xlsx" 'Permet d'enlever les espaces et les "é" accent dans les en-tête pour les définir comme clefs en SQL Set wb = Workbooks.Open(class) For i = 1 To 50 Sheets(1).Cells(1, i) = Replace(Sheets(1).Cells(1, i), " ", "_") Sheets(1).Cells(1, i) = Replace(Sheets(1).Cells(1, i), "é", "e") Next wb.Save wb.Close Dim Cn As ADODB.Connection Dim Fichier As String Dim NomFeuille As String, TxtSQL As String Dim Rst As ADODB.Recordset 'Définit le classeur fermé servant de base de données Fichier = "C:\Bibliothèques\Documents\auto.xlsx" 'Nom de la feuille dans le classeur fermé NomFeuille = "auto" Set Cn = New ADODB.Connection '--- Connexion --- With Cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;""" .Open End With '----------------- ' 'Définit la requête. '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille. TxtSQL = "SELECT ID_joueur, SUM(Nom_points_gagnés), SUM(Nombre_points_perdus) FROM [" & NomFeuille & "$], GROUP BY ID_joueur" Set Rst = New ADODB.Recordset Set Rst = Cn.Execute(TxtSQL) 'Ecrit le résultat de la requête dans la cellule A1 Feuil11.Range("A1").CopyFromRecordset Rst '--- Fermeture connexion --- Cn.Close Set Cn = Nothing End Sub
Partager