Choix entre le if then et le select case

Fermé
nanoo79 Messages postés 34 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014 - 26 déc. 2013 à 13:32
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 26 déc. 2013 à 17:00
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 déc. 2013 à 14:21
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 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 déc. 2013 à 14:25
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 mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
26 déc. 2013 à 14:55
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 mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
26 déc. 2013 à 14:57
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 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 déc. 2013 à 15:40
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 mercredi 17 avril 2013 Statut Membre Dernière intervention 19 novembre 2014
26 déc. 2013 à 15:48
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 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 déc. 2013 à 16:50
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 déc. 2013 à 17:00
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