bonjour,
Le code joint permet de copier toutes les lignes Xls des fichiers dans un répertoire et les regrouper dans un seul.
Sauf que ce code ne permet pas de récupérer les couleurs de chaque ligne.
Avez vous une idée de ce que je peux ajouter au code pour réaliser cette fonction ?
Merci d'avance
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 Sub Transfert_des_lignes() ' 'Sub tranfertClasseursFermes_VersFeuilleActive() 'Nécessite d'activer la référence 'Microsoft ActiveX Data Objects x.x Library Dim cn As ADODB.Connection Dim Rst As ADODB.Recordset Dim j As Integer Dim i As Long Dim Fichier As String, Repertoire As String, Name As String Name = "Feuil1" i = 1 'Boucle sur les classeurs Excel du répertoire cible Repertoire = "D:\DATAN\Test_Excel\Essai_1" Fichier = Dir(Repertoire & "\*.xls") Do While Fichier <> "" 'Connection au classeur Excel Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Repertoire & "\" & Fichier & ";" & _ "Extended Properties=""Excel 8.0;""" 'requête pour extraire les données de la Feuil1 Set Rst = New ADODB.Recordset Rst.Open "SELECT * from [Feuil1$]", cn, adOpenStatic 'Si la requete donne un resultat If Not Rst.EOF Then 'S'il s'agit de la premiere ligne : 'on boucle sur les en-tetes afin d'en extraire les noms If i = 1 Then For j = 0 To Rst.Fields.Count - 1 Cells(i, j + 1) = Rst.Fields(j).Name Next j i = 2 End If 'Copie le résultat de la requete dans la feuille active Range("A" & i).CopyFromRecordset Rst 'Récupère le numero de la premiere ligne vide pour la 'boucle suivante. i = Range("A1").End(xlDown).Row + 1 End If 'Fermeture recordset Rst.Close Set Rst = Nothing 'Fermeture de la connection au classeur Excel cn.Close Set cn = Nothing Fichier = Dir Loop End Sub
Partager