VBA sur les BOUCLES conditonnelles

bonjour à tous,

d'abord, je trouve les cours d'initiations VBA excel très bien fait.. mais pas assez pour moi !

je débute en VBA excel.. je tâtonne, je réfléchis, je prends des modelés, j'analyse et pour mieux comprendre, je modifie certaines instructions mais j'ai du mal...

mon projet :

je souhaite afficher toutes les combinaisons d'une addition de 5 variables. ces 5 variables vont de 2 à 20.

ce qui doit faire 3 200 000 lignes..

pour eviter toutes ces lignes, je n'affiche que les totaux des 5 variables compris entre 55 et 99.

bon, j'ai bien fait des essais de BOUCLES avec if.. then.. if.. mais je suis perdu..

quelqu'un peut il me mettre sur une bonne voie ?

merci!

Bonjour Cyril92,

Pour faire des additions de 5 variables, il te faut 5 boucles imbriquées.

Pour moi, Si tes 5 variables peuvent prendre les valeurs de 2 à 20 (soit 19 valeurs possibles), leur nombre de combinaisons est 19^5 = 2 476 099 ce qui est trop grand pour entrer dans une seule colonne. Cependant, avec une présentation en tableau différente, on pourrait afficher la totalité des résultats.

Dans les trois premières colonnes, tu pourrais afficher les combinaisons de 3 variables (6859 lignes) et dans les 2 premières lignes, les combinaisons de 2 variables (361 colonnes) et au milieu… les sommes. Mais pas sûr que ce soit ce que tu cherches. Je t'ai mis un exemple de ce que ça pourrait donner avec des variables qui vont de 2 à 4 (243 valeurs).

Je vais commencer "simple" avec 5 variables qui varient de borne_inf = 2 à borne_sup = 4 (modifiables, bien sûr dans le code). Et dans un tableau, j'ajoute la valeur de chacune des variables et de la somme. Il y aura 3^5 = 243 lignes (3 valeurs pour chacune des 5 variables).

hello,

merci pour ton retour.

oui, c'est çà, 5 boucles imbriquées..

je suis impressionné !

la présentation du 2eme tableau est fabuleuse.. tout comme le nbre de ligne avec 5 variables allant de 2 à 4.. 243 lignes.. woww..

un grand merci !

j'ai change les valeurs inf et sup de 4 à 9 au lieu de 2 à 4.. et j'arrive déjà à 7776 lignes... ensuite je fais un filtre manuel.. c'est chaud..

est ce qu'on peut imaginer n'afficher que les lignes dont le total serait entre une borne basse et une borne haute ?

un 2ème grand merci !!

nb : peut on imaginer par exemple avoir des bornes différentes pour les 5 variable ?

ex : la VAR1 allant de 2 à 9, la VAR2 5 à 12, la VAR3 de 4 à 11... ?

bonne nuit ! et encore merci pour ton aide !

Cyril92,

Dans un tableau comme je te propose, on peut mettre en valeur par des couleur toutes les sommes qui correspondent à des critères (mise en forme conditionnelles). La présentation en tableau 2D éviterait de faire les calculs dans la macros (un peu longs), ils se feraient par des formules beaucoup plus rapides à calculer.

Bien sûr, on peut faire varier les bornes sur chaque variable, il suffit de créer les variables correspondantes borne_inf_1, borne_sup_1, borne_inf_1, borne_sup_1 dans le code

Comme tu l'as vu, le nombre de valeur a calculer peut être très important et la macro risque de tourner très longtemps, il faut y faire attention ! Le nombre de valeurs à calculer est égale à nb_valeurs_var1×nb_valeurs_var2×nb_valeurs_var3×nb_valeurs_var4×nb_valeurs_var5 et le nombre de valeur pour chaque variable vaut borne_sup - borne_inf +1.

On peut effectivement n'ajouter des lignes que si le total est compris entre deux bornes il faut ajouter un IF avec deux conditions, mais c'est gourmand en temps de calcul, à peu près autant, peut-être plus qui si tu affichais le résultat.

Bonjour,

Une proposition avec Power Query.

Bon, 5 variables de 2 à 20 dont la somme est comprise entre 59 et 99, on est proche du nombre de lignes max d'Excel !?

On peut filtrer les données entre 2 bornes avant d'afficher les résultats dans la feuille de calcul.

Mais est il utile d'afficher les résultats dans une feuille de calcul ?

A te relire.

Cdlt.

bonjour,

je pars au boulot, je regarde tout ceci ce soir, encore merci Valky68 et Jean-eric.. !

bonsoir,

un grand merci à vous 2..

@Valky68 : je partage ta réflexion sur le temps machine même en l’absence d'affichage de tous les résultats..

@Jean-Eric : Power Query plus fort que fort ! en 2 secondes on a toutes les combinaisons.. la ou excel tourne tourne sans PQ..

Excellent!

je vais travailler sur cette base.. il semble en plus que je puisse sélectionner certains chiffres pour chaque variable !

merci bcp !

Bonjour,

@Cyril92,

Fais nous part de tes investigations…

Cdlt.

Yes je dompte la bete.. derriere j ai un autre traitement.. j ai vu une video sur Power Query..

Ca me plait bien.. je dois rapprocher maintenant 2 fichiers... recherchev ou power query.. mon coeur balance... il faut que je me structure sur ce que je veux precisement... merci encore

Bonsoir @Jean-Eric,

Ravi de voir l'utilisation qu'on peut faire de Power Query que je connais très peu. C'est très surprenant de rapidité ! Merci d'avoir partagé ça !

Rechercher des sujets similaires à "vba boucles conditonnelles"