Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Amélioration code

19 réponses
Avatar
Guy85
Bonjour,
J'ai fais un jeu "Motus" (grâce à votre aide).
Je sais, ce n'est as très important, ce n'est qu'un jeu.
Voilà mon problème:
Le mot à trouver est "ACCRUE"
Le 1er mot que je mets : est "ALARME"
Il me met le 2ème "A" sur fond jaune, alors qu'il n'y a pas de 2ème "A".
Si quelqu'un à le temps de voir mon problème, je le remercie à l'avance.

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijEZxFicv.xls
Cordialement
Guy

10 réponses

1 2
Avatar
Modeste
Bonsour® Guy85 avec ferveur ;o))) vous nous disiez :

J'ai fais un jeu "Motus" (grâce à votre aide).
Je sais, ce n'est as très important, ce n'est qu'un jeu.
Voilà mon problème:
Le mot à trouver est "ACCRUE"
Le 1er mot que je mets : est "ALARME"
Il me met le 2ème "A" sur fond jaune, alors qu'il n'y a pas de 2ème
"A". Si quelqu'un à le temps de voir mon problème, je le remercie à
l'avance.



;o)))
c'est toi qui a écrit l'algorithme, tu devrais avoir mis des commentaires dans le code de façon à expliciter en pas a pas les raisons de ce comportement...
ce que tu demande s'appelle du reverse-engeniring et demande du temps ... ;o)))

pour illustrer ce que je dis et que je ne fais pas, ;o)))
essaie de faire la meme chose là :
fichier Excel (dont banque de 50000 mots de 5 à 9 lettres)
http://www.cijoint.fr/cjlink.php?file=cj201004/cijOmcPDXd.xls
les sons qui vont avec...
http://www.cijoint.fr/cjlink.php?file=cj201004/cijADOQItY.zip
Grrr....
je n'arrive pas à transmettre le jingle !!!
Avatar
Michel__D
Bonjour,

Guy85 a écrit :
Bonjour,
J'ai fais un jeu "Motus" (grâce à votre aide).
Je sais, ce n'est as très important, ce n'est qu'un jeu.
Voilà mon problème:
Le mot à trouver est "ACCRUE"
Le 1er mot que je mets : est "ALARME"
Il me met le 2ème "A" sur fond jaune, alors qu'il n'y a pas de 2ème "A".




Heu...., c'est bien toi qui a saisi la formule dans le formatage
conditionnel ???

PS: Pour moi le fonctionnement est normal, puisque le 1er A est en rouge
car bien placé et du fait de
la formule placé dans le formatage conditionnel le 2ème A en jaune fait
référence en fait à la présence
d'un A dans le mot vérifié par le 1er A.

Si quelqu'un à le temps de voir mon problème, je le remercie à l'avance.




Ben il n'y a pas de problème, c'est la bonne réaction par rapport à la
formule utilisée.

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijEZxFicv.xls
Cordialement
Guy
Avatar
Guy85
Bonjour Michel,
Je vais regarder ça de plus près.
Il y a quand même quelque chose qui me gêne dans le fonctionnement.
je vais faire quelques essais.
Cordialement
Guy

"Michel__D" a écrit dans le message de
news:
Bonjour,

Guy85 a écrit :
Bonjour,
J'ai fais un jeu "Motus" (grâce à votre aide).
Je sais, ce n'est as très important, ce n'est qu'un jeu.
Voilà mon problème:
Le mot à trouver est "ACCRUE"
Le 1er mot que je mets : est "ALARME"
Il me met le 2ème "A" sur fond jaune, alors qu'il n'y a pas de 2ème "A".




Heu...., c'est bien toi qui a saisi la formule dans le formatage
conditionnel ???

PS: Pour moi le fonctionnement est normal, puisque le 1er A est en rouge
car bien placé et du fait de
la formule placé dans le formatage conditionnel le 2ème A en jaune fait
référence en fait à la présence
d'un A dans le mot vérifié par le 1er A.

Si quelqu'un à le temps de voir mon problème, je le remercie à l'avance.




Ben il n'y a pas de problème, c'est la bonne réaction par rapport à la
formule utilisée.

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijEZxFicv.xls
Cordialement
Guy
Avatar
Guy85
Bonjour,
Oui le problème, c'est que cela se produit avec n'importe quelle lettre.
Si le mot est "ACERAT" et que je mets "ARBRES" c'est le 2ème "R" (il
faudrait qu'il soit gris) qui est en jaune parque y a un "R" en 4ème lettre.
Comment éviter ça ?
Cordialement
Guy

