afficher une couleur selon un mot

esftel

XLDnaute Occasionnel
Bonjour le forum,

Je m'adresse au VBAiste, je viens de créer un petit programme qui
applique une coleur lorsque une cellule est = "SM".
seulement je souhaiterais qu'il ne respecte pas la casse.
Bref que le code donne une couleur losque c'est égale à "SM" en minuscule ou majuscule ou contient le mot "SM".

pour que ce soit plus claire, je vous joint un exemple à mon post


Merci de votre ou vos réponses.

Le code en question :

Sub Couleur()
Range("A1").Select
n = Range(Selection, Selection.End(xlDown)).Count
For i = 1 To n
Coul = Cells(i, 2).Value
Select Case Coul
Case Is = "SM"
Range("A" & i & ":B" & i).Select
With Selection.Interior
.Color = 65535
End With
End Select
Next i
End Sub
 

Pièces jointes

  • Mon exemple.xls
    34.5 KB · Affichages: 203
  • Mon exemple.xls
    34.5 KB · Affichages: 230
  • Mon exemple.xls
    34.5 KB · Affichages: 220

Hervé

XLDnaute Barbatruc
Re : afficher une couleur selon un mot

Bonsoir

option compare text en tete de module permet de s'affranchir de la casse dans les comparaisons.

un code à tester :

Code:
Option Compare Text
Sub Couleur()
Dim n As Integer
Dim i As Integer
Dim coul As String

n = Range("A65536").End(xlUp).Row
    
For i = 1 To n
    coul = Cells(i, 2).Value
    If InStr(1, coul, "SM") > 0 Then
        Range("A" & i & ":B" & i).Interior.Color = 65535
    End If
Next i

End Sub
salut
 
C

Compte Supprimé 979

Guest
Re : afficher une couleur selon un mot

Salut Esftel, ami Hervé ;)

Sans "Option compare text" qui peut poser des problèmes plus tard

Code:
Sub Couleur()
Dim Coul As String, I As Long, N As Long
Range("A1").Select
N = Range(Selection, Selection.End(xlDown)).Count
For I = 1 To N
  ' Récupérer la valeur en MAJUSCULE de la cellule
  Coul = UCase(Cells(I, 2).Value)
  ' Comparer le contenu
  If Coul Like "*SM*" Then
    Range("A" & I & ":B" & I).Interior.Color = 65535
  End If
Next I
End Sub

Voili, voilà ;)
 

BERRACHED said

XLDnaute Accro
Re : afficher une couleur selon un mot

Salut,esftel

a mon avis il faut introduire dans le code toutes les possibilités pour aboutir au résultat escompté

test ton code modifier ça marcher chez moi
Code:
Sub Couleur()
Range("A1").Select
    n = Range(Selection, Selection.End(xlDown)).Count
For i = 1 To n
Coul = Cells(i, 2).Value
Select Case Coul
    Case Is = "SM", "sm", "Sm", "SM et FT"
        Range("A" & i & ":B" & i).Select
        With Selection.Interior
            .Color = 65535
        End With
End Select
Next i
End Sub

Cordialement
 

esftel

XLDnaute Occasionnel
Re : afficher une couleur selon un mot

Salut a vous,

Houaou, j'ai tout juste eu le temps de fumer une clop avant de voir vos réponses.

Said, je ne savais pas que l'on pouvais ajouter plusieurs critères de cette façon sur un Case Is (Ca marche pour moi aussi) mais ta solution me demande de prévoir en effet toutes les saisies possibles y compris les espaces en trop.
(Sachant que je ne suis pas celui qui vas saisir dans les cellules...). Je pense que ta réponse va m'aider pour d'autre petit prog que j'ai créé.
Merci pour ton aide.

Hervé, BrunoM45 je ne connais pas l'Option compare
cela dit après un test rapide je vais creusé un peu plus vos solutions.
Merci pour votre aide

BrunoM45, Pourquoi ta solution pourrais me possé des problèmes plus tard ?


Merci encore a vous Trois pour vos réponse ultra rapide.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 517
dernier inscrit
XavG