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

Microsoft 365 METTRE UNE FORME A DES CELLULES EN FONCTION DU NOMBRE DE REPETITIONS

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

MGN

XLDnaute Nouveau
Bonjour,
Je souhaite savoir comment faire pour identifier et mettre une forme a des cellules qui se suivent un certain nombre de fois (ex 4) et qui ont la même valeur.
Exp :
la france est présente 4 fois mais pas à suivre, mais l'espagne est présente 5 fois, dont 4 à suivre. Je souhaite mettre de fond rouge les 4 cases espagne qui se suivent.

Avez vous une solution ?

ABCDEFGHIJ
francefrancefranceespagneespagneespagneespagnefranceallemagneespagne
 
Bonjour @MGN, bienvenue sur XLD 🙂,

Comme aucun fichier n'a été fourni, j'ai pondu un code qui n'est ni optimisé, ni sans doute adapté à votre cas réel.

  • on calcule le nombre d'élément de la séquence la plus longue
  • puis on colore toutes les séquences ayant ce nombre d'éléments
  • on alterne les couleurs
  • cliquer sur le bouton Hop!
Le code est dans le module de la feuille "Feuil1".

VB:
Sub colorer()
Dim xrg As Range, t, max, ref, n&, j&, plage As Range, coul
   Set xrg = Range("a1:j1"): t = xrg.Value
   xrg.Interior.ColorIndex = xlColorIndexAutomatic
   max = 0: ref = t(1, 1): n = 1
   For j = 2 To UBound(t, 2)
      If t(1, j) = ref Then
         n = n + 1
      Else
         If n > max Then max = n
         n = 1: ref = t(1, j)
      End If
   Next j
   If n > max Then max = n

   n = 0
   Do
      Set plage = xrg.Offset(, n).Resize(, max)
      If Application.CountIf(plage, plage(1, 1)) = max Then
         plage.Interior.Color = IIf(coul Mod 2 = 0, vbYellow, vbGreen): coul = coul + 1
         n = n + max
      Else
         n = n + 1
      End If
      If n > xrg.Count - 1 Then Exit Do
   Loop
End Sub
 

Pièces jointes

Bonjour MGN, mapomme,

Une solution très simple dans le fichier joint :
VB:
Sub Serie_max()
Dim P As Range, ncol%, i%, j%, Q As Range, maxi%, R As Range
Set P = Rows(1).Cells 'ligne à adapter
ncol = Cells(P.Row, Columns.Count).End(xlToLeft).Column + 1 '1 colonne de plus
For i = 1 To ncol - 1
    If P(i) <> "" Then
        For j = i To ncol
            If P(j) <> P(i) Then
                Set Q = Range(P(i), P(j - 1))
                If Q.Count > maxi Then maxi = Q.Count: Set R = Q
                Exit For
            End If
        Next j
    End If
Next i
'---restitution---
Application.ScreenUpdating = False
P.Interior.ColorIndex = xlNone 'RAZ
R.Interior.ColorIndex = 6 'jaune
End Sub
A+
 

Pièces jointes

Bonjour @job75 🙂,

En fait, si j'ai bien compris, le demandeur souhaite:
  • saisir la taille des séquences à formater
  • formater toutes les séquences ayant cette taille
  • quand une séquence a été formatée, on passe à la cellule qui suit la séquence formatée et on réexamine (je crois)

Une autre question du demandeur: comment faire pour mettre le code VBA dans son classeur ?
N'aurais pas tu quelque chose de tout fait et disponible à ce propos ou un lien qui présente comment faire ?
 
Réactions: MGN
J'aimerai si possible pouvoir changer la taille de la séquence. Peux-tu appliquer cela a plusieurs ligne d'une meme feuille. mais que cela prenne en compte ligne par ligne
 
Re @MGN,

Il nous faut absolument votre fichier de travail.
Pas le fichier dans sa totalité, mais un extrait reflétant exactement la structure de votre fichier réel. Et bien sûr sans données personnelles pour respecter le RGPD)

Je sentais bien que pour une ligne, ce ne serait pas suffisant.

Quand à un tuto explicatif, je recherche...
 
Réactions: MGN
 

Pièces jointes

@mapomme voici le document , sans informations personnelles
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…