Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Bonjour @patricktoulon,
Je pensais que c'était compréhensible mais j'avais besoin de pouvoir identifier sur quelle(s) zone(s) une cellule donnée est situé avec un algo performant. La façon la plus simple de faire cela étant une boucle sur chaque zone et en vérifiant l'Intersection entre la...
💾 : DetectArea.xlsm
Bonjour à tous,
Je vais commencer par donner la solution la plus évidente puis une version optimisée avec quelques contraintes. Ensuite, j'espère avoir d'autres idées originales de votre part.
On initialise d'abord les zones sur lesquelles on travaille en nommant un Range ...
Re : petit correctif après livraison
Après avoir un peu jouer avec le modèle j'ai vu que la touche Return ou Entrée pouvait déclencher l'action d'un bouton de la même façon que le click souris, j'ai donc modifié la fonction IsKeyboardMove() dans le module Tools :
'Check if a movement key is...
💾 : GameBoardTemplate.xlsm
Re : bilan du challenge ci-dessus
Voir les résultats obtenus : Modèles du Jeu de Plateau pour chaque solution proposée
De mon côté, j'ai pu faire le bilan et j'ai créer un modèle basique pour jeu de plateau avec une gestion à la souris que je met à disposition ici...
Bonjour @patricktoulon et re @job75 !
J'ai repris vos solutions sur des classeurs séparés pour les appliquer à mon modèle de base.
Sur la solution de Patrick : cela fonctionne très bien à part le cas ou le pointeur de la souris est situé au dessus de la cellule vers laquelle on se déplace au...
Encore un truc que je ne savais pas, on peut stocker une valeur dans Name sans qu'un Range lui soit associé !
Cela permet de garder la donnée en mémoire au moins tout le temps de la Session ...
Merci @job75 cela me permet de mesurer l'étendue de mon ignorance ;)
Par contre je trouve ce code un peu lourd 🚛 :
Me.Names.Add "Touche", True
Une variable dans le module suffit je pense.
J'ai testé en ouvrant mon application Sélecteur de couleur dans la même session et même avec la version avec SendKeys les touches Haut, Bas, Gauche, Droite ne fonctionne plus...
Bonjour @job75 !
Je n'ai pas compris cette ligne :
Application.OnTime 1, Me.CodeName & ".Workbook_Open" 'lancement différé
Cela permet de faire quoi ?
Le 1 c'est pour que cela se déclenche toute de suite je suppose mais pourquoi lancer Workbook_Open ?
Oui c'est juste du coup je peux empiler ma solution avec sa solution pour que cela soit parfait 😄
D'ici à demain, attendons que nos cerveaux trouve la solution 🧠🧠🧠
Merci Patrick pour le code et pour l'effort, il y a juste le cas où le pointeur se trouve au dessus de la cellule mais ce n'est qu'un détail ;)
De mon côté voici le code que j'ai produit et testé :
Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Function...
Bonsoir Patricktoulon et bonsoir Job75 !
Merci pour vos lumières, c'est brillant !! Je n'ai pas pensé à tout ça, ma préférence va à la solution de Patrick mais c'est intéressant d'avoir une solution sans faire appel à une fonction système.
Il reste encore une possibilité d'améliorer le code en empêchant que le déplacement au clavier ne déclenche un évènement MouseClic. Je sais que c'est sans doute compliqué à coder c'est pour cela que j'ai fait appel à tous par la question ci-dessous :
XLS : comment savoir si un évènement...
Bonjour vous tous !
Je souhaite pouvoir distinguer si un évènement Worksheet_SelectionChange est déclenché plutôt par les touches fléchées que par un Click de souris pour amener un élément supplémentaire à mon petit Tuto pour développer un jeu : XLS : Evènements souris 'click' sur la grille &...