Choix entre le if then et le select case

nanoo79 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite faire un code pour mettre une couleur de texte rouge ou noir selon des conditions, mais lorsque j'utilise le if then ou le select case seul la premiere condition est respectée.

Voici mes deux conditions:
Si la valeur de cells (I,10) <-50000 alors le texte de cells (I,10) est rouge
Si la valeur de cells(I,10)<-50000 et la valeur de cells (i,2) commence par total alors le texte de cells(I10) est noir.

Que ce soit en if then ou en select case ca mets bien en rouge mais pas en noir.
Quelqu'un a une idee ?
Merci

7 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour,

if cells(i,10)<-50000 then
if cells(i,2) like "total*" then
cells(i,10).colorindex=1
else
cells(i,10).colorindex=3
end if
end if

non testé: vérifie la syntaxe de like "total* "
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Bonjour,

Voici comment écrire et normalement ca marche :

if cells (I,10) <-50000 then 'si la cellule (i,10) < - 50000
if left(ucase(i,2),5) = "TOTAL" then 'si les 5 premiers caractères (left) mis en majuscule (ucase) = Total alors
cells(i,10).Font.colorindex = xlautomatic 'texte en noir
else
cells(i,10).Font.colorindex = -16776961 'sinon texte en rouge
end if
0
nanoo79 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Melanie, J'ai une erreur de compilations sur le Ucase 'Nombre d'arguments incorrect ou affectation de proprietes incorrecte.
0
nanoo79 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Michel_m, mais ca ne fonctionne pas du moment que le montant est <-50000 ca me met en rouge il ne tient pas compte du total
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Re,

il manque un bout, essaie avec ca :

if cells (I,10) <-50000 then 'si la cellule (i,10) < - 50000
if left(ucase(cells(i,2)),5) = "TOTAL" then 'si les 5 premiers caractères (left) mis en majuscule (ucase) = Total alors
cells(i,10).Font.colorindex = xlautomatic 'texte en noir
else
cells(i,10).Font.colorindex = -16776961 'sinon texte en rouge
end if
0
nanoo79 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Nouvelle erreur : Erreur d'execution '9' L'indice n'appartient pas a la selection
et le debogueur pointe sur cette ligne de code
Cells(I, 10).Font.ColorIndex = -16776961 'sinon texte en rouge
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
remplace

Cells(I, 10).Font.ColorIndex = -16776961 'sinon texte en rouge

par

Cells(I, 10).Font.Color = -16776961 'sinon texte en rouge
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Re,

Tu avais marqué:
..."la valeur de cells (i,2) commence par total
alors "...


Il faut que l'orthographe soit la m^me : "Total" est différent de "total"
donc, si tu as Total ou total , il y a une petite astuce (cf procédure)

par contre j'avais oublié "font" dans la mise en couleur

If Cells(i, 10) < -50000 Then
If Cells(i, 2) Like "[Tt]otal*" Then
Cells(i, 10).Font.ColorIndex = 1
Else
Cells(i, 10).Font.ColorIndex = 3
End If
End If
0