IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modification Requete et Connexion


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Par défaut Modification Requete et Connexion
    Bonjour,

    Je viens vers vous pour avoir un conseil. Comme dans de nombreuses société, un ancien collégue à mis en place de nombreux fichier Excel pour facilité la vie de son equipe. Donc depuis son départ je dépanne régulierement mes collégues quand un de leurs fichier BUG sur du VBA ou des formules. Ces fichiers Excel font de nombreuses requetes sur des classeurs ou la base de données d'un Logiciel.

    Il y a quelques temps mes collégues ont eu comme projet de changer d'editeur et donc de logiciel . On m'a donc appellé au secours en derniére minute pour une tache un peu nouvelle pour moi.
    Je dois modifier les requetes sur une vingtaine de classeurs Excel et sur un de leur fichier Excel j'ai recensé pas moins 14 Connexions et requetes

    J'ai analysé les requetes vers la BDD de l'ancienne Application pour avoir le schema des données qui en etait extraite et pouvoir mettre en place les nouvelles Requetes.

    Par contre, pourriez-vous m'indiquer si l'on peut simplement modifier les propriétés de connexion d'une requetes en modifiant
    - La chaine de connexion
    - Le texte de la commande

    Ou faut-il tous supprimer et tout recréer ?

    Par avance, merci pour vos conseil

    Nom : 2021-08-06_11h02_24.png
Affichages : 957
Taille : 42,9 Ko

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je suppose que ces connexions ne sont pas encore des POWER QUERY... Peut-être faudrait-il profiter du travail de mise à jour à effectuer pour basculer sur Power Query?



    Cela dit, un classeur dispose de la collection WorkbookConnections qui reprend l'ensemble des connexions du classeur. Tu y retrouveras des ODBCConnections et des OLEDBConnections. Ces objets exposent notamment les propriétés Connection et CommandText. Tu peux retrouver tout ça via l'explorateur d'objet (F2)

    Nom : 2021-08-06_130245.png
Affichages : 923
Taille : 163,8 Ko

    Voilà un code qui donne les valeurs des deux propriétés sus-citées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
      Dim cn As WorkbookConnection
     
      Set cn = ThisWorkbook.Connections(2)
      With cn.ODBCConnection
        Debug.Print .Connection
        Debug.Print .CommandText
      End With
    End Sub

    Je précise bien que ceci ne vaut que pour les requêtes NON Power Query
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Pour Power Query, tu peux passer par la collection Queries du classeur qui contient des WorkbookQuery dont tu peux modifier la propriété Formula

    Nom : 2021-08-06_131707.png
Affichages : 922
Taille : 79,3 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Par défaut
    Merci pour votre réponse et désolé de ma réponse tardive.

    Effectivement, il ne s'agit pas de Power Query. Par contre j'ai cru comprendre en lisant un post que l'on pouvait modifier les connexions et les requetes grace aux commande ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    ActiveWorkbook.Connections("Nom_Connexion").ODBCConnection.Connection = "Ma chaine de connexion"
    ActiveWorkbook.Connections("Nom_Connexion").ODBCConnection.CommandText = "ma commande"
    Est-ce aussi simple ?

    Merci pour votre aide.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Oui, c'est aussi simple.

    Le code que j'ai donné dans mon premier message fait la même chose, mais en passant par une variable "pour plus de clarté de code", notamment pour illustrer que l'on pourrait boucler sur les connexions d'un classeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub updateConnections()
      Dim cn As WorkbookConnection
     
      For Each cn In ThisWorkbook.Connections
     
     
      Next cn
    End Sub

    On pourrait aussi avoir un tableau structuré avec trois colonnes (Nom de la connexion, chaine de connexion, commande sql) et boucler sur les lignes du tableau pour mettre les connexions à jour avec un code générique. Tout dépend du nombre de connexions et de classeurs à traiter.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Par défaut
    Merci pour votre aide et votre précision.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] Mettre à jour formulaire après modification requete par VBA
    Par CRC dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/07/2009, 10h03
  2. modif requete avec jointure
    Par looping dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/11/2008, 15h03
  3. Modification requete sql déjà compliqué !
    Par Maxow dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/11/2008, 23h50
  4. Réponses: 1
    Dernier message: 05/05/2008, 16h43
  5. Modification Requete SQL
    Par rippoz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/11/2007, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo