Bonjour la liste !
 
Je dispose d’une feuille de données avec par exemple les champs suivants
: NOM /PRENOM /COMMUNE  /GROUPE /REGION
Je crée une boîte de dialogue (BDD) pour effectuer une recherche et
afficher dans une autre feuille la liste restreinte des enregistrements
qui vérifient les critères de recherche (exemple : tous les
enregistrement avec REGION= ‘LORRAINE’ ET GROUPE=’ABG’).
 
Dans cette BDD j’ai pour chaque champ interrogé (par exemple COMMUNE
GROUPE REGION) un checkBox et un déroulant.
Si le checkBox est coché, on affiche le déroulant dans lequel on trouve
les valeurs possibles pour ce champ.
On peut bien sûr avoir 1 ou plusieurs checkBox cochés. 
Si plusieurs sont cochés je veux un AND entre chaque critère :
If (donneeX=critère1) AND (donneeY=critere2) AND (donneeZ=critere3) then
…
 
Après validation, une boucle parcourt tous les enregistrements de la
feuille de données.
Si l’enregistrement courant vérifie la condition, on recopie ses données
dans la feuille de destination.
Tout ça ne me pose pas de problème, sauf le texte de la condition.
Voilà où j’en suis :
 
- dans le MAIN qui gère l’affichage de la BDD:
‘dlg représente la boîte de dialogue
            if dlg.execute = 1 then
                        if dlg.getControl("CheckBox1").state then
critere1=dlg.getControl("ListBox1").selectedItem

                        if dlg.getControl("CheckBox2").state then
critere2=dlg.getControl("ListBox2").selectedItem

                        if dlg.getControl("CheckBox3").state then
critere3=dlg.getControl("ListBox3").selectedItem
 
monclasseur.currentController.activeSheet=lafeuille
                        remplisListe(critere1,critere2,critere3)
            end if
 
- dans la procédure qui affiche la liste (remplisListe)
Concrétement il faudrait qqchose dans ce genre, un peu comme qd on
construit une requête SQL :
(en gros il me manque l’instruction BASIC qui lui ferait interpréter le
contenu de la variable texteCondition comme étant du code)
 
texteCondition=’colonneX<>’’ ’ // en fait une condition qui sera tj
vraie, pas un problème ça…
IF critere1<>’’ THEN TexteCondition=TexteCondition & « AND colonne
COMMUNE =critere1 »
IF critere2<>’’ THEN TexteCondition=TexteCondition & « AND colonne
GROUPE=critere2 »
IF critere3<>’’ THEN TexteCondition=TexteCondition & « AND colonne
REGION=critere3 »
 
// la boucle
while lafeuille_src.getCellRangeByName("A"&ligne_src).getString<>""  //
tant qu’il y a qqchose dans la première cellule
            if (texteCondition) then
                        ‘on affiche les données dans la feuille de
destination
            end if
            ligne_src = ligne_src + 1
wend
 
C’est peut-être très simple, mais je sèche.
J’espère que ma problématique est claire.
Pas sûr ;-(
En tout cas merci d’avoir lu jusqu’au bout.
 
-*-*-*-*-*-/*-*-*-*-*-*-*-*-*-*-
Pascal (alias Chaliapine)
-*-*-*-*-*-/*-*-*-*-*-*-*-*-*-*-
 
 
 
-------------
Pascal PIERRE
 

Répondre à