Lire dans un fichier fermé Excel format xlsm
j
Bonjour,
Je galère depuis un moment pour appliquer ce que je lis sur le web pour se connecter à un fichier classeur xslm.
Voici le code que j'utilise MAIS POUR UN FICHIER . XLS. Je souhaite lire la cellule B7 de la feuille données et le résultat est nul.
1- Pouvez vous m'aider déjà sur ce programme et me dire ce que je dois faire pour lire la cellule B7 du classeur ci-joint ?
2- m'indiquer ce que je dois faire pour un classeur xlsm
merci beaucoup pour votre aide,
jasserin
Sub connection()
Dim Cn As ADODB.connection ' Définir une variable ADODB Connection
Dim Rst As ADODB.Recordset ' Pour accueillir un RecordSet
Dim chem_fichier As String ' Chemin + nom du fichier
Dim nom As String
chemin = "c:\users\utilisateur\desktop\test1.xls"
' Définir le premier classeur à traiter
chem_fichier = chemin
Set Cn = New ADODB.connection ' Créer une nouvelle instance
' --- Connexion au classeur test1.xls
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& chem_fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
' --- Fin Connexion
Worksheets("Données").Range("B7").Value = nom
'--- Fermeture de la connexion ---
Cn.Close
Set Cn = Nothing ' Libérer la ressource
MsgBox nom
End Sub
Bonsoir,
essaie ceci, lit B7 dans feuil1 de ton classeur et met le contenu dans nom
Sub connection()
Dim Cn As ADODB.connection ' Définir une variable ADODB Connection
Dim Rst As ADODB.Recordset ' Pour accueillir un RecordSet
Dim chem_fichier As String ' Chemin + nom du fichier
Dim nom As String
chemin = "c:\users\utilisateur\desktop\test1.xls"
' Définir le premier classeur à traiter
chem_fichier = chemin
Set Cn = New ADODB.connection ' Créer une nouvelle instance
' --- Connexion au classeur test1.xls
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& chem_fichier & ";Extended Properties=""Excel 12.0"""
.Open
End With
' --- Fin Connexion
Set Rst = New ADODB.Recordset
querystr = "select * from [Feuil1$B7:B7]"
Rst.Open querystr, Cn, adOpenUnspecified, adLockUnspecified
nom = Rst.Fields(0).Name
MsgBox nom
'--- Fermeture de la connexion ---
Cn.Close
Set Cn = Nothing ' Libérer la ressource
End Subj
merci beaucoup.
ca marche
jasserin