Erreur sélection fichier

Bonjour,

J'ai une macro excel qui ouvre une boîte de dialogue afin de sélectionner un fichier .csv et le convertir ( voir code ci-dessous . Le problème est que le fichier me renvoie l'erreur suivante, ai-je mis la mauvaise source ?

2020 05 11 09 06 17 microsoft visual basic
  Dim FD As Office.FileDialog
     Set FD = Application.FileDialog(msoFileDialogFilePicker)
     With FD
      .InitialFileName = ThisWorkbook.Path & "\*.csv"  'adapter le répertoire
     .Show
     If .SelectedItems.Count > 0 Then fichier = .SelectedItems(1)
     End With

 ActiveWorkbook.Queries.Add Name:="Customer_hotline", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Csv.Document(File.Contents(" & fichier & "),[Delimiter="","", Columns=14, Encoding=65001, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & "    #""En-têtes promus"" = Table.PromoteHeaders(Source, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Type modifié"" = Table.TransformColumnTypes(#""En-têtes promus"",{{""CostType"", type text}, " & _
        "{""TicketID"", Int64.Type}, {""TicketType"", type text}, {""CompanyCode"", type text}, {""InterventionDay"", type date}, {""ServicePackage"", type text}, {""NoteCreatedByTeam"", type text}, {""NoteCreatedBy"", type text}, {""Title"", type text}, {""Amount"", type number}, {""Unit"", Currency.Type}, {""Total"", Int64.Type}, {""Billable"", type text}, {""Invoiced"", t" & _
        "ype logical}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Type modifié"""
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Customer_hotline;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Customer_hotline]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = False
        .ListObject.DisplayName = "Customer_hotline"
        .Refresh BackgroundQuery:=False

Merci de votre aide !

Bonjour,

à quoi correspond la variable $Workbook$ ?

Bonsoir,

à vrai dire je ne sais pas trop, il n'y a rien dans le code que je vous ai pas envoyé qui l'a défini...

J'ai utilisé l’enregistreur de macro, et en sélectionnant manuellement mon fichier il m'a généré cette variable en tant que source.

PS : Je vous ai mis mon fichier en fichier joint si vous voulez y voir plus clair

Encore un grand merci pour votre aide

re,

essai en remplacant:

Source=$Workbook$

par

Source=" & fichier & "

Cela me renvoie toujours la même erreur : « le nom source n’a pas été reconnue. Veuillez vérifier qu’il est correctement orthographié »

re,

un essaie avec les $

remplacer:

Source=$Workbook$;

par

Source=$" & fichier & "$;

Salut le fil...

Une valeur typée avec un point devant c'est pas bizare ça...

.Refresh BackgroundQuery:=False

testes

Refresh BackgroundQuery:=False

ou

.Refresh BackgroundQuery =False

bonjour,

merci pour votre réponse.

Si j’utilise votre première méthode en enlevant le premier « . » le script ne s’exécute plus et passe directement sur le debug.

Si j’enlève les « : » cela me redonne l’erreur suivant : Microsoft excel actualise des données. Merci de réessayer plus tard »

Rebonjour,

Même si j’ajoute des « $ » avant et après cela me renvoie toujours la même erreur lié à la source

Salut le fil...

Alors teste en doublant les guillemets

Source = Csv.Document(File.Contents(" "& fichier & "")

Re,

En rajoutant deux guillemets cela m’a changé le message d’erreur : « Le chemin d’accès du fichier spécifié doit être un chemin d’accès absolu valide »

Bé alors là ...

Coles un

Debug.Print fichier

aprés ton

En With

pour voir un peu ce que cela dis

Re,

j'ai ajouté votre ligne de code, mais je ne sais pas trop comment elle s'utilise.

J'ai exécuté mon script normalement à l'aide de mon bouton et j'ai de nouveau le même message

Je vous glisse mon fichier ci-joint, si vous voulez y voir plus clair

Merci

Re

C'est une bétise de guillemets

testes comme cela :

Source = Csv.Document(File.Contents(""" & fichier & """),

Bonjour,

Oui comme ça c’est fonctionnel

Un grand MERCI pour votre aide !

Passez une bonne fin de semaine

Rechercher des sujets similaires à "erreur selection fichier"