Carré 10 x 10 dans excel

Fermé
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 - 7 août 2013 à 13:48
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 - 14 août 2013 à 11:50
Bonjour, dans le cadre de mon cours d'informatique je dois faire un exercice où je dois faire apparaître des * dans un carré de 10 *10 sur une feuille excel.

Je dois utiliser des fonctions assez strictes et j'ai essayé en faisant ce code :
Sub Carre()
    For ligne = 1 To 10
        For colonne = 1 To 10
            Chr (colonne + 64)
        Next colonne
    Next ligne
End Sub



Je vais être honnête et vous dire que mon but n'est pas du tout d'en apprendre plus que pour mon examen, je ne suis pas dans cette branche, c'est juste que j'ai un cours obligatoire en informatique et je dois passer un examen dans 10 jours..
Quelqu'un pourrait-il m'aider à comprendre cet exercice svp?? Merci beaucoup
A voir également:

5 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
Modifié par f894009 le 7/08/2013 à 13:57
Bonjour,
Sub Carre()
    'ligne 1 a 10
    For ligne = 1 To 10
        'colonne de A a J
        For colonne = 1 To 10
            'cellules de A1 a J10
            Cells(ligne, colonne) = "*"
        Next colonne
    Next ligne
End Sub


Bonne chance
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
7 août 2013 à 13:59
Hello,
Pour réaliser l'exercice, cette macro fonctionne :
Sub Carre()
    For ligne = 1 To 10
        For colonne = 1 To 10
           Cells(ligne, colonne) = "*"
        Next colonne
    Next ligne
End Sub 

Explication :
Nous avons 2 For...Next imbriqués, ce qui signifie que la variable "ligne" se verra affecter la valeur 1, puis la variable "colonne" aura la valeur 1. A la seconde itération, "ligne"gardera 1, mais "colonne" passera à 2, puis à 3, etc. jusqu'à 10.
Lorsque "colonne" sera à 10, "ligne" passera à 2 et "colonne" à 1, puis "colonne" à 2, 3... jusqu'à 10.

Ce qui permet au couple (ligne, colonne) d'avoir cette liste de valeurs :
(1,1)
(1,2)
...
(1,10)
(2,1)
(2,2)
...
(2,10)
(3,1)
(3,2)
etc.

Ensuit, on utilise Cells(ligne, colonne), pour désigner la cellule à la ligne 1 colonne 1 (donc colonne A), puis colonne 2, etc.
A cette cellule, on lui affecte la valeur "*" :
Cells(ligne, colonne) = "*"

On a donc une matrice de 10x10 contenant la valeur "*".

Est-ce que tu as tout compris ? Je reste dispo au cas où :-)

A+
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
8 août 2013 à 00:13
Bonsoir,

Plus simple :
Sub Carre()
For Each c In Range("A1:J10")
  c.Value = "*"
Next c
End Sub

0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
8 août 2013 à 00:16
Explication :
Dans chaque cellule de la plage A1 à J10, écrire un *
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 242
10 août 2013 à 15:36
Salut patrice,

Ben tant qu'à faire, autant prolonger sur ton idée :
[A1:J10] = "*"

;-)

eric
0
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 145
Modifié par Glady994 le 14/08/2013 à 10:49
Voilà merci pour toutes vos réponses,
Effectivement je dois utiliser le next for imbriqué car maintenant je dois créer un "triangle d'étoile" c'est à dire 1 étoile à la première ligne, 2 à la deuxième ...
Je vais essayer de le faire, je vous tiens au courant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 145
Modifié par Glady994 le 14/08/2013 à 10:48
J'ai réussi à faire l'inverse, c'est-à-dire 9 étoile à la première ligne,8 à la seconde, etc... Jusque 1 seule à la neuvième ligne.
Avec ce code :
Sub triangle()
    For ligne = 1 To 10
        For colonne = 1 To 10 - ligne
           Cells(ligne, colonne) = "*"
        Next colonne
    Next ligne
End Sub
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 242
14 août 2013 à 11:49
Pas bonjour non plus,

Heureusement que tu as une autre question, sinon on attendrait encore ton merci..
eric
0
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 145
14 août 2013 à 11:50
Non pas du tout... Je n'ai pas que cet examen à passer, donc je réparti les jours. Excusez moi de ne pas avoir dit merci plutôt ce n'est pas mon genre..
0