en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettres

scapu

XLDnaute Nouveau
Bonjour, et merci d'avance pour l'aide

Voila mon soucis, je ne sais pas si c'est possible ou pas en plus lol

j'aimerai savoir s'il est possible avec excel de trouver la combinaison de 6 lettres se rapprochant le plus d'une certaine valeur...

ok je m'expliques:
j'aurai a=1 b=5 c=15 et d=20 par exemple et j'aimerai connaitre la combinaison de 6 lettres donnant un total qui se rapprocherai le plus de 89 par exemple.Donc on peut utiliser autant de fois que l'on veut ( limite de 6) la meme lettre.

merci beaucoup
 

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

je m'explique: ( car meme pour moi , à relire) je m'y perds:
je pars du postulat que :
a vaut 1 point
b=5 points
c=15 points
et d=20 points

le but est de trouver la combinaison, sur 6 lettres, se rapprochant le plus de72 par exemple.
le resultat devant me donner ddcbbb ( 20+20+15+5+5+5).
Voila, le but est de trouver la combinaison ( ou les combinaisons) se rapprochant le plus de 72

merci encore
 

Staple1600

XLDnaute Barbatruc
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Bonsoir scapu, Mister Shark (;)), le fil , le forum

Voila, le but est de trouver la combinaison ( ou les combinaisons) se rapprochant le plus de 72
On a le but , OK :cool:

Mais quel est le contexte ?

PS:Tu as utilisé le moteur de recherche du forum ?
Car il y a de nombreux fils de discussions relatifs aux combinaisons et permutations.
 
Dernière édition:

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

oui j'ai parcouru rapidement..mais je n'ia trouver que des combinaisons aleatoires ou des series genre : AAAAAA AAAAAB AAAAAC...or moi j'ai un total a approcher ( ici 72) et je dois trouver la combinaison de 6 lettres pour m'en approcher.

le contexte? bha ..y'a a pas...je voudrai juste pouvoir entrer dans une cellule le total a approcher, et que cela me sorte la combinaison la plus proche.


merci encore
 

Staple1600

XLDnaute Barbatruc
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Bonjour

Ce que je voulais savoir, c'est quelle application concrète motive ton fil de discussion.

C'est ce que j'appelle le contexte.

C'est dans le cadre d'un calcul de score dans un jeu ?

Pour le plaisir ?

Et pourquoi 72 ?
 

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

72 n'est qu'un exemple...c'est dans le cadre d'un jeu oui...

j'ai une valeur allant d'environ 100 à 170 qui m'est donnée, et avec cela je dois , sur 6 lettres trouver la combinaison la plus proche.
 

hoerwind

XLDnaute Barbatruc
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Bonjour, salut les autres,

Il y a quelque chose qui ne va pas dans l'énoncé du problème.

Pour des valeurs allant de 100 à 170 avec des lettres dont les valeurs vont de 1 à 20 et avec un maximum de 6 lettres, on est forcément bloqué à 120 (6*20)

En pièce jointe une première approche par tableau intermédiaire.
Il reste une contrainte à solutionner : la valeur la plus proche.
Avec cette procédure pour 72 la valeur la plus proche est 71, c'est correct, mais pour 74 c'est aussi 71 alors qu'il faudrait 75.
La formule nommée devrait donc être complétée par un SI, mais auparavant il faudrait s'assurer qu'il n'y a pas de solution plus simple, par macro par exemple.

Édition :
Il existe une fonction qui transforme un nombre arabe en nombre romain : ROMAIN()
C'est peut-être sur ce principe qu'il faudra écrire la macro.
 

Pièces jointes

  • ValeurEnLettrres.xls
    17.5 KB · Affichages: 89
Dernière édition:

hoerwind

XLDnaute Barbatruc
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Re,

La solution n'est pas aussi simple que je l'avais imaginée au début !

Pour 72 le résultat devrait être =(2*20)+(2*15)+(2*1) soit DDCCAA et non DDDBBA qui renvoie 71
Je ne vois pas (encore) comment faire !
 

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

salut et merci beaucoup du temps consacré à mon soucis,

En effet 6x20 feront 120 et jamais plus , mais pour cet exemple la valeur meme des lettres n'est qu'un exemple.dans la "réalité" leur valeur est bien plus élévée.
A defaut de realiser précisement cela , peut etre serait il plus facile alors de réaliser quelquechose qui pourrait , toujours avec les lettres dispo et leur valeurn lister l' ensemble des combinaisons possible et les stocker dans un tableau. ( sans avoir de resultat à approcher).

