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

R

renaud

Guest
Bonjour,


j aimerais savoir comment faire une macro qui colore (en orange par exemple) les cellules qui ont la meme valeur.
Je pense que l idee de cette macro est que pour chaque ligne n (0<n<100) de la colonne j, excel balaye de la ligne 1 a n-1 et colorise toutes les cellules qui ont la meme valeur. Une couleur suffit car la colonne J sera triée de manière croissante au préalable.


Merci

renaud
 
Bonsoir

Si tes données sont triées :

Public Sub vev()
Dim c As Range
For Each c In Range("j1:j" & Range("j65536").End(xlUp).Row)
If c.Offset(1, 0) = c Then c.Interior.ColorIndex = 6: c.Offset(1, 0).Interior.ColorIndex = 6
Next c
End Sub

Si elle ne le sont pas :

Public Sub vev2()
Dim c As Range
For Each c In Range("j1:j" & Range("j65536").End(xlUp).Row)
If Application.WorksheetFunction.CountIf(Range("j1:j" & Range("j65536").End(xlUp).Row), c.Value) > 1 Then
c.Interior.ColorIndex = 6
End If
Next c
End Sub


Salut
Hervé
 
Super, cela marche très bien, merci beaucoup.


Comment faire pour que je puisse savoir si la valeur est deja presente dans la colonne J des que je rentre une nouvelle valeur (de telle sorte que je n ai pas besoin de lancer la macro a chaque fois pour savoir -peut etre en utilisant le format conditionnel des cellules...


Merci


renaud
 
Bonjour

Ce code placer dans le module de la feuille adéquate, interdit la saisie dans doublons dans la colonne j :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Not Application.Intersect(Target, Columns(10)) Is Nothing Then
For Each c In Range("j1:j" & Range("j65536").End(xlUp).Row)
If Application.WorksheetFunction.CountIf(Range("j1:j" & Range("j65536").End(xlUp).Row), c.Value) > 1 Then
MsgBox "Ce mot est déjà présent": Target.ClearContents: Exit Sub
End If
Next c
End If
End Sub

On doit pouvoir le faire avec un format conditionnel, pour ceci je te laisse rechercher dans le forum, je ne sais pas faire.

Salut
Hervé
 
- 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
5
Affichages
549
Réponses
7
Affichages
711
Réponses
1
Affichages
659
Réponses
5
Affichages
650
Retour