Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Excel VBA

Konte94

XLDnaute Junior
Salut tout le monde, svp qui peut m'aider à écrire un programme vba qui me permettra d'obtenir un carré magique d'ordre impair avec l'algorithmique de Bachet:

Indication : le nombre 1 doit se placer tout juste en dessous de la cellule centrale.
A chaque fois on descend d'une cellule puis on décale d'une à droite et on met le chiffre consécutif, si on trouve un chiffre là-bas on remonte et on descend de deux cellules et on met le chiffre consécutif ainsi de suite

Exemple
4 9 2
3 5 7
8 1 6

La Somme des lignes, des colonnes et des diagonales est égale.
 

Dranreb

XLDnaute Barbatruc
VB:
If Coté Mod 2 = 0 Or Coté < 3 Then
      MsgBox "Le carré magique doit être impaire et supérieur à 2", _
         vbCritical, "ProduireCarréMagique"
      Exit Sub: End If
Vous n'auriez vraiment toujours pas su le faire vous même ?
Il y avait pourtant déjà des MsgBox dans les versions précédentes !
 

Konte94

XLDnaute Junior
Sisi vous avez raison mais comment créer le programme effacer, j'ai utilisé cette méthode mais elle ne me convient pas.
 

Pièces jointes

  • 1582339289045.jpg
    33.9 KB · Affichages: 17

Dranreb

XLDnaute Barbatruc
Il est déclaré As Range au début de la procédure.
C'est donc une variable destinée à représenter une plage de cellules.
Une telle variable, lorsqu'elle est convenablement initialisée, peut servir d'expression Range au même titre qu'une expression ActiveSheet.Range("A1:Z100") par exemple, qui renvoie aussi un objet Range. Il faut s'habituer à ce qu'une expression puisse renvoyer un objet.
Tout le monde s'y habitue, apparemment (sarcasme) puisque personne ne me demande jamais (imaginez un dessin à la Texs Avery) comment, suite à un coup de pied malicieux de son occupant, un trou de souris puisse renvoyer … une enclume.
 

Discussions similaires

Réponses
9
Affichages
421
Réponses
4
Affichages
443
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…