par exemple, avec ces 5 lettres, ecrire toutes les combinaisons possible, sur un mot de X lettres. et je ferai moi meme , à la main, le choix de la valeur s'approchant le plus possible du total que j'aurai.
 

suistrop

XLDnaute Impliqué
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Salut,

en VBA c est moche mais ca fonctionne :
Apres tu peux modifier les parametres, le chiffre à trouver ...
Code:
Sub titi()
Dim tab_1(5000, 1)
lettre = Array("A", "B", "C", "D")
valeur = Array(1, 2, 5, 20)
ligne = 0
For x1 = 0 To 3
For x2 = 0 To 3
For x3 = 0 To 3
For x4 = 0 To 3
For x5 = 0 To 3
For x6 = 0 To 3
tab_1(ligne, 0) = lettre(x1) & lettre(x2) & lettre(x3) & lettre(x4) & lettre(x5) & lettre(x6)
tab_1(ligne, 1) = valeur(x1) + valeur(x2) + valeur(x3) + valeur(x4) + valeur(x5) + valeur(x6)
ligne = ligne + 1
Next x6
Next x5
Next x4
Next x3
Next x2
Next x1
'on cherche la valeur la plus proche
cherc = 72
meilleur = tab_1(0, 1)
For i = LBound(tab_1) To UBound(tab_1)
If Abs(tab_1(i, 1) - cherc) < Abs(meilleur - cherc) Then
Cells(1, 1) = tab_1(i, 0)
Cells(1, 2) = tab_1(i, 1)
meilleur = tab_1(i, 1)
End If
Next i
End Sub

Suistrop
 

Pièces jointes

  • TEST_VBA.xls
    25 KB · Affichages: 83
  • TEST_VBA.xls
    25 KB · Affichages: 96
  • TEST_VBA.xls
    25 KB · Affichages: 96

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

vraiment je te te remercie...

Je ne sais pas pour le 2eme fichier mais pour le 1er j'avais juste un petit soucis: Le mot à ecrire doit obligatoirement faire 6 lettres.
donc par exemple si avec 2 lettres on peut faire le total voulue, et bien cela ne va pas, puisqu'on doit trouver le total obligatoirement sur 6 lettres.
 

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Et maintenant attention la question c..

J'ai lancé le 2eme fihcier, VBA...je vois un resultat d'insrit mais...je fais comment pour faire changer ce mot ecrit en fonction du total? lorsque je change la valeur a atteindre, le mot ne change pas.Rien ne se passe.J'ai un truc a lancer avant? je peux le voir ou le code VBA?

par avance merci et desolé de mon ignorance..désolante.
 

tdenfert

XLDnaute Impliqué
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Bonjour,

test ceci

Alt F11 ,afficher, explrateur de projet, insere un module, et colle le tous dans le module
tu peux le lancer direct

Sub trouve()


Dim T(1 To 4) As Integer
Dim i As Integer, j As Integer, y As Integer
Dim mes As String

T(1) = 1
T(2) = 5
T(3) = 15
T(4) = 20
Dim VC As Double
Dim x As Double
Dim min As Double
VC = 72
min = 72
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, f As Integer
Dim l As Integer, m As Integer, n As Integer
Dim o As Integer, p As Integer, q As Integer
For a = 1 To 4
For b = 1 To 4
For c = 1 To 4
For d = 1 To 4
For e = 1 To 4
For f = 1 To 4
x = T(a) + T(b) + T(c) + T(d) + T(e) + T(f)
If Abs(VC - x) < min Then
l = a
m = b
n = c
o = d
p = e
q = f
min = VC - x
End If
Next
Next
Next
Next
Next
Next
x = T(l) + T(m) + T(n) + T(o) + T(p) + T(q)
mes = x & "=" & T(l) & "+" & T(m) & "+" & T(n) & "+" & T(o) & "+" & T(p) & "+" & T(q)
MsgBox (mes)

End Sub
 
Dernière édition:

scapu

XLDnaute Nouveau
Re : en fonction de la valeur de certaines lettres, trouver la combinaison de 6 lettr

Ok merci beaucoup. Juste 2 questions: si la valeur des lettres et/ou la longueur du mot avtrouver devait changer, je bouge ça ou dans ton script? Stp. Et , bcp plus c.. Je o intègre comment dans excel ça? Je connais rien en vba. Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 094
Membres
103 116
dernier inscrit
kutobi87