Variable requete BO via Excel

Résolu/Fermé
sasafca Messages postés 505 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 8 septembre 2017 - 21 mai 2015 à 14:04
sasafca Messages postés 505 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 8 septembre 2017 - 28 mai 2015 à 09:07
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 !!
A voir également:

2 réponses

PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
27 mai 2015 à 18:00
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.
0
sasafca Messages postés 505 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 8 septembre 2017 4
28 mai 2015 à 09:07
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
0