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

Microsoft 365 Surligner les lignes si valeur d'une cellule de même valeur

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

akira21

XLDnaute Occasionnel
Bonjour,

Je bloque sur une macro qui doit me surligner les lignes en couleurs si les cellules dans la colonne F ont la même valeur.

Cela m'envoie une erreur Erreur d'exécution '13': incompatibilité de type

Qq'un peut il m'aider ?

Merci de votre aide 🙂

 

Pièces jointes

Bonjour,

Ceci:
VB:
Sub test()
    Dim cel As Range
    Dim Couleur As Long
    Dim Couleur2 As Long
    Dim Transit As Long
   
    i = 0
    Couleur = 10213316
    Couleur2 = 16777215
   
    For i = 5 To Range("F" & Rows.Count).End(xlUp).Row
        If Cells(i, "F") = Cells(i - 1, "F") Then
            Range(Cells(i, "A"), Cells(i, "M")).Interior.Color = Couleur
        Else
            Range(Cells(i, "A"), Cells(i, "M")).Interior.Color = Couleur2
            Transit = Couleur
            Couleur = Couleur2
            Couleur2 = Transit
        End If
    Next
End Sub

Cdlt
 
Bonjour le fil

=>akira21
Tu peux faire cela sans macro
Avec la Mise en Forme conditionnelle
Accueil->Mise en forme conditionnelle
Nouvelle règle
Utiliser une formule...
Et mettre cette formule
=NB.SI($F$5:$F$31;$F5)>1

PS: test OK sur ton fichier exemple

EDITION: Bonjour Rouge
 
Dernière édition:

Super, un grand merci 🙂
 
Re

Déjà il y a des petites coquilles dans le code
Au début on a
Dim Traansit As Long
puis
Couleur2 = Transit

Et cela même avec un Excel nourri aux fibres, le transit ne sera pas fluide 😉
 
Dernière édition:
Re

Quand à l'erreur, ce petit test l'explique, non ?
VB:
Sub Achtung_Baby()
XX = "C10-97"
XXX = "C10-97"
ZZ = Application.WorksheetFunction.RoundDown(XX, 0)
ZZZ = Application.WorksheetFunction.RoundDown(XXX, 0)
MsgBox ZZ
MsgBox ZZZ
End Sub

EDITION: Là plus d'erreur, car valeur numérique (ce qu'il n'y a pas dans la colonne F du fichier exemple)
VB:
Sub Achtung_Baby_OK()
XX = 1.4839
XXX = 1.4849598425
ZZ = Application.WorksheetFunction.RoundDown(XX, 3)
ZZZ = Application.WorksheetFunction.RoundDown(XXX, 3)
MsgBox ZZ
MsgBox ZZZ
End Sub
 
Vaut il mieux du VBA ou MFC pour ça ?
MFC sera surement moins lourd ?

Rien n'est moins certain. Si le nombre de ligne est grand, alors le VBA prendra moins de ressources (je pense).
Un autre avantage du VBA, c'est qu'on peut trier la plage selon la colonne F avant de la colorier. On est ainsi certain, que le coloriage sera toujours correct.
 
Re

=>akira21
Ouf, j'ai cru que j'étais invisible
Ou que mon hygiène laissait à désirer

Le titre de ta discussion parlait de cellule de même valeur
Or on est bien d'accord que dans ton exemple il n'y a qu'une seule fois C10-97
Or la MFC de mapomme la met en couleur.

Ce que je ne comprends donc pas.
 
- 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
4
Affichages
132
Réponses
5
Affichages
173
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…