code vba "Damier"

kechor

XLDnaute Occasionnel
Bonsoir au forum,
Je viens de réaliser mon premier code, un "damier".:rolleyes:
Je voulais votre avis sur ce code, et d'autres exemple de codes pour ce "damier".
merci et bonne nuit.:eek:
 

Pièces jointes

  • Damier.xls
    19 KB · Affichages: 296
  • Damier.xls
    19 KB · Affichages: 273
  • Damier.xls
    19 KB · Affichages: 293

JBARBE

XLDnaute Barbatruc
Re : code vba "Damier"

Bonsoir à tous,

Un exemple de code
Code:
Sub essai()
Dim i As Integer
Dim j As Integer
Sheets(1).Activate
For i = 15 To 25 Step 2
For j = 2 To 10 Step 2
 Cells(i, j).Interior.ColorIndex = 3
 Cells(i + 1, j - 1).Interior.ColorIndex = 43
Next j
Next i
End Sub

bonne nuit
 

Staple1600

XLDnaute Barbatruc
Re : code vba "Damier"

MESSAGE EDITE ( Cause BUG de mon browser ou du forum?)
(J'ai eu un message d'erreur d'XLD, disant d’attendre 30 secondes avant de poster un message,
quand j'ai cliqué pour envoyer mon message (celui de 5h56)
J'ai attendu, étant toujours dans mon message (en cours de saisie, en mode prévisualisation)
J
'ai cliqué : Envoyer la réponse
Le résultat c''est que cela a envoyé deux fois le même message :confused:)


Merci aux modérateurs de bien vouloir supprimer le message de 5h58.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : code vba "Damier"

Bonjour à tous

Bonjour à tous.
Si il y a d'autres exemples je suis preneur.
Alors voici traduit en VBA (avec une petite touche personnelle quant à certains choix ;) ), la citation de mon premier message dans ce fil (voir plus bas: message de 5h56)
Code:
​Sub mDamier()
Dim Damier As Range: Set Damier = Range("A1:J10")
With Damier
    .ColumnWidth = 7.14: .RowHeight = 37.5
        With .FormatConditions
        .Delete: .Add Type:=2, Formula1:="=MOD(LIGNE()+COLONNE();2)"
        End With
    .FormatConditions(1).Interior.ColorIndex = 1: .BorderAround 1, 4, 23
End With
End Sub

NB: Macro ci-dessus: test OK ici.

EDITION: Bonsoir eriic, JBARBE, mapomme, R@chid
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : code vba "Damier"

Bonjour à tous,

Si il y a d'autres exemples je suis preneur.
Code:
Sub damier2()
    Dim c As Range
    For Each c In [A1:J10]
        If c.Row Mod 2 Xor c.Column Mod 2 Then
            c.Interior.ColorIndex = 4 - c.Row Mod 2
            ' ou
            ' c.Interior.ColorIndex = 1

        End If
    Next c
End Sub
eric

edit: ajout rem pour couleur noire au lieu de rouge/vert
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : code vba "Damier"

Bonjour à tous,

Deux essais mais basés sur le même principe:
VB:
Sub Damier1()
Dim xcell As Range
Application.ScreenUpdating = False
Range("A1:J10").Interior.ColorIndex = 0
Range("B1").Interior.ColorIndex = 3
Range("A2").Interior.ColorIndex = 4
For Each xcell In Range("A1:J10")
 xcell.Interior.ColorIndex = Cells((xcell.Row - 1) Mod 2 + 1, (xcell.Column - 1) Mod 2 + 1).Interior.ColorIndex
Next xcell
Application.ScreenUpdating = True
End Sub

Sub Damier2()
Dim i&, j&
Application.ScreenUpdating = False
Range("A1:J10").Interior.ColorIndex = 0
Range("B1").Interior.ColorIndex = 3
Range("A2").Interior.ColorIndex = 4
For i = 0 To 9
 For j = 0 To 9
  Cells(i + 1, j + 1).Interior.ColorIndex = Cells(i Mod 2 + 1, j Mod 2 + 1).Interior.ColorIndex
 Next j
Next i
Application.ScreenUpdating = True
End Sub

nb: En rajoutant, par exemple, l'initialisation des cellules A1 et B2 à bleu et jaune avant la boucle, on reproduit un motif à 4 couleurs.
VB:
Range("A1").Interior.ColorIndex = 5
Range("B2").Interior.ColorIndex = 6
 

Pièces jointes

  • Damier v1.xls
    32 KB · Affichages: 88
Dernière édition: