Données excel
Fermé
papisgueye
-
24 mars 2010 à 00:59
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 24 mars 2010 à 08:51
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 24 mars 2010 à 08:51
A voir également:
- Données excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
1 réponse
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
24 mars 2010 à 08:51
24 mars 2010 à 08:51
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)