Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 : 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 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…