Microsoft 365 : Excel.Workbook(File.Contents("C:\Book1.xlsx"))

Bonjour dans une macro j'ai la ligne suivante

Dim NomDossier as string
NomDossier
= Feuil1.Rnage("B2").Value 'nom du chemin et fichier D:\Test\mes-cles_2023-test.xls chemin

Cette commande me permet d'importer un fichier Excel externe dans ma feuille

ActiveWorkbook.Queries.Add Name:="mes-cles_2023-02-Sage", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Excel.Workbook(File.Contents(""D:\Test\mes-cles_2023-test.xls""), null, true)," & Chr(13) & "" & Chr(10) & " #""mes-cles_2023-02-Sage1"" = Source{[Name=""tableau""]}[Data]," & Chr(13) & "" & Chr(10) & " #""En-têtes promus"" = Table.PromoteHeaders(#""mes-cles_2023-02-tableau"", [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & " #""Type modifié"" = Table.TransformColumnTypes(#""En-têtes promus"",{{""Nom" & _
" Commercial"", type text}, {""Code client"", Int64.Type}, {""N° de série"", Int64.Type}, {""Référence produit"", type text}, {""Libellé produit"", type text}, {""Date de fin de contrat"", type date}, {""Version "", type text}, {""Clé "", type text}, {""Date clé"", type date}, {""Code d’activation"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""" & _
"Type modifié"""

J'aimerai mettre ExcelWorkBook(File.Contants("NomDossier") car le chemin du fichier que j'importe peut changer de dossier ou de nom.
Quand je test la macro met debogage

Merci de votre aide cordialement
Francis

bonjour,

à tester

ActiveWorkbook.Queries.Add Name:="mes-cles_2023-02-Sage", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Excel.Workbook(File.Contents(""" & nomdossier & """), null, true)," & Chr(13) & "" & Chr(10) & " #""mes-cles_2023-02-Sage1"" = Source{[Name=""tableau""]}[Data]," & Chr(13) & "" & Chr(10) & " #""En-têtes promus"" = Table.PromoteHeaders(#""mes-cles_2023-02-tableau"", [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & " #""Type modifié"" = Table.TransformColumnTypes(#""En-têtes promus"",{{""Nom" & _
" Commercial"", type text}, {""Code client"", Int64.Type}, {""N° de série"", Int64.Type}, {""Référence produit"", type text}, {""Libellé produit"", type text}, {""Date de fin de contrat"", type date}, {""Version "", type text}, {""Clé "", type text}, {""Date clé"", type date}, {""Code d’activation"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""" & _
"Type modifié"""
bonjour h2so4,

Merci, j'ai tester mais cela ne fonctionne pas toujours debogage
Bien cordialement
Francis

Bonjour à tous !

Je ne résiste pas à l'envie de vous rediriger ici ! .....

Bonjour,

Merci, j'ai testé mais cela ne fonctionne pas toujours debogage

on doit sans doute deviner le message d'erreur que tu reçois ? Je tente, il y a déjà une requête qui porte le nom "mes-cles_2023-02-Sage".

Bonjour à tous,
Pour le principe car on a pas tous les éléments !...
Cdlt.

Option Explicit

Sub ImportXLS()
Dim wb As Workbook, ws As Worksheet
Dim qry As WorkbookQuery
Const qryName As String = "Import XLS", qryDescription As String = "Import fichier Excel"
Dim strFile As String, qryFormula As String

    Set wb = ActiveWorkbook
    Set ws = wb.Worksheets(1)
    strFile = CHR(34) & ws.Cells(2, 2).Value & CHR(34)

    qryFormula = "let " & CHR(13) & "" & CHR(10)
    qryFormula = qryFormula & "Source = Excel.Workbook(File.Contents(" & strFile & "), null, true)" & CHR(13) & "" & CHR(10)
    qryFormula = qryFormula & "in" & CHR(13) & "" & CHR(10)
    qryFormula = qryFormula & "Source"

    Set qry = wb.Queries.Add(qryName, qryFormula, qryDescription)

    'wb.Connections(1).Delete
    'wb.Queries(1).Delete

End Sub

Bonjour,

Merci a tous de votre aide en relisant tous ce que vous aviez mis on a trouver la solution

Merci encore bonne journée Cordialement

Rechercher des sujets similaires à "microsoft 365 workbook file contents book1 xlsx"