Modif d'un query par macro

Bonjour,

Je travaille sur un fichier excel qui fait intervenir des requêtes sur des sources ODBC.

Et j'aimerais modifier une requête par l'intermédiaire d'une macro si possible.

Je m'explique :

- j'ai créé un query qui va me chercher des informations sur des heures effectuées sur une affaire (appelons cette affaire AFF1).

Lorsque je vais ensuite voir dans Data/Connections/Properties (du query)/onglet Définition, je peux voir dans la case intitulée CommandText un texte du type "SELECT....where affaire = AFF1".

- J'aimerais maintenant créer une macro qui va aller me modifier une partie de ce texte : changer AFF1 en AFF2 !

Et c'est là que je chôme, je ne vois absolument pas comment c'est possible ! (peut-être que ça ne l'est pas, tout simplement...).

Mais bon, si jamais quelqu'un peut me donner un avis éclairé sur ce sujet (j'espère avoir été compréhensible...) , ça me serait très utile !

Merci d'avance !!

Bonjour

Un p'tit fichier avec la macro faciliterait grandement la résolution de ton problème (enfin je le crois)

Bonjour et désolé pour la réponse tardive,

En fait je crois bien que le mieux à faire, c'est de modifier la macro en question par une autre macro...

Voila un fichier joint. En appuyant sur le bouton modif query (qui en fait ne le modifie pas du tout...), j'appelle une macro modif_query et dans cette macro, je voudrais modifier cette ligne comme je le veux :

"SELECT FPROABS.NUMERO_AFFAIRE, FPROABS.FONCTION, FPROABS.TEMPS_POINTE" & Chr(13) & "" & Chr(10) & "FROM S657529F.FOCUSFICN.FPROABS FPROABS" & Chr(13) & "" & Chr(10) & "WHE" _

, "RE (FPROABS.NUMERO_AFFAIRE='SEAS46')")

J'aimerais changer le nom de l'affaire.

En gros à l'ouverture du fichier, j'aimerais avoir une fenêtre qui s'affiche et qui me demande "quelle affaire souhaitez-vous ?" et je rentre par exemple SEAS50 et cette action modifie la commandText dans les propriétés du query.

Ou alors modifier la macro_query par une autre macro, j'ai vu que c'était possible de faire cela en fouillant un peu sur le web mais je n'ai rien trouvé de très intéressant pour le moment.

Merci pour le coup de main !

53modif-query.xlsm (23.06 Ko)

Bonjour

Sans test car des instructions ne sont pas acceptées essayes

Sub modif_query()
Dim Rep As String
' modif_query Macro
' Permet de modifier le query : changer le nom de l'affaire
  Rep = InputBox("Veuillez entrer une affaire")
  If Rep = "" Then Exit Sub

    Range("C3").Select
    With ActiveWorkbook.Connections("Query from SEAS").ODBCConnection
        .BackgroundQuery = True
        .CommandText = Array( _
        "SELECT FPROABS.NUMERO_AFFAIRE, FPROABS.FONCTION, FPROABS.TEMPS_POINTE" & Chr(13) & "" & Chr(10) & "FROM S657529F.FOCUSFICN.FPROABS FPROABS" & Chr(13) & "" & Chr(10) & "WHE" _
        , "RE (FPROABS.NUMERO_AFFAIRE='" & Rep & "')")
        .CommandType = xlCmdSql
        .Connection = "ODBC;DSN=SEAS;"
        .RefreshOnFileOpen = False
        .SavePassword = False
        .SourceConnectionFile = ""
        .SourceDataFile = ""
        .ServerCredentialsMethod = xlCredentialsMethodIntegrated
        .AlwaysUseConnectionFile = False
    End With
    With ActiveWorkbook.Connections("Query from SEAS")
        .Name = "Query from SEAS"
        .Description = ""
    End With
    ActiveWorkbook.Connections("Query from SEAS").Refresh
End Sub

Excellent !

ça marche parfaitement ! merci beaucoup pour la rapidité et l'efficacité de la réponse !

Bonne journée !

Rechercher des sujets similaires à "modif query macro"