Bonjour,

Je ne manipule pas souvent VBA et je galère depuis un moment car je souhaite écrire une macro qui importe des données provenant de fichiers csv dont je ne connais pas l'emplacement et le nom a l'avance.
J'utilise donc QueryTable.Refresh plutôt que QueryTables.Add.

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Sub ma_fonction()
    ' Ajout du 1er csv dans feuil_1
    Sheets("feuil_1").Select
    Range("A2").Select
    With Selection.QueryTable
        .TextFilePlatform = 65001
        .TextFileStartRow = 2
    End With
    Selection.QueryTable.Refresh BackgroundQuery:=False
 
 
    ' Ajout du 1er csv dans feuil_2
    Sheets("feuil_2").Select
    Range("A2").Select
    With Selection.QueryTable
        .TextFilePlatform = 65001
        .TextFileStartRow = 2
    End With
    Selection.QueryTable.Refresh BackgroundQuery:=False
 
 
End Sub
La première fois que j'ai exécué ma fonction j'ai bien réussi à avoir l'explorateur de fichier pour choisir l'emplacement de mon 1er csv et l'import de ce 1er csv a bien été réalisé, j'ai ensuite eu une erreur pour le 2eme csv.
L'erreur est du type: Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet
J'ai relancer ma fonction et maintenant j'ai l'erreur même dès le 1er csv.

J'ai essayé un ActiveWorkbook.RefreshAll qui ne m'a rien apporté.
On dirais que quelque chose est resté en cache ....

Est-ce que quelqu'un a une idée pour me débloquer?
Merci pour votre aide

Claire