XL 2019 Table de multiplication VBA

clemendo51

XLDnaute Nouveau
Bonjour je dois réaliser une table de multiplication en respectant plusieurs critère mais sa me dépasse complètement si vous avez des solutions je suis preneur

  • Réaliser le tableau de multiplication de 10×10 en utilisant des boucles (à vous de choisir combien de boucles) « for … next ».
  • Ajustez la dimension des cellules 11× 11carrées.
  • La couleur des chiffres de la première ligne et la première colonne est rouge.
  • La police de tous les chiffres est « Gras ».

1585819669356.png

Voici à quoi cela devra ressemblé
Merci de votre aide
 

clemendo51

XLDnaute Nouveau
Bonjour le fil, clemendo51

•>clemendo51
Quelqu'un a déjà posté la question
Il faut lire attentivement les réponses qu'on te fait...
Relis mes messages, et tu trouveras le lien.
(au hasard, je dirais le message#10)
:rolleyes:
Salut Staple J'ai encore besoin de toi stp
1. Faites un damier d’échec en utilisant les cellules 8 8.
2. Dans les cellules diagonales blanches, mettez les chiffres 1, 2, 3, 4, 5, 6,7, 8 dans l’ordre en utilisant une boucle. Les chiffres sont en noir.
3. Dans les cellules diagonales noires, mettez les chiffres 1, 2, 3, 4, 5, 6,7, 8 dans l’ordre en utilisant une boucle. Les chiffres sont en rouge.

J'ai bien mes diagonales de chaque cotés ainsi que les chiffres et mes couleurs mais il me manque le texte en rouge sauf qu'il me mets une erreur d’exécution 438 propriété ou méthodes non générer par le projet et me souligne en jaune ce code Cells(i, j).front.Color = RGB(255, 0, 0) peux tu m'aider stp

Voici le code :
Sub Exercice_échec()
Const NB_CASES As Integer = 8 'Damier de 10x10 cellules
Dim lig As Integer, col As Integer ' => ajout de 2 variables

'Décalage (lignes) à partir de la première cellule = n° de ligne de la cellule active - 1
lig = ActiveCell.Row - 1
'Décalage (colonnes) à partir de la première cellule = n° de colonne de la cellule active - 1
col = ActiveCell.Column - 1

For l = 1 To NB_CASES 'N° ligne

For c = 1 To NB_CASES 'N° colonne

If (l + c) Mod 2 = 0 Then
'Cells(n° de ligne + décalage lignes, n° de colonne + décalage colonnes)...
Cells(l + lig, c + col).Interior.Color = RGB(255, 255, 255) 'Blanc
Else
Cells(l + lig, c + col).Interior.Color = RGB(0, 0, 0) 'Noir

End If

Next
Next


Dim i, j As Integer
For i = 1 To 8
For j = 1 To 8
If (i = j) Then
Cells(i, j) = i
End If
If i = NB_CASES - (j - 1) Then
Cells(i, j) = j

Cells(i, j).front.Color = RGB(255, 0, 0)

End If
Next
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Une version simplifiée pour construire l'échiquier
VB:
Sub Echiquier()
Dim Ligne&, Colonne&
For Ligne = 1 To 8
For Colonne = 1 To 8
Cells(Ligne, Colonne).Interior.ColorIndex = (Ligne + Colonne) Mod 2 + 1
Next Colonne
Next Ligne
End Sub
PS: Cells(i, j).front.Color = RGB(255, 0, 0)
front.color n'existe pas
C'est: Font.Color
 

clemendo51

XLDnaute Nouveau
Bonsoir

Une version simplifiée pour construire l'échiquier
VB:
Sub Echiquier()
Dim Ligne&, Colonne&
For Ligne = 1 To 8
For Colonne = 1 To 8
Cells(Ligne, Colonne).Interior.ColorIndex = (Ligne + Colonne) Mod 2 + 1
Next Colonne
Next Ligne
End Sub
PS: Cells(i, j).front.Color = RGB(255, 0, 0)
front.color n'existe pas
C'est: Font.Color
L’imbécile que je suis ^^
Merci beaucoup
Bonne soirée à toi
 

Staple1600

XLDnaute Barbatruc
Re

Pour le fun aussi (et pour oublier SkyNet ;))
VB:
Sub Envers()
Echiquier False
End Sub
Sub Endroit()
Echiquier
End Sub
Private Sub Echiquier(Optional NotUpSideDown As Boolean = True)
Dim Ligne&, Colonne&
For Ligne = 1 To 8
For Colonne = 1 To 8
Cells(Ligne, Colonne).Interior.ColorIndex = (Ligne + Colonne + (NotUpSideDown * -1)) Mod 2 + 1
Next Colonne
Next Ligne
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, tous, Patrice33740

•>Patrice33740
Nuance, je ne joue plus aux échecs contre des machines. ;)
Sinon, c'est un exercice VBA que clemendo51 doit faire.
(cf erreur corrigée: Font.Color au lieu de Front.Color)
(PS: Il pourrait simplifier son code en une seule boucle ;))
Attendons le suivant ;)

VB:
Sub Echiquier()
Dim L&, C&
For L = 1 To 8
For C = 1 To 8
Cells(L, C).Interior.ColorIndex = ((C Mod 2) = (L Mod 2)) + 1
Next C
Next L
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Patrice33740 :),
@mapomme et @Modeste geedee je suppose que vu les performances d'AlphaZero, vous faites comme Staple, vous ne jouez plus aux échecs : vos échiquiers sont à l'envers
Comme en dessin industriel, ça dépend de quel point de vue, on se place.
On a 2 chances sur 4 de se placer sur un côté d'où on voit la case supérieure gauche noire et 2 cas sur 4 d'où on voit la case supérieure gauche blanche.

Un échiquier n'a physiquement ni endroit ni envers. C'est uniquement les règles du jeu d'échec qui attribue un sens, non ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Sans boucles, sans MFC, et avec choix des couleurs. ;)
VB:
Const C As String = "A:A,C:C,E:E,G:G"
Const L As String = "1:1,3:3,5:5,7:7"
Global p As Range
Sub EchiquierColoré(Optional W As Long = 16777215)
[A1:H8].ColumnWidth = 4: [A1:H8].RowHeight = [A1].Width: [A1:H8].Interior.Color = vbBlack
Set p = Intersect(Range(C).EntireColumn, Range(L).EntireRow): p.Interior.Color = W: p.Offset(1, 1).Interior.Color = W
End Sub
Sub eRouge()
EchiquierColoré vbRed
End Sub
Sub eVert()
EchiquierColoré vbGreen
End Sub
•>mapomme
Pas vu mon invitation ? ;)
Bon je la mets pour tous alors.
Si jamais, le confinement vous pousse à colorier des "cases" dans Excel, rejoigniez-moi ici (if you want) ;)
(Et si un matheux pouvait répondre à question (cf message#9, merci))
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16