Variable requete BO via Excel

[Résolu/Fermé]
Signaler
Messages postés
505
Date d'inscription
mercredi 27 février 2008
Statut
Membre
Dernière intervention
8 septembre 2017
-
Messages postés
505
Date d'inscription
mercredi 27 février 2008
Statut
Membre
Dernière intervention
8 septembre 2017
-
Bonjour à tous,

Voila mon problème, j'ai créé une macro en VBA permettant de lancer BO, m'y connecter, et lancer un fichier requête (.rep) et ensuite l'extraire sur Excel.
Le problème c'est que ma requête possède une variable qu'y dois changer suivant le mois (en gros j'ai un "WHERE champ1 = mois courant").
Étant donné que je dois automatiser cette tâche je souhaiterai savoir comment modifier la variable de ma requête via VBA.
J'ai trouvé ceci:
docBO.Variables("Année?").Value = "2005"

Mais ça ne fonctionne pas... Peut être que je ne rentre pas le bon nom de la variable (ici en exemple "Année?").
Le champ sur lequel j'applique le filtre "Dans liste" sur BO s'appelle "OCCP: Période arrêté informations" et je sélectionne tous les mois de l'année courante.
En SQL (je n'y ai malheureusement pas accès...):
DACC.DACC_OCCP_AGND.PERD_ARRT_INFO IN ('201504', '201505', '201502', '201503', '201501')

Merci de votre aide !!

2 réponses

Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
25
Bonjour,

Pour ce qui est de BO, je connais pas ca.
Mais je connais VBA.

J'imagine que tu lances BO en lui refillant un paramêtre qui est une chaine de texte
Exemple : Blah blah = "blah blah blah"

En vba, tu peux glisser des variables dans la chaine de texte avec le symbole concatèner.

Dim Annee as string 'déclaration de ta variable

Annee = "2014"

Blah blah = "blah blah WHERE champ1 =" & annee & "blah blah"

Donc, en VBA, tu assigne ta variable annee (tu peux coder la valeur dans la macro, aller la chercher dans la feuille excel, ou faire un inputbox et la demander dynamiquement durant l'exécution de la macro)
Une fois ta variable annee assigné, tu la glisse dans ta chaine texte que tu passes probablement a BO.

On ne veut pas comparer des pommes avec des oranges.
Tu dois vérifier le format de champ1, et faire en sorte que ta variable année soit dans le même format.
Messages postés
505
Date d'inscription
mercredi 27 février 2008
Statut
Membre
Dernière intervention
8 septembre 2017
4
Merci de votre réponse, mais j'ai réussi à répondre à mon besoin grâce à une invite sous BO grâce à ce code:
docBO.Variables.Item("ton_invite" ).Value = ta_valeur