Bonjour la liste !
Je dispose dune 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 jai 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 lenregistrement 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ù jen suis :
- dans le MAIN qui gère laffichage 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 linstruction 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 quil 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
Cest peut-être très simple, mais je sèche.
Jespère que ma problématique est claire.
Pas sûr ;-(
En tout cas merci davoir lu jusquau bout.
-*-*-*-*-*-/*-*-*-*-*-*-*-*-*-*-
Pascal (alias Chaliapine)
-*-*-*-*-*-/*-*-*-*-*-*-*-*-*-*-
-------------
Pascal PIERRE