"Michel__D" a écrit dans le message de
news:
Bonjour,

Guy85 a écrit :
Bonjour,
J'ai fais un jeu "Motus" (grâce à votre aide).
Je sais, ce n'est as très important, ce n'est qu'un jeu.
Voilà mon problème:
Le mot à trouver est "ACCRUE"
Le 1er mot que je mets : est "ALARME"
Il me met le 2ème "A" sur fond jaune, alors qu'il n'y a pas de 2ème "A".




Heu...., c'est bien toi qui a saisi la formule dans le formatage
conditionnel ???

PS: Pour moi le fonctionnement est normal, puisque le 1er A est en rouge
car bien placé et du fait de
la formule placé dans le formatage conditionnel le 2ème A en jaune fait
référence en fait à la présence
d'un A dans le mot vérifié par le 1er A.

Si quelqu'un à le temps de voir mon problème, je le remercie à l'avance.




Ben il n'y a pas de problème, c'est la bonne réaction par rapport à la
formule utilisée.

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijEZxFicv.xls
Cordialement
Guy
Avatar
Michel__D
Bonjour,

Guy85 a écrit :
Bonjour,
Oui le problème, c'est que cela se produit avec n'importe quelle lettre.
Si le mot est "ACERAT" et que je mets "ARBRES" c'est le 2ème "R" (il
faudrait qu'il soit gris) qui est en jaune parque y a un "R" en 4ème lettre.
Comment éviter ça ?




Ben oui, la lettre A allait de pair avec ton exemple, mais bien
évidemment que quelque soit la lettre le
problème est le même.

Il n'y a pas 36 solutions, il faut revoir au minimum la formule du
formatage conditionnel et si ce n'est pas
possible de cette manière, le gérer via du code VBA.

PS: Si j'ai le temps je vais essayer de trouver une formule adéquate,
j'ai quelques idées ...

Cordialement
Guy

"Michel__D" a écrit dans le message de
news:

Bonjour,

Guy85 a écrit :

Bonjour,
J'ai fais un jeu "Motus" (grâce à votre aide).
Je sais, ce n'est as très important, ce n'est qu'un jeu.
Voilà mon problème:
Le mot à trouver est "ACCRUE"
Le 1er mot que je mets : est "ALARME"
Il me met le 2ème "A" sur fond jaune, alors qu'il n'y a pas de 2ème "A".




Heu...., c'est bien toi qui a saisi la formule dans le formatage
conditionnel ???

PS: Pour moi le fonctionnement est normal, puisque le 1er A est en rouge
car bien placé et du fait de
la formule placé dans le formatage conditionnel le 2ème A en jaune fait
référence en fait à la présence
d'un A dans le mot vérifié par le 1er A.


Si quelqu'un à le temps de voir mon problème, je le remercie à l'avance.




Ben il n'y a pas de problème, c'est la bonne réaction par rapport à la
formule utilisée.


Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijEZxFicv.xls
Cordialement
Guy








Avatar
Michel__D
Michel__D a écrit :
Bonjour,

Guy85 a écrit :
Bonjour,
Oui le problème, c'est que cela se produit avec n'importe quelle lettre.
Si le mot est "ACERAT" et que je mets "ARBRES" c'est le 2ème "R" (il
faudrait qu'il soit gris) qui est en jaune parque y a un "R" en 4ème
lettre.
Comment éviter ça ?




Ben oui, la lettre A allait de pair avec ton exemple, mais bien
évidemment que quelque soit la lettre le
problème est le même.

Il n'y a pas 36 solutions, il faut revoir au minimum la formule du
formatage conditionnel et si ce n'est pas
possible de cette manière, le gérer via du code VBA.

PS: Si j'ai le temps je vais essayer de trouver une formule adéquate,
j'ai quelques idées ...



Essaye les formules suivantes au niveau du formatage conditionnel en J22:

1ère formule :
=J22=AZ$12

2ème formule :
=ET(NB.SI($AZ$12:$BJ$12;J22);NB.SI($J22:J22;J22)<=NB.SI($AZ$12:$BJ$12;J22))

2ème formule :
=J22=AZ$14

Ensuite tu recopie en dessous et enfin tu recopie la plage J22:J42 en
L22, N22, ..., T22
Avatar
Guy85
Bonjour,
Je te remercie, je regarde ça et je te tient au courant.
Cordialement

"Michel__D" a écrit dans le message de
news: %
Michel__D a écrit :
Bonjour,

Guy85 a écrit :
Bonjour,
Oui le problème, c'est que cela se produit avec n'importe quelle lettre.
Si le mot est "ACERAT" et que je mets "ARBRES" c'est le 2ème "R" (il
faudrait qu'il soit gris) qui est en jaune parque y a un "R" en 4ème
lettre.
Comment éviter ça ?




Ben oui, la lettre A allait de pair avec ton exemple, mais bien
évidemment que quelque soit la lettre le
problème est le même.

Il n'y a pas 36 solutions, il faut revoir au minimum la formule du
formatage conditionnel et si ce n'est pas
possible de cette manière, le gérer via du code VBA.

PS: Si j'ai le temps je vais essayer de trouver une formule adéquate,
j'ai quelques idées ...



Essaye les formules suivantes au niveau du formatage conditionnel en J22:

1ère formule :
=J22=AZ$12

2ème formule :
=ET(NB.SI($AZ$12:$BJ$12;J22);NB.SI($J22:J22;J22)<=NB.SI($AZ$12:$BJ$12;J22))

2ème formule :
=J22=AZ$14

Ensuite tu recopie en dessous et enfin tu recopie la plage J22:J42 en L22,
N22, ..., T22
Avatar
Guy85
Bonjour Michel
Dommage ça ne fonctionne pas.
Exemple:
Le mot est "ACHEVE".
1ère ligne = "ALBERT".
La lettre "E" est la 4ème comme le mot à trouver le fond est "jaune", alors
qu'il devrait être "rouge".
2ème ligne "ABAQUE".
La lettre "A" est la 3ème, le fond est "rouge" alors qu'il devrait être
"gris".et la lettre "E" en dernier le fond est "jaune" alors qu'il devrait
être "rouge".
3ème ligne "ACCEDE".
La 1ère lettre "C" le fond est "jaune" alors qu'il devrait être "rouge".
La 2ème lettre "C" le fond est "jaune" alors qu'il devrait être "gris".
Ci-joint:
http://www.cijoint.fr/cjlink.php?file=cj201004/cij56XN7vH.xls
Guy

"Michel__D" a écrit dans le message de
news: %
Michel__D a écrit :
Bonjour,

Guy85 a écrit :
Bonjour,
Oui le problème, c'est que cela se produit avec n'importe quelle lettre.
Si le mot est "ACERAT" et que je mets "ARBRES" c'est le 2ème "R" (il
faudrait qu'il soit gris) qui est en jaune parque y a un "R" en 4ème
lettre.
Comment éviter ça ?




Ben oui, la lettre A allait de pair avec ton exemple, mais bien
évidemment que quelque soit la lettre le
problème est le même.

Il n'y a pas 36 solutions, il faut revoir au minimum la formule du
formatage conditionnel et si ce n'est pas
possible de cette manière, le gérer via du code VBA.

PS: Si j'ai le temps je vais essayer de trouver une formule adéquate,
j'ai quelques idées ...



Essaye les formules suivantes au niveau du formatage conditionnel en J22:

1ère formule :
=J22=AZ$12

2ème formule :
=ET(NB.SI($AZ$12:$BJ$12;J22);NB.SI($J22:J22;J22)<=NB.SI($AZ$12:$BJ$12;J22))

2ème formule :
=J22=AZ$14

Ensuite tu recopie en dessous et enfin tu recopie la plage J22:J42 en L22,
N22, ..., T22
Avatar
Modeste
Bonsour® "Guy85"
Dommage ça ne fonctionne pas.
Il n'y a pas 36 solutions, il faut revoir au minimum la formule du
formatage conditionnel et si ce n'est pas
possible de cette manière, le gérer via du code VBA.







;o)))
'======== decompositions Lettres à Lettres pour comparaison
For Position = 1 To NbColonnes
Lettres(1, Position) = Mid(MotChoisi, Position, 1) ' lettres à rechercher
Lettres(2, Position) = Mid(MotProposé, Position, 1) ' lettres à trouver
Lettres(3, Position) = 0 ' flag de recherche
Next
'======== detection lettres correctement placées
Placés = 0
For Position = 1 To NbColonnes
If Lettres(1, Position) = Lettres(2, Position) Then
Placés = Placés + 1 ' incrémentation compteur de recherche exacte
Lettres(3, Position) = 1 ' affectation flag recherche exacte
Lettres(1, Position) = "" ' suppression de la Lettres recherchée
Lettres(2, Position) = "$" ' neutralisation de la Lettres trouvée
Lettres(4, Position) = Mid(MotChoisi, Position, 1) ' on met la Lettres
à afficher
End If
Next
'======== détection lettres mals placées
For Position = 1 To NbColonnes
For Rang = 1 To NbColonnes
If Lettres(3, Rang) = 0 Then ' la Lettres n'a pas eté placée
If Lettres(1, Position) = Lettres(2, Rang) Then
Lettres(3, Rang) = 2 ' affectation flag recherche exacte
Lettres(1, Position) = "" ' suppression de la Lettres
recherchée
Lettres(2, Rang) = "$" ' neutralisation de la Lettres trouvée
Exit For ' passage à la Lettres suivante
End If
End If
Next
Next
'======== compte rendu de la recherche
For Position = 1 To NbColonnes
With [origine].Offset(NbPropositions, Position)
.Value = Mid(MotProposé, Position, 1) ' affichage de la Lettres
'------------
Select Case Lettres(3, Position) ' selon valeur du flag
Case Is = 1 ' la Lettres est correctement placée
.Interior.Color = vbRed
If [Bruitages] Then sndPlaySound "Motus1.wav", SND_SYNC Or
SND_NODEFAULT
Case Is = 2 ' la Lettres est mal placée
.Interior.Color = vbYellow
.Font.ColorIndex = 15
If [Bruitages] Then sndPlaySound "Motus2.wav", SND_SYNC Or
SND_NODEFAULT
Case Is = 0 ' la Lettres n'existe pas dans le mot à
trouver
.Interior.Color = vbCyan
If [Bruitages] Then sndPlaySound "Motus3.wav", SND_SYNC Or
SND_NODEFAULT
End Select
'------------
End With
Next
Avatar
Guy85
Bonjour modeste,
Je comprends bien ce que tu veux dire.
J'ai bien vu cette extraction du code dans ton jeu.
Mais je ne vois pas ou le placer dans le mien sans modifier ma présentation
?

"Modeste" a écrit dans le message de news:

Bonsour® "Guy85"
Dommage ça ne fonctionne pas.
Il n'y a pas 36 solutions, il faut revoir au minimum la formule du
formatage conditionnel et si ce n'est pas
possible de cette manière, le gérer via du code VBA.







;o)))
'======== decompositions Lettres à Lettres pour comparaison
For Position = 1 To NbColonnes
Lettres(1, Position) = Mid(MotChoisi, Position, 1) ' lettres à
rechercher
Lettres(2, Position) = Mid(MotProposé, Position, 1) ' lettres à trouver
Lettres(3, Position) = 0 ' flag de recherche
Next
'======== detection lettres correctement placées
Placés = 0
For Position = 1 To NbColonnes
If Lettres(1, Position) = Lettres(2, Position) Then
Placés = Placés + 1 ' incrémentation compteur de recherche exacte
Lettres(3, Position) = 1 ' affectation flag recherche exacte
Lettres(1, Position) = "" ' suppression de la Lettres recherchée
Lettres(2, Position) = "$" ' neutralisation de la Lettres trouvée
Lettres(4, Position) = Mid(MotChoisi, Position, 1) ' on met la
Lettres à afficher
End If
Next
'======== détection lettres mals placées
For Position = 1 To NbColonnes
For Rang = 1 To NbColonnes
If Lettres(3, Rang) = 0 Then ' la Lettres n'a pas eté placée
If Lettres(1, Position) = Lettres(2, Rang) Then
Lettres(3, Rang) = 2 ' affectation flag recherche exacte
Lettres(1, Position) = "" ' suppression de la Lettres
recherchée
Lettres(2, Rang) = "$" ' neutralisation de la Lettres trouvée
Exit For ' passage à la Lettres suivante
End If
End If
Next
Next
'======== compte rendu de la recherche
For Position = 1 To NbColonnes
With [origine].Offset(NbPropositions, Position)
.Value = Mid(MotProposé, Position, 1) ' affichage de la Lettres
'------------
Select Case Lettres(3, Position) ' selon valeur du flag
Case Is = 1 ' la Lettres est correctement placée
.Interior.Color = vbRed
If [Bruitages] Then sndPlaySound "Motus1.wav", SND_SYNC Or
SND_NODEFAULT
Case Is = 2 ' la Lettres est mal placée
.Interior.Color = vbYellow
.Font.ColorIndex = 15
If [Bruitages] Then sndPlaySound "Motus2.wav", SND_SYNC Or
SND_NODEFAULT
Case Is = 0 ' la Lettres n'existe pas dans le mot à
trouver
.Interior.Color = vbCyan
If [Bruitages] Then sndPlaySound "Motus3.wav", SND_SYNC Or
SND_NODEFAULT
End Select
'------------
End With
Next
1 2