XL 2013 Ne peut-on donc pas forcer les couleurs d'un tableau?

  • Initiateur de la discussion Initiateur de la discussion jeanba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanba

XLDnaute Occasionnel
Bonjour,

Mon code ci-après ne semble fonctionner que s'il s'applique à une plage nommée.
Dès que je veux l'appliquer à un tableau de données, les couleurs restent celles des lignes définies par les modèles Excel!! Ne peut-on donc pas forcer un tableau à avoir des couleurs de lignes qu'on veut définir et par pas de ligne que l'on souhaite, plutôt qu'une couleur différente APRES CHAQUE LIGNE?

Voici mon code (voir aussi fichier exemple joint)

Merci par avance pour votre aide!

(PS: plus de vos news Pierre Jean et Dranreb, j'espère que tout va bien...!)

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'  Dim sht$
'  sht$ = ActiveSheet.Name
  Application.ScreenUpdating = False
  couleur = 2
'     If ActiveSheet.Name <> "ACCUEIL" Then
        If Not Intersect(Target, Range(Cells(2, 2), Cells(8, 7))) Is Nothing Then
            For I = 2 To [A65000].End(xlUp).Row
                If Cells(I, 2) <> Cells(I - 1, 2) Then couleur = IIf(couleur = 2, 15, 2)
                Cells(I, 2).Resize(, 7).Interior.ColorIndex = couleur
                Cells(2, 2).Select
            Next I
        End If
'    End If

End Sub
 

Pièces jointes

Re
essais ceux ci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.ScreenUpdating = False
couleur = 2
With ActiveSheet
           derlgn = .Cells(.Rows.Count, 2).End(xlUp).Row
        If Not Intersect(Target, .Range(.Cells(2, 2), .Cells(derlgn, 7))) Is Nothing Then
            For I = 2 To derlgn
                If .Cells(I, 2) <> .Cells(I - 1, 2) Then couleur = IIf(couleur = 2, 15, 2)
                   .Cells(I, 2).Resize(, 7).Interior.ColorIndex = couleur
            Next I
        End If
End With
End Sub
il faudrait peut être trier le Tableau avant ?
jean marie
 
derlgn = .Cells(.Rows.Count, 2).End(xlUp).Row

Bonsoir Jean Marie,

Ton code marche super bien dans mon fichier exemple, merci.
Cependant, ton paramètre que j'ai reproduit ci-dessus pose problème dans le fichier réel, car mon tableau du fichier réel est un Range (Cells(9, 2), Cells(232, 16)). Et à chaque changement dans une des cellules de la plage "H9:I232", la macro doit s'exécuter..
Et donc, en essayant d'adapter ton code, je suis pas très à l'aise encore avec "End(xlUp ou Down)...
 
VB:
Application.ScreenUpdating = False
couleur = 2
With ActiveSheet
     '      derlgn = .Cells(.Rows.Count, 2).End(xlUp).Row
'       If Not Intersect(Target, .Range(.Cells(9, 2), .Cells(232, 16))) Is Nothing Then
            For I = 9 To 232
                If .Cells(I, 2) <> .Cells(I - 1, 2) Then couleur = IIf(couleur = 2, 15, 2)
                   .Cells(I, 2).Resize(, 16).Interior.ColorIndex = couleur
            Next I
  '      End If
End With

Ce code adapté génère le message d'erreur:
upload_2018-11-1_18-53-42.png
 
Salut

Chti, c'est la boucle qui pose problème (avec ce que j'ai compris)

jeanba, le tableau présent Tb étant déjà avec des lignes à bandes, ne pas confondre les 2 gris.
[Code vb]
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  If Intersect(R, [Tb[C2]]) Is Nothing Or R.Rows.CountLarge > 1 Then Exit Sub 'hors colonne 2 du tableau titrée C2
  If R <> R(0, 1) Then R(1, 0).Resize(, 16).Interior.ColorIndex = IIf(R.Interior.ColorIndex = 15, xlNone, 15)
  [B2].Select
End Sub

Voir l'autre discussion ci- après pour comprendre l'utilisation des tableaux (que tu définis à chaque fois)
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
241
Réponses
4
Affichages
179
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Réponses
4
Affichages
549
Retour