Carré 10 x 10 dans excel

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

5 réponses

  1. 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
    1. 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+
      1. Bonsoir,

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

        1. Explication :
          Dans chaque cellule de la plage A1 à J10, écrire un *
        2. Contributeur
          Salut patrice,

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

          ;-)

          eric
      2. 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.
        1. 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
          
          1. Contributeur
            Pas bonjour non plus,

            Heureusement que tu as une autre question, sinon on attendrait encore ton merci..
            eric
          2. 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..