XL 2019 Lire un fichier excel fermé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

controlo

XLDnaute Occasionnel
Bonjour à tous ,

J'ai besoin d'un petit coup de main , je vous met ci-dessous un code que j'ai pompé sur internet que j'ai adapté à ma sauce ( Extension du fichier base en .XLSX et le chemin ou se trouve ce fichier : C:\Tempo\Base.xlsx). Je suis en excel 2019.
J'ai le message d'érreur suivant :
1761124282744.png
avec la ligne suivante en surbrillance :

Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"

Voir la macro dans le fichier joint ci-dessous.


Merci de votre aide et bien à vous .
 

Pièces jointes

bonjour
"Provider=Microsoft.Jet.OLEDB.4.0;"
ce n'est pas le bon moteur celui ci c'est l'ancien qui va jusqu'a excel 97/2000 type excel 8

aujourd'hui moteur c'est le Ace type excel12(office 2007 et suppérieur )

tiens si tu utilise le copyfromrecordset c'est d'autant plus simple
une petite fonction a bibi qui va te faciliter la tache
tu règle tes param dans la sub la fonction tu la laisse tranquille

VB:
Sub testAdO()
    Dim fichier$, nomfeuille$, DispoCel As Range
    fichier = ThisWorkbook.Path & "\exemple source.xlsx"
    nomfeuille = "feuil1"' feuille dans le classeur visité 
    Set DispoCel = [A1]' destination de la copie 
    Set plage = [A1:F3]' la plage que tu veux dans le xlsx visité 
    resADO plage, fichier, nomfeuille, DispoCel
End Sub
Function resADO(plage, fichier, nomfeuille, destination)

'Dim Cn As ADODB.Connection, texte_SQL$, Rst As ADODB.Recordset
    Dim Cn As Object, texte_SQL$, Rst As Object
      Set Cn = CreateObject("ADODB.Connection")
      Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fichier & ";Extended Properties=""Excel 12.0;HDR=No;IMEX=1;"""
     texte_SQL = "SELECT * FROM [" & nomfeuille & "$" & plage.Address(0, 0) & "]"  'la requête.    ' Attention!!!!!!! à ne pas oublier le symbole "$" après le nom de la feuille.
     Set Rst = CreateObject("ADODB.RecordSet")
    Set Rst = Cn.Execute(texte_SQL)
    destination.CopyFromRecordset Rst
    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing: Set Rst = Nothing
End Function
 
Dernière édition:
bonjour

ce n'est pas le bon moteur celui ci c'est l'ancien qui va jusqu'a excel 97/2000 type excel 8

aujourd'hui moteur c'est le Ace type excel12(office 2007 et suppérieur )

tiens si tu utilise le copyfromrecordset c'est d'autant plus simple
une petite fonction a bibi qui va te faciliter la tache
tu règle tes param dans la sub la fonction tu la laisse tranquille

VB:
Sub testAdO()
    Dim fichier$, nomfeuille$, DispoCel As Range
    fichier = ThisWorkbook.Path & "\exemple source.xlsx"
    nomfeuille = "feuil1"' feuille dans le classeur visité
    Set DispoCel = [A1]' destination de la copie
    Set plage = [A1:F3]' la plage que tu veux dans le xlsx visité
    resADO plage, fichier, nomfeuille, DispoCel
End Sub
Function resADO(plage, fichier, nomfeuille, destination)

'Dim Cn As ADODB.Connection, texte_SQL$, Rst As ADODB.Recordset
    Dim Cn As Object, texte_SQL$, Rst As Object
      Set Cn = CreateObject("ADODB.Connection")
      Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fichier & ";Extended Properties=""Excel 12.0;HDR=No;IMEX=1;"""
     texte_SQL = "SELECT * FROM [" & nomfeuille & "$" & plage.Address(0, 0) & "]"  'la requête.    ' Attention!!!!!!! à ne pas oublier le symbole "$" après le nom de la feuille.
     Set Rst = CreateObject("ADODB.RecordSet")
    Set Rst = Cn.Execute(texte_SQL)
    destination.CopyFromRecordset Rst
    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing: Set Rst = Nothing
End Function
Bonjour PatrickToulon ,

Merci pour ta réponse , c'est top .
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
2 K
Réponses
15
Affichages
4 K
Retour