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 :

Intégrer une variable dans une macro d'import Access (MS Query) [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 9
    Par défaut Intégrer une variable dans une macro d'import Access (MS Query)
    Bonsoir à tous

    J'essaye d'intégrer une variable dans une macro enregistrée qui récupérer des données dans un Access via MQuery.
    Malheureusement la variable ne marche pas..

    La variable est en fait le numéro du jour (donc de 01 à 30) qu'elle trouve dans un autre classeur.

    Le 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
    24
    25
    26
    27
    28
    variable1 = Sheets("Mode Operatoire").Range("J1").Value
        Sheets("FEUILLEMACRO").Select
    
    
        ' importaccess
     With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
            "ODBC;DSN=IS_ODBC;UID=MONIDPERSO;;MODE=SHARE;DBALIAS=IS_ODBC;SYSSCHEMA=SYSCAE;ASYNCENABLE=0;" _
            , Destination:=Range("$A$1")).QueryTable
            .CommandText = Array( _
      "SELECT TEXPJO.NATFLUX, TEXPJO.IDMAG, TEXPJO.AAVMTP, TEXPJO.MMVMTP, TEXPJO.JJVMTP, TEXPJO.HHVMTP, TEXPJO.IMMAT, TEXPJO.OPCHGT, TEXPJO.IDTYCNT, TEXPJO.VOLCNT, TEXPJO.IDCNTRGT" & Chr(13) & "" & Chr(10) & "FROM W0MP" _
            , _
            "R.TEXPJO TEXPJO" & Chr(13) & "" & Chr(10) & "WHERE (TEXPJO.IDMAG='05') AND (TEXPJO.JJVMTP='variable1')" & Chr(13) & "" & Chr(10) & "ORDER BY TEXPJO.MMVMTP, TEXPJO.JJVMTP, TEXPJO.HHVMTP, TEXPJO.IDCNTRGT" _
            )
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = False
            .RefreshOnFileOpen = False
            .BackgroundQuery = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = False
            .AdjustColumnWidth = False
            .RefreshPeriod = 0
            .PreserveColumnInfo = False
            .ListObject.DisplayName = "Tableau1"
            .Refresh BackgroundQuery:=True
        End With
    Vous auriez une idée svp ?

    Merci

    Bonne soirée

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonsoir !

    ‼ (cf règles du forum !)

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    La variable est en fait le numéro du jour (donc de 01 à 30) qu'elle trouve dans un autre classeur.
    S'il s'agit de la variable Variable1 ET que le classeur où elle se trouve est ouvert, ce classeur est à préciser dans ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable1 = Sheets("Mode Operatoire").Range("J1").Value
    (préciser la feuille ne suffit pas).

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Et pour la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ..."WHERE (TEXPJO.IDMAG='05') AND (TEXPJO.JJVMTP='" & variable1 & "')" & Chr(13)...

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 9
    Par défaut
    Merci à vous deux !!! C'est le top

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

Discussions similaires

  1. Utiliser une valeur d'une variable dans une Macro
    Par ca_adrien dans le forum Macro
    Réponses: 7
    Dernier message: 01/08/2013, 14h14
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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