-
Clause IF dynamique
Bonjour,
j'ai un petit soucis pour créer un "IF" dynamique au sein d'une macro.
J'explique:
J'ai deux feuilles Excel "TablDonnées" et "LesParam".
La Feuille "TablDonnées" : contient mon tableau de données
La Feuille "LesParam" : contient Les paramètes que je veux appliquer dans ma macro.
Je voudrais en fonction des parametres entrés dans la feuille "LesParam" colorié les lignes correspondant aux critères
Peut-on avoir une macro flexible qui peut faire ce travail.
Je vous remercie pour votre aide.
Si vous avez une autre solution je suis preneur.
-
Il faut que tu mettes aussi la couleur (enfin le code couleur) en parametres aussi
Ainsi, au lieu de faire des IF spécifiques, tu peux faire ceci:
Tu lis ta feuille tableDonnes et tu recherches la colonne dans ta feuille Param correspondant aux données que tu recherches
Une fois la colonne déterminé, il ne te reste plus qu'à lire la ligne ou tu as stocké la couleur à mettre en place
J'ai un peu le temsp cet après-midi, j'essaie de te faire un ptit truc dans le genre
-
Helios77,
Je crois que t'as pas bien assimilé mon problème.
mon soucis est que dans la feuille paramètres je vais mettre mes critères (ou mes conditions) à partir desquels je vais colorier les lignes répondant à ces critères dans la feuille des données.
voilà
-
Salut,
ton nombre de critères est-il limité et tes TOTO, TATA et autres correspondent-elles a des choses concrètes et tangibles ou bien TOTO peut-il être SHEETS(1).RANGE("S4") ou "A5" ou ...
-
TOTO, TATA ...
Ce sont les noms de colonnes de la feuille "TablDonnées"
-
Oui mais c'est du Chti. :aie:
je suppose que le colonnes s'appelent autrement
Tu peux me donner une exemple réel de condition.
-
Justement, j'ai bien compris ton problème et ta couleur deviendrait aussi un parametre du coup
y a juste unefonction de recherche à faire pour chercherdasn la feuille parametre, la cellule correspondant à tes critères pour en récupérer le code couleur
-
helios77
pas bête du tout :bug:
-
1 pièce(s) jointe(s)
Merci GodZestla de me comprendre
D'ailleurs, je te conseilleras d'organiser ta feuille de paramétrage ainsi...
Au moins, toutes les donénes se retrouvent toujours dnas le même ordre ==> plus simple à chercher
-
Non, Hélios tu me démontre que tu n'as rien compris encore.
C'est pas une question de couleur
puisque je cherche de colorier les données dans la feuille "TablDonnées"
J'explicite davantage:
la première image (voir les images) est la feuille "TablDonnées" , vous remarquez que "TOTO,TITI..." sont les noms de colonnes.
La deuxième image est la feuille "LesParam" c'est dans cette feuille où je mentionne mes critères.
En fonction de ces critères (ex: si TOTO = "Yahoo" et si TATA = "com" et si ALPHA = "01/01/2020" alors colorie dans la feuille "TablDonnées" les lignes qui ont dans la colonne TOTO des valeurs égales à "Yahoo" et dans la colonne TATA des valeurs égales à "com" et dans la colonne ALPHA des valeurs égales à "01/01/2020"
si une ligne répond à ces critères eh bien colorie cette ligne
-
Bah oui, c'est bien ce que j'ai compris
En tout cas, si moi je devais développer un truc comme çà dynamique, je ne trouve pas d'autres solutions que la mienne...... sauf si tu préfères évidemment, à chaque rajout de parametre, rajouter des lignes de code...
En tout cas, ti tu trouves una autre solution, je suis preneur... la mienne est simple, efficace et rapide à mettre en place sans aucune maintenance dans lasuite si tu rajoutes des paramètres
Je vais essayer de te le prouver en te faisant un exemple
-
Hélios
Supposons que j'organise ma feuille "LesParam" comme tu dis
comment tu construirais ton code.
-
Déjà, faire des feuilles de paramétrages ainsi va te bloquer à 254 config différentse seulement (255 colonne max dans Excel)
Mais bon, c'est un autre problème
Dans ce que je t'ai envoyé, faut insérer une ligne sous la ligne de titre pour y mettre le code couleur correspondant à la config
Tu balaies ta feuille des données pour y récupérer chacune des infos de chacune des colonnes
Ensuite, tu passes tout çà en paramètres dans une fonction RechercherConfig(param1, param2)
param1 et param2 seraient 2 chaines de caractères
param1 : liste des titres de colonnes séparés par des "_"
param2 : liste des paramètres séparés par des "_"
Ainsi, si tu as besoin de rajouter des colonnes, t'auras pas à remodifier ton code pour prendre en compte la colonne "tyiop" par exemple
Cette fonction cherchera dans la feuille Param, la colonne correspondant à la config passé en paramètre
Une fois que tu as trouvé la colonne, il ne te reste plus qu'à retourner le code couleur rajouter en 2ième ligne
Après, tu fais ton Row(i). ....... = codeCouleur
Et le tour est joué.... tu pourras rajouter autant de config que tu veux, sans retoucher à ton code..
Le plus simple serait quand même de faire un truc sous Access pour ne plus avoir de limite de paramétrage ... au lieu de mettre une couleur, tu ferais un état avec un code te permettant de ressortir tes lignes