Bonjour,
J'ai récupéré et adapté un code que j'ai adapté pour récupérer les données d'un fichier excel en les copiant dans un autre de compil (cf. ci-dessous). En revanche je n'arrive pas à mettre en place une boucle qui me permettrait de :
- ouvrir tous les documents d'un répertoire (structurés exactement de la même façon)
- coller les données du 1er magasin sur la 3ème colonne , du second dans la 4ème, ...
Pourriez-vous m'aider et d'avance merci pour votre aide !!!
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Cellule As String, Feuille As String
'Adresse de la cellule contenant la donnée à récupérer
Cellule = "H8:H50"
Cellule2 = "C3:c4"
Feuille = "SYNTHESE$"
'Chemin complet du classeur fermé ==> que je souhaite remplacer par tous les fichiers d'un même répertoire
Fichier = "D:\XX\YY.xls"
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule2 & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Cellule2 & "]")
Range("A1").CopyFromRecordset Rst
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
Range("A3").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub
J'ai récupéré et adapté un code que j'ai adapté pour récupérer les données d'un fichier excel en les copiant dans un autre de compil (cf. ci-dessous). En revanche je n'arrive pas à mettre en place une boucle qui me permettrait de :
- ouvrir tous les documents d'un répertoire (structurés exactement de la même façon)
- coller les données du 1er magasin sur la 3ème colonne , du second dans la 4ème, ...
Pourriez-vous m'aider et d'avance merci pour votre aide !!!
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Cellule As String, Feuille As String
'Adresse de la cellule contenant la donnée à récupérer
Cellule = "H8:H50"
Cellule2 = "C3:c4"
Feuille = "SYNTHESE$"
'Chemin complet du classeur fermé ==> que je souhaite remplacer par tous les fichiers d'un même répertoire
Fichier = "D:\XX\YY.xls"
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule2 & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Cellule2 & "]")
Range("A1").CopyFromRecordset Rst
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
Range("A3").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub