Carré 10 x 10 dans excel

Glady994 Messages postés 530 Statut Membre -  
Glady994 Messages postés 530 Statut Membre -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. Morgothal Messages postés 1350 Statut Membre 184
     
    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
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonsoir,

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

    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Explication :
      Dans chaque cellule de la plage A1 à J10, écrire un *
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Salut patrice,

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

      ;-)

      eric
      0
  4. Glady994 Messages postés 530 Statut Membre 145
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Glady994 Messages postés 530 Statut Membre 145
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Pas bonjour non plus,

      Heureusement que tu as une autre question, sinon on attendrait encore ton merci..
      eric
      0
    2. Glady994 Messages postés 530 Statut Membre 145
       
      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