Bonsoir à tous,
Alors il n'y a pas longtemps j'ai réussi à adapter un code mais mes besoins ont evolué.
Alors voici le code traditionnelle pour la copie de données depuis un classeur fermé :
Alors aujourd'hui j'aimerais pouvoir copier / coller plusieurs feuilles.
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 Sub RequeteClasseurFerme() Dim Cn As ADODB.Connection Dim Fichier As String Dim NomFeuille As String, texte_SQL As String Dim Rst As ADODB.Recordset 'Définit le classeur fermé servant de base de données Fichier = "C:\...\Exo\Base.xlsx" 'Nom de la feuille dans le classeur fermé NomFeuille = "Feuil1" Set Cn = New ADODB.Connection '--- Connection --- With Cn .Provider = ""Microsoft.ACE.OLEDB.12.0"" .ConnectionString = "Data Source=" & Fichier & _ ";Extended Properties=Excel 8.0;" .Open End With '----------------- 'Définit la requête. '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille. texte_SQL = "SELECT * FROM [" & NomFeuille & "$]" Set Rst = New ADODB.Recordset Set Rst = Cn.Execute(texte_SQL) 'Ecrit le résultat de la requête dans la cellule A2 Range("A2").CopyFromRecordset Rst '--- Fermeture connexion --- Cn.Close Set Cn = Nothing End Sub
J'ai essayé de créer un autre module avec les modifications nécessaires. Malheuresement il n'y a toujours que une seule qui marche (la première que je lance...) Si je lance "macro1" en premier "macro2" ne marche pas et inversement.
J'ai pas essayé de faire une seule macro mais je reste spetique.
Voilà mon problème de soir.
Merci.
Partager