Listobjects.QueryTable.Refresh

Bonjour

J'expose mon traitement.
Je dispose d'un fichier csv alimenté avec des données externes.
J'intègre ce fichier dans une feuille dédiée sur excel, "data" pour mettre à jour une table "import" depuis ma requête existante (Requêtes et connexions)

En variable globale, je déclare un Dim importTable As ListObject

Je lance un ctrl d'existence et de maj de mon fichier csv.

Si ok, je procède au QueryRefresh et je fais mes traitements.

Le problème est le suivant :
Le Query Refresh doit être ok puisque lorsque je vais sur ma page data, ma table import contient bien toute mes nouvelles datas.
Pourtant, les traitements ne sont pas effectués, je dois relancer manuellement ma sub pour que les nouvelles données soient prise en compte, un peu comme si la maj de data se faisait après coup.

Voici le code extrait tel que je l'ai écrit.

Est-ce que quelqu'un peut me dire s'il décèle une quelconque anomalie ?

Merci par avance

Thierry

    filepath = "chemin vers mon fichier csv"

    If NewResa(filepath) Then   ' on fera le traitement ssi le fichier csv existe et qu'il a été mis à jour

        With importTable.QueryTable
            .BackgroundQuery = True
            .Refresh
        End With

            '
            ' Traitements
            '
    End If

'==============================
Function NewResa(filepath) As Boolean   ' On vérifie si le fichier csv existe et a été mis à jour

    Dim oFile As Object
    Set oFile = CreateObject("Scripting.FileSystemObject")

        If Dir(filepath) <> "" Then                                         ' le fichier existe
            If oFile.GetFile(filepath).Datelastmodified > dateMAJ Then      ' le fichier a été mis à jour
                NewResa = True
                Range("lastimport").Value = oFile.GetFile(filepath).Datelastmodified
                Set importTable = Worksheets("data").ListObjects("import")
            Else
                NewResa = False
            End If
        Else
            MsgBox ("Le fichier reservations.csv n'existe pas")
            NewResa = False
        End If

End Function

Bonjour,

Et en mettant à "False" le BackgroundQuery"? (en n'autorisant donc pas le traitement en arrière-plan)

Peut-être?

Bonjour,
Une question : dateMAJ ?
Cdlt.

Bonjour Jean Erix,
Aucun pb avec dateMaj, c'est pour ça que je n'ai rien rappelé y faisant mention, tout fonctionne parfaitement bien avec dateMaj à priori

Dim dateMAJ As Date 'en variable globale
dateMAJ = Range("lastimport").Value 'je récupère la date du dernier csv utilisé que j'ai stocké dans une cellule nommée de mon classeur

Merci @cousinHub, ça venait effectivement birn du backgroundQuery que j'avais positionné à True, va savoir pq...

Merci de ton aide !!!

Rechercher des sujets similaires à "listobjects querytable refresh"