Données excel
papisgueye
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
j'ai un fichier excel qui doit être renseigné à partir d'autres fichiers excel exportés à partir d'un programme access, j'aimerais pouvoir charger ce fichier, une fois le mappage effectué sans pour autant ouvrir les fichiers source.
Exple : Soit A.xls la destination, B.xls et C.xls les sources. mettre à jour les données de A.xls une fois ouvert sant ouvrir B et C.
ou bien, une macro qui ouvre automatiquement B et C, et les referme une fois A mis à jour
je vous remercie à l'avance
Exple : Soit A.xls la destination, B.xls et C.xls les sources. mettre à jour les données de A.xls une fois ouvert sant ouvrir B et C.
ou bien, une macro qui ouvre automatiquement B et C, et les referme une fois A mis à jour
je vous remercie à l'avance
A voir également:
- Données excel
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
1 réponse
Bonjour,
On peut lire un fichier fermé en utilisant une connexion ADO.
On se connecte au fichier et on récupère les données via un recordset.
Pour cela il faut activer la référence Microsoft ActiveX Data Objects x.x Library dans le classeur qui exécute la macro (Editeur VB -> Outils -> Références ...)
Voilà un exemple pour créer une connexion ADO, chercher les données, affichier le résultat et fermer la connexion:
'//////////////////////////////////////
'Code à copier dans un module:
'//////////////////////////////////////
Voilà comment utiliser le module
;o)
On peut lire un fichier fermé en utilisant une connexion ADO.
On se connecte au fichier et on récupère les données via un recordset.
Pour cela il faut activer la référence Microsoft ActiveX Data Objects x.x Library dans le classeur qui exécute la macro (Editeur VB -> Outils -> Références ...)
Voilà un exemple pour créer une connexion ADO, chercher les données, affichier le résultat et fermer la connexion:
'//////////////////////////////////////
'Code à copier dans un module:
'//////////////////////////////////////
Option Explicit
Public CnxXL As ADODB.Connection
Public Rst As ADODB.Recordset
'Connexion au fichier passé en paramètre
Public Sub OpenCnxXL(ByVal FullPathFileXL As String)
Set CnxXL = New ADODB.Connection
'--- Connection ---
With CnxXL
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & FullPathFileXL & _
";Extended Properties=Excel 8.0;"
.Open
End With
End Sub
'Fermeture de la connexion
Public Sub CloseCnxXL()
CnxXL.Close
Set CnxXL = Nothing
End Sub
'Fermeture du recordset
Public Sub CloseRst()
Rst.Close
Set Rst = Nothing
End Sub
'Récupération des données
Public Sub RecupDonneesXL(ByVal feuille As String, ByVal cellule As String)
Dim QuerySql As String
Set Rst = New ADODB.Recordset
QuerySql = "SELECT * FROM [" & feuille & "$" & cellule & "]"
Set Rst = CnxXL.Execute(QuerySql)
End Sub
'Affichage du résultat
Public Sub AfficheDonnees()
ThisWorkbook.Worksheets(1).Range("A2").CopyFromRecordset Rst
End Sub
Voilà comment utiliser le module
Public Sub MaMacro()
OpenCnxXL("C:\MonDossier\ClasseurB.xls")
RecupDonnee("Feuil1", "B5:B5") 'ou "B5:G50"
AfficheDonnees
CloseRst
CloseCnxXL
End Sub
;o)