Bonjour à tous,
J'ai besoin d'exporter des données à partir d'un classeur fermé. J'ai donc utilisé ADO et cela fonctionne bien.
J'ai cependant deux questions: comment exporter la mise en forme en même temps que les données?
Et pourquoi la première ligne n'est pas exportée?
Edit: Apres étude plus minutieuse de mes résultats, ce n'est pas forcément la première ligne qui manque.
Pour certains fichiers elle est bien présente mais il manque d'autres cellules, pour d'autres elle manque et tout le reste est là et pour d'autres encore elle manque et d'autres cellules également!
Une explication?
Voici mon code:
Merci d'avance à ceux qui prendront le temps de me donner un coup de main.
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 Private Sub Exporterdonnees_Click() 'Déclaration des variables Dim Box As CheckBox Dim Cn As ADODB.Connection Dim Fichier As String Dim NomFeuille As String Dim NomFich As String Dim Chemin As String Dim texte_SQL As String Dim Rst As ADODB.Recordset Dim i As Double i = 1 'On initialise i à 1 'On efface complètement l'onglet Données exportées pour pouvoir ensuite écrire les données exportées Worksheets("Données exportées").Range("A1:BZ4000").Clear For Each Box In Worksheets("Liste des projets").CheckBoxes 'On parcourt les cases à cocher de la page Liste des projets If Box.Value = 1 Then 'Si la case est cochée on lance l'exportation 'Définit le classeur fermé servant de base de données NomFich = Box.Caption Chemin = "d:\personal\gt\desktop\Projets annexes\" Fichier = Chemin & NomFich 'Nom de l'onglet à exporter dans le classeur fermé NomFeuille = "CotationA$" Set Cn = New ADODB.Connection ' Connection With Cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & Fichier & _ ";Extended Properties=""Excel 8.0;HDR=NO""" .Open End With 'Définit la requête. texte_SQL = "SELECT * FROM [" & NomFeuille & "]" Set Rst = New ADODB.Recordset Set Rst = Cn.Execute(texte_SQL) 'Ecrit le résultat de la requête toute les 40 lignes Worksheets("Données exportées").Cells(i, 1).CopyFromRecordset Rst i = i + 40 'Déconnexion Cn.Close Set Cn = Nothing End If Next End Sub
gbbtt
Partager