Une partie de flechettes avec moi ?

  • Initiateur de la discussion Initiateur de la discussion jmh1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jmh1

XLDnaute Occasionnel
Bonsoir à tous,

Etant joueur de fléchettes (501 double out pour les initiés) et en ayant marre d'écrire et de compter les résultats, je me décide à réaliser un fichier Excel pour le comptage des points de manière assez sympa.

J'ai récupéré à droite et à gauche des bouts de code mais pour l'instant, je suis bloqué sur la manière d'opérer.

Pour ceux qui ne connaisse pas ce jeu, la cible est divisé en 20 parties numérotées de 1 à 20 plus le centre rouge qui vaut 50 points et le centre vert qui vaut 25 points. Chaque partie numérotée est elle-même divisée en 4 parties, 2 qui valent le nombre indiqué, 1 qui vaut le double et enfin une dernière qui vaut le triple.

Dans mon fichier, j'ai créé un USF avec une image de la cible, lorsque je clique sur l'image, un point apparait au niveau du pointeur et les coordonnées de ce point sont enregistrés dans la feuille 1.

J'en arrive à ma problématique :
- Comment, avec ces coordonnées récupérer le nombre de points marqués dans la zone cliquée ?
- Y a-t-il une manière simple de le faire pour toutes les zones de la cible ?
- Est-il possible de changer le pointeur de la souris par une image de fléchette comme sur la feuille1 ?

Je joins mon fichier en exemple.

Merci de votre aide
 

Pièces jointes

Re : Une partie de flechettes avec moi ?

Bonsoir.

Vous allez probablement avoir besoin de ça :
VB:
Public Const Pi = 245850922 / 78256779 ' Sin(Pi) = 1,22460635382238E-16
'              Tandis que Sin(3.14159265358979) = 32,3108510433268 E-16
Et de ça :
VB:
Function Atn2(ByVal X As Double, ByVal Y As Double, Optional ByVal ParDéfaut As Double = 0) As Double
Dim A As Double
If X = 0 And Y = 0 Then
   Atn2 = ParDéfaut
Else
   If Y < 0 Then X = -X: Y = -Y: A = 1 Else A = 0
   If X < Y Then Y = Y - X: X = X + Y: Y = Y - X: A = A + 0.5
   If Y <= X Then Atn2 = A * Pi + Atn(Y / X) _
     Else Atn2 = (A + 0.5) * Pi - Atn(X / Y)
   End If
End Function
 
Re : Une partie de flechettes avec moi ?

Bonsoir Dranreb

Le retour de la formule me donne #REF!

Pour la sélection des données de la formule, il faut bien que je renseigne ma coordonnée X et ma Coordonnée Y ?

Dans la ligne : If Y <= X Then Atn2 = A * Pi + Atn(Y / X) Else Atn2 = (A + 0.5) * Pi - Atn(X / Y)

que signifie Atn ??

Merci
 
Re : Une partie de flechettes avec moi ?

Atn2(X, Y) vous renverra l'angle en radians du rayon contenant le point X,Y par rapport au centre 0,0.
Il ne restera qu'a multiplier par le nombre de secteurs et diviser par Pi pour avoir déjà l'information angulaire permettant de taper dans un tableau de points gagnés. Pour l'autre indice dans ce tableau vous calculez d'après le rayon Sqr(X * X + Y * Y)

Remarquez si vous préférez le calculer en formules, la fonction ATAN2 existe dans Excel.
 
Dernière édition:
Re : Une partie de flechettes avec moi ?

Re,

Visiblement VBA (et VB6) ne prennent en charge les fichier .cur (curseur) qu'en noir et blanc
Il faut leur donner un fichier .ico pour avoir de la couleur, mais dans ce cas on ne peut pas définir la pointe de la fléchette en active...
une version noir et blanc plus lisible
 

Pièces jointes

Re : Une partie de flechettes avec moi ?

Sauf erreur de ma part le score du secteur devrait se calculer comme ça :
VB:
S = Choose(Int(Atn2(X, Y) * 10 / Pi + 0.5) Mod 20 + 1, _
   6, 13, 4, 18, 1, 20, 5, 12, 9, 14, 11, 8, 16, 7, 19, 3, 17, 2, 15, 10)
Avec X et Y les coordonnées du point atteint par rapport à celles du centre de la cible.
Il ne restera plus qu'à fixer le score de la fléchette à l'aide d'affectations dans un Select Case Sqr(X * X + Y * Y) suivi de plusieurs Case Is < r: pour chaque valeur de r marquant une limite, le 1er r étant le rayon du disque central, le suivant de la couronne qui l'entoure, ensuite les autres zones où il suffira d'y affecter S multiplié par le facteur, doublement ou triplement.
 
Dernière édition:
Re : Une partie de flechettes avec moi ?

Bonsour® à tous
🙄
petit exercice pour le fun ...
Capture.jpg

nb :
les formules sont cachées derrière le bouton...
Vba ne sert que pour l'interactivité et archivage
🙁
je ne suis pas arrivé à appliquer le fond transparent aux images des fléchettes... 🙁
 

Pièces jointes

Re : Une partie de flechettes avec moi ?

Même avec BackStyle 0 - fmBackStyleTransparent ?
Remarque: en copiant l'image que j'avais joint et en la collant dans Microsoft Photo Editor, je m'aperçois que le fond transparent à disparu…
Je le re-joins zippé à tout hasard.
 

Pièces jointes

Dernière édition:
Re : Une partie de flechettes avec moi ?

Bonsour® Bernard

ça pourrait aller sauf que ...😡

X?!#¥... dés que je manipule ce GIF pour lui faire un flip vertical ... 🙁
la transparence disparait !

pourrais-tu le remettre en zip mais flip vertical déjà réalisé 😱
merci
😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour