Macro afin de mettre à jour les données externes

Bonjour,

je me permet de vous demander votre aide sur cette question par rapport d'actualisation des données.

j'ai créé un bouton afin de mettre à jour les données externes, avec le code:

ActiveWorkbook.Connections("Connection").Refresh

mais ça ne marche pas tout le temps, les données ne sont pas mises à jour après avoir executé cette macro

je voudrais bien savoir pourquoi...

Merci d'avance.

La meilleur solution est d'enregistrer une macro et de réaliser toute ta refresh c'est la solution la plus facile

J'ai fait de même pour effectuer une connexion Excel -> SharePoint et de mettre a jour mon classeur avec les données, tout cela avec une macro

le-guedin67 a écrit :

La meilleur solution est d'enregistrer une macro et de réaliser toute ta refresh c'est la solution la plus facile

J'ai fait de même pour effectuer une connexion Excel -> SharePoint et de mettre a jour mon classeur avec les données, tout cela avec une macro

le code suivant est déjà celui que j'ai enregistré. mais çe ne marche pas tout le temps

ActiveWorkbook.Connections("Connection").Refresh

Montre nous tout le code qui permet de faire la connexion / mise à jour

le-guedin67 a écrit :

Montre nous tout le code qui permet de faire la connexion / mise à jour

D'après moi, il y encore

  ActiveWorkbook.RefreshAll

Cest pas juste avec 1 ligne de code que tu va réussir a te connecter

montre nous TOUT le code

le-guedin67 a écrit :

Cest pas juste avec 1 ligne de code que tu va réussir a te connecter

montre nous TOUT le code

d'après moi, la connexion est déjà établie via Données->Connexions->Définition->Texte de la commande-> la requete SQL.

Ensuite, Paramètre->Obtenir la valeur de la cellule suivante, et activer la case "Actualiser automatiquement lorque la valeur de la cellule est modifiée"

dans Propriétés de connexion->Utilisation, je laisse tous par défaut

Donc je n'ai pas besoin de la reétablir chaque mise à jour,

le code que j'ai enregistré est justement une seule ligne...des coups ça marche, des coups ne marche pas.

Sinon vous avez quoi comme le code qui contient plusieurs lignes et permet de mettre à jour les données svp?

Perso moi le code qui me permet de se connecter -> mise à jour

Sub CnnSharepoint()

'-----------------------------------------
' Commande pour effectuer la mise à jour '
'-----------------------------------------

    ActiveWorkbook.Connections("owssvr[1]1").Delete ' Supprime l'ancienne connexion

    Workbooks("SCAR_test_vers.2.xlsm").Connections.AddFromFile _
        "C:\Documents and Settings\A750317\Bureau\Test connexion\Nouveau dossier\owssvr[1].odc" ' Cherche le fichier de connexion

    With ActiveWorkbook.Connections("owssvr[1]1").OLEDBConnection
        .BackgroundQuery = False ' Permet de terminer toute la Sub avant de continué
        .CommandText = Array( _
        "<LIST><VIEWGUID>{AD5B716B-8634-4327-BD7C-39C57E07FC36}</VIEWGUID><LISTNAME>{135A9266-D09D-4120-9CF5-FFDE6381599A}</" _
        , _
        "LISTNAME><LISTWEB>http://tor-sharepoint.messier-dowty.snecma/apps/globalscars/_vti_bin</LISTWEB><LISTSUBWEB></LISTS" _
        , "UBWEB><ROOTFOLDER>/apps/globalscars/SCARs</ROOTFOLDER></LIST>")
        .Connection = _
        "OLEDB;Provider=Microsoft.Office.List.OLEDB.2.0;Data Source="""";ApplicationName=Excel;Version=12.0.0.0"
        .RefreshOnFileOpen = False
        .SavePassword = False
        .SourceConnectionFile = ""
        .SourceDataFile = ""
        .ServerCredentialsMethod = xlCredentialsMethodNone
        .AlwaysUseConnectionFile = False
    End With

    With ActiveWorkbook.Connections("owssvr[1]1")
        .Name = "owssvr[1]1"
        .Description = ""
    End With

    ActiveWorkbook.Connections("owssvr[1]1").Refresh ' Fait un refresh à la fin de la connexion

End Sub

Merci guedin, pour ta réponse.

le code que j'ai enregistré est au-dessous, mais quand je veux exécuter cette macro, il trouve les erreurs sur la 2eme et la 3 eme ligne.

De plus, l'autre difficulté est que les données changent en fonction de la paramètre "dateDepp" que je donne.

Donc cette contrainte je ne sais pas où je peux insérer.

ActiveWorkbook.Connections("Connexion").Delete

    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=KEOPS;", _
        Destination:=Range("$A$1")).QueryTable
        .CommandText = Array( _
        "SELECT A.NROACT, A.DATDEPP, A.CODAVION" & Chr(13) & "" & Chr(10) & "FROM FROM S658CD6B.KEOPSDTA.VOL A")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Tableau_Lancer_la_requête_à_partir_de_KEOPS9"
        .Refresh BackgroundQuery:=False
    End With

Dit moi c'est à cette endroit que le bug survient

ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=KEOPS;", _
        Destination:=Range("$A$1")).QueryTable

et de plus avec

FROM FROM

ça pourra pas fonctionné

tu as tester ta requête actuel ?? elle fonctionne comme tu souhaites ?

as tu bien recréer la nouvelle connexion ?? car ka du supprime la connexion mais à la fin du code je vois pas la création de la nouvelle

guedin,

c'est bien ici qu'il a bloqué quand je fais marche les codes que j'ai enregistrés

ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=KEOPS;", _
        Destination:=Range("$A$1")).QueryTable

double FROM c'est moi qui a mal copié la requête.

Trop dur de faire fonctionner la mise à jour des données!!!

guedin,

c'est bien ici qu'il a bloqué quand je fais marche les codes que j'ai enregistrés

ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=KEOPS;", _
        Destination:=Range("$A$1")).QueryTable

double FROM c'est moi qui a mal copié la requête.

Trop dur de faire fonctionner la mise à jour des données!!!

As tu réussi a faire la mise à jour maintenant ??

Merci guedin, Merci pour ton préoccupation,

Je n'ai tjs pas trouvé la solution finale avec les super codes,

Pour l'instant, je me débrouille avec le code suivant, ça marche au moins

   Range("Tableau_Lancer_la_requête_à_partir_de_KEOPS"). Select

         ActiveWorkbook.RefreshAll

Merci de ton aide,

Rechercher des sujets similaires à "macro afin mettre jour donnees externes"