Bonjour,
Je m'attaque au VBA (parce que je ne peux pas réaliser ce que je souhaite sans VBA, je pense... Si c'est le cas, merci de me le signaler, je n'ai absolument pas réussi !)
Et si je commence à comprendre et maîtriser les formules, le VBA va être une autre paire de manches.
Voici ce que j'ai :
Une plage "E2:AC354", contenant des valeurs diverses et variées, aléatoirement.
Une valeur max entrée manuellement en B2.
Ce que je souhaite faire :
Un bouton, pour commencer.
Une recherche en boucle dans la plage spécifiée, qui va chercher la valeur min (ou l'une des plus basses s'il y a des égalités), passe la case en vert (par exemple, RGB 0,255,0 ou peu importe, en couleur), ajoute cette valeur à une valeur temporaire (qui est donc comparée à celle en B2). Et on recommence en excluant les cases vertes (donc déjà utilisées) de la recherche.
La recherche s'arrête quand la valeur en B2 est atteinte (ou presque) par la valeur temporaire. Mais elle ne peut pas la dépasser ! C'est important. Lorsque plus aucune valeur du tableau E2:AC354 ne peut être ajoutée sans dépasser B2, its the end, Wend je suppose, la fin de la boucle.
J'avoue être un peu perdu par tout ça. J'ai fait quelques essais, mais rien de concluant.
Des idées d'une structure VBA pour faire ça ?
En résumé, j'ai besoin de pouvoir atteindre une valeur entrée manuellement (sans la dépasser) en me servant des plus petites valeurs du tableau.
Alors, j'avais le début !
Quelque chose comme ça.
Mais du coup, je comptais continuer par un While, depuis 2h je suis dessus, et rien ne fonctionne comme je veux ^^ J'ai tenté un For Each... qui se sert des lignes et des colonnes définies plus haut, mais pas moyen non plus d'avoir ce que je veux.
Alors j'en viens à demander de l'aide.
Merci pour votre compréhension de mon charabia Et pour votre aide.
Si besoin d'éclaircissements, je suis là.
Je m'attaque au VBA (parce que je ne peux pas réaliser ce que je souhaite sans VBA, je pense... Si c'est le cas, merci de me le signaler, je n'ai absolument pas réussi !)
Et si je commence à comprendre et maîtriser les formules, le VBA va être une autre paire de manches.
Voici ce que j'ai :
Une plage "E2:AC354", contenant des valeurs diverses et variées, aléatoirement.
Une valeur max entrée manuellement en B2.
Ce que je souhaite faire :
Un bouton, pour commencer.
Une recherche en boucle dans la plage spécifiée, qui va chercher la valeur min (ou l'une des plus basses s'il y a des égalités), passe la case en vert (par exemple, RGB 0,255,0 ou peu importe, en couleur), ajoute cette valeur à une valeur temporaire (qui est donc comparée à celle en B2). Et on recommence en excluant les cases vertes (donc déjà utilisées) de la recherche.
La recherche s'arrête quand la valeur en B2 est atteinte (ou presque) par la valeur temporaire. Mais elle ne peut pas la dépasser ! C'est important. Lorsque plus aucune valeur du tableau E2:AC354 ne peut être ajoutée sans dépasser B2, its the end, Wend je suppose, la fin de la boucle.
J'avoue être un peu perdu par tout ça. J'ai fait quelques essais, mais rien de concluant.
Des idées d'une structure VBA pour faire ça ?
En résumé, j'ai besoin de pouvoir atteindre une valeur entrée manuellement (sans la dépasser) en me servant des plus petites valeurs du tableau.
Alors, j'avais le début !
Quelque chose comme ça.
VB:
Dim zone As Range
Dim ligne As Range
Dim cellule As Range
Set zone = Range("E2:AC354")
Dim Somme As Integer
Dim somtemp As Integer
valeur = 0
Somme = Range("B2").Value
somtemp = 0
Mais du coup, je comptais continuer par un While, depuis 2h je suis dessus, et rien ne fonctionne comme je veux ^^ J'ai tenté un For Each... qui se sert des lignes et des colonnes définies plus haut, mais pas moyen non plus d'avoir ce que je veux.
Alors j'en viens à demander de l'aide.
Merci pour votre compréhension de mon charabia Et pour votre aide.
Si besoin d'éclaircissements, je suis là.
Dernière édition: