Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Coloriage de lignes avec conditions

  • Initiateur de la discussion Initiateur de la discussion damand
  • 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 !

D

damand

Guest
Bonjour à tous,

J'ai un petit problème pour créer un code VBA, je vous explique donc ce que j'aimerai faire en espérant être clair.

Je voudrai que la macro colorie un ensemble de ligne sur deux.
Je pense qu'un exemple sera plus clair.
Je vous mets donc en pièce jointe ce que j'aimerai faire en vba.

Merci d'avance


Regarde la pièce jointe essai.xls
 

Pièces jointes

Re : Coloriage de lignes avec conditions

Bonjour Robert,

Ton code colorie une ligne sur 2, ce n'est pas tout à fait ce que j'aimerai faire.
J'aimerai colorier un ensemble de ligne sur 2, sachant que la macro doit deteminer les ensembles en fonction de la valeur d'une cellule.
Regarde mon fichier en pièce jointe ce sera plus clair car c'est compliqué à expliquer avec du texte.

Merci d'avance à tous
 
Re : Coloriage de lignes avec conditions

Je me permets de (re)demander si qunlqu'un a une solution ou une esquisse de solution à mon problème...
Merci d'avance à tous
 
Re : Coloriage de lignes avec conditions

Bonsoir Damand, bonsoir le forum,

J'ai galérer sur ton plan mais je pense avoir une solution satisfaisante avec la macro ci-dessous :

Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim lv() As Integer 'déclare le tableau de variables lv (Ligne des Valeurs)
 
ReDim lv(0) 'redimensionne le tableau de variables lv
lv(0) = 4 'définit la première valeur indexée
 
'********************************************************************
'tableau contenant le numéro des lignes à chaque changement de valeur
'********************************************************************
 
For Each cel In Range("B5:B" & Range("B65536").End(xlUp).Row) 'boucle sur toutes les cellules éditées de la colonne B (en partant de B5)
    If cel.Value <> cel.Offset(-1, 0) Then 'condition : si la valeur de la cellule est différente de la valeur de la cellule au dessus
        ReDim Preserve lv(UBound(lv) + 1) 'redimensionne le tableau de variables lv
        lv(UBound(lv)) = cel.Row 'définit la nouvelle valeur indexée
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
 
ReDim Preserve lv(UBound(lv) + 1) 'redimensionne le tableau de variables lv
lv(UBound(lv)) = Range("B65536").End(xlUp).Row + 1 'définit la dernière ligne du tableau
 
'*********************
'coloration des lignes
'*********************
 
For x = 0 To UBound(lv) Step 2 'boucle sur toutes le valeurs du tableau de variables par pas de deux
    On Error Resume Next 'permet d'ignorer le bug si le nombre de changement est impair
    Rows(lv(x) & ":" & lv(x + 1) - 1).Interior.ColorIndex = 6 'colore les lignes
Next x 'prochaine valeur du tableau de variable (en en sautant une)
End Sub
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
185
Réponses
12
Affichages
412
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…