La Tour sur la feuille de calcul

vendredi 15 juillet 2011
par  Matt
popularité : 4%

Placer une pièce d’Echecs sur une case : Value d’une cellule, Mid().


Dans le code de l’affichage de l’échiquier, il reste à commenter la dernière instruction de la boucle For Next la plus imbriquée qui parcourt les colonnes pour la rangée courante. La cellule courante, représentant la case, ayant été sélectionnée, on va pouvoir mettre une pièce dessus.

Changer le contenu de la cellule avec une pièce d’Echecs

Contenu de la cellule R9C14 : cellSqr.Value = ''t'' ' tour

Pour changer le contenu d’une cellule, l’objet cellSqr expose la propriété Value.

           cellSqr.Value = Mid(strBoard, indRank * countRank + indFile + 1, 1)

La fonction d’extraction de chaîne Mid() a été expérimentée dans BoardDisplay() qui affichait l’échiquier par rangée alors qu’ici on l’affiche case par case. strBoard est passé par valeur ([bleu marine]ByVal[/bleu marine]). C’est l’échiquier complet représenté dans une seule chaîne.

L’expression numérique

indRank * countRank + indFile + 1

est directement issue de la Résolution du problème en terme d’équation :

indexSquare = rank * 8 + file

sauf qu’on doit ajouter "+ 1" parce que l’indice du premier caractère d’une chaîne est 1 et non 0.

Value et coordonnées

Noms des colonnes et numérotation des rangées

Lors du calcul dynamique des coordonnées sur le bord de l’échiquier, on aurait pu également utiliser la propriété Value pour affecter le contenu des cellules sur le bord de l’échiquier.

       If isSideWhite Then
           Cells(indRow + 1, indRank + indCol) = Chr(ascFileA + indRank)
           Cells(indRow - indRank, indCol - 1) = indRank + 1

est équivalent à :

       If isSideWhite Then
           Cells(indRow + 1, indRank + indCol).Value = Chr(ascFileA + indRank)
           Cells(indRow - indRank, indCol - 1) .Value = indRank + 1

C’est une facilité d’Excel de rendre optionnelle la principale propriété Value de l’objet Cells(row, col). On a préféré reporter la discussion sur la propriété Value d’un objet de type Range dans cet article afin de simplifier la présentation du tableau des cellules de la feuille de calcul d’Excel.

Explorer les méthodes et propriétés d’un objet

Pour aller plus loin, cliquez sur le VBE menu "Explorateur d’objets" (F2) [1].

Dans la liste des bibliothèques, sélectionner "Excel" au lieu de "" (<[bleu marine]All Libraries[/bleu marine]>).

Saisir "Range" dans la zone de recherche juste dessous. C’est la classe de cellSqr.

Quand il s’agit d’objet, c’est plus classe de parler de [bleu marine]Class[/bleu marine] que de type.

Scroller verticalement jusqu’à la classe Range de la bibliothèque Excel :

Cliquez sur la classe Range.

Scroller jusqu’à retrouver la méthode Select.

Le navigateur d'objets sur Range dans le VBE

Continuer de scroller jusqu’à la propriété Value.

On peut lire le type de la propriété.

Property Value As Variant

Le type Variant de la propriété Value est un type générique capable d’accepter tous les types.

  • Ses + : on peut écrire un code générique qui s’adapte à n’importe quel type de variable.
  • Ses - : pas de contrôle de type puisqu’il est générique. Moins performant qu’un type spécifique plus spécialisé.

Cela explique pourquoi, sans conversion, on peut mettre dans une cellule le nom d’une colonne soit une String entre ’’a’’ et ’’h’’ mais également le numéro de rangée soit un Byte entre 1 et 8 et aussi l’initiale (String) d’une pièce de jeu d’Echecs qui est rendue sous sa forme graphique grâce à la police Chess Merida Arena.


Précédent : Couleur d’une case en VBA

Suivant : Partir sur une nouvelle base en VBA


[1bleu marine]Object Browser[/bleu marine


Brèves

Championnat jeunes 2018

dimanche 25 février 2018

A St Sernin sur Rance, Vadim Breton se qualifie pour le championnat de France jeunes. Il termine à la 4ème place des benjamins. http://echecs-occitanie.com/spip.php?article382&mode=AF

Les Jeunes qualifiés en NIII !

mercredi 14 décembre 2016

Dimanche 11 décembre 2016, aux interclubs jeunes à Leguevin, notre équipe a gagné un match et fait match nul aux deux autres.

L’équipe composée de Xavier, Vadim, Aurélie et Titouan termine 8ème et se qualifie pour la N3. A noter que Xavier et Vadim ont gagné toutes leurs parties.

Sur le Web : Site de la LMPE

Championnat jeunes

lundi 5 décembre 2016

Xavier, Vadim et Martin trois champions du Tarn et Garonne
Lire l’article

Coupe Loubatière

lundi 5 décembre 2016

Le club qualifié pour la phase régionale de la coupe Loubatière
Lire l’article

Sur le Web : Coupe Loubatière

Tournoi interne 2016-2017

lundi 5 décembre 2016

C’est reparti pour le tournoi interne : 1 partie par mois de novembre à mai
Lire l’article

Live Playchess.com

mercredi 7 septembre 2016