Condition et écart d'une ligne colorée

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

G

gogote

Guest
Bonjour tout le monde,


je bloque sur un procédé que j'aimerai développer dans le cadre d'une étude personnelle.

Je souhaiterai avoir l'information suivante sur un tableau :
Lorsqu'une ligne est colorée en vert, combien de fois faut-il attendre avant qu'elle ne le soit à nouveau.

Exemple : j'ai une ligne verte. La ligne suivante est à nouveau verte : --> 0
la ligne est verte, les deux suivantes sont blanches puis la troisième est à nouveau verte --> 2

Et ainsi de suite, cf le fichier.
Si vous pouviez me débloquer de cette galère, alléluia !!!

Merci à vous.
 
Dernière modification par un modérateur:
Re : Condition et écart d'une ligne colorée

Bonjour,

un essai macro; l'indication est portée en colonne S

Code:
Sub ProchaineLigneVerte()
 Dim Derl As Long, i As Long, j As Long
 Derl = Feuil1.Range("A" & Feuil1.Rows.Count).End(xlUp).Row
 For i = 1 To Derl
    If Cells(i, 1).Interior.ColorIndex = 50 Then
        For j = i + 1 To Derl
            k = k + 1
            If Cells(j, 1).Interior.ColorIndex = 50 Then
                Cells(i, 19) = k - 1
                i = j - 1
                Exit For
            End If
        Next
        k = 0
    End If
 Next
End Sub

A+
 
Re : Condition et écart d'une ligne colorée

Salut paf et merci beaucoup pour ta réponse !

Tu as bien cerné l'idée et la macro m'a l'air correcte dans cette logique !

Cependant, j'aimerai que celle-ci soit inversée, à savoir que la première ligne verte affiche 4, la seconde 2, la troisième 4 et ainsi de suite 😉
 
Re : Condition et écart d'une ligne colorée

Bonjour
une autre proposition ; renvoie -1 s'il n'y a pas de prochaine ligne verte
VB:
Option Explicit

Function prochaine_ligne_verte() As Integer
  Dim r As Range
  prochaine_ligne_verte = 0
  Dim nextRow As Range
  
  For Each r In Range("A" & Application.Caller.Row + 1 & ":A" & Cells(Rows.Count, "A").End(xlUp).Row)
    If r.Interior.Color = 7457838 Then
      Set nextRow = r
      Exit For
    End If
  Next r
  
  If nextRow Is Nothing Then
    prochaine_ligne_verte = -1
  Else
    prochaine_ligne_verte = nextRow.Row - Application.Caller.Row - 1
  End If
End Function
 
Re : Condition et écart d'une ligne colorée

re et bonjour Iznogood1

en fait cela revient à indiquer en ligne verte le nombre de lignes blanches précédentes, et non plus sic:"Lorsqu'une ligne est colorée en vert, combien de fois faut-il attendre avant qu'elle ne le soit à nouveau."

Code:
Sub ProchaineLigneVerte()
 Dim Derl As Long, i As Long, j As Long
 Derl = Feuil1.Range("A" & Feuil1.Rows.Count).End(xlUp).Row
 For i = 2 To Derl
    k = k + 1
    If Cells(i, 1).Interior.ColorIndex = 50 Then
        Cells(i, 19) = k - 1
        k = 0
    End If
 Next
End Sub

A+
 
- 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.
Retour