Bonjour à tous(tes)
J'ai boucoup de soucis à écrire en VBA ce que je veux faire. Voici :
Dans une même feuille j'ai trois plages nommées : plage1...correspond à
f8:ab8, plage 2...correspond à f12:ab12 et plage 3 ...correspond à la cellule
C6.
Je voudrais comparer toutes les cellules de maplage1 avec les cellules
correspondantes de maplage2 en incluant toujours une comparaison avec
maplage3 et si le résultat est vrai alors colorier la cellule de maplage1 en
rouge.
ainsi si f8 < f12 et f8 < C6 alors f8=interior.colorindex=3
si g8 <g12 et g8< C6 alors g8=interior.colorindex=3
si h8 <h12 et h8< C6 alors h8=interior.colorindex=3
et ainsi de suite jusqu'à si ab8<ab12 et ab8<C6 alors
ab8=interior.colorindex=3
Je voudrais procéder en VBA PCQ j'ai lu sur ce forum que l'on pouvait
compter les cellules qui sont coloriées avec une procédure VBA.
Bonsoir, Mon petit grain de sel pour abonder dans le sens de préférer (chaque fois que possible, OK Misange) la MEFC et le comptage des cas répondant auxdites conditions. D'autant que dans un cas comme celui ci, on peut tout à fait utiliser à l'intérieur de la MEFC une combinaison de Sommeprod pour comparer des plages entières entre elles. -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "LSteph" a écrit dans le message de news:%
Bonjour,
> compter les cellules qui sont coloriées avec une procédure VBA. c'est précisément une mauvaise astuce car il vaut bien mieux utiliser directement la condition.
Cordialement.
-- lSteph
guy boily a écrit :
Bonjour à tous(tes) J'ai boucoup de soucis à écrire en VBA ce que je veux faire. Voici : Dans une même feuille j'ai trois plages nommées : plage1...correspond à f8:ab8, plage 2...correspond à f12:ab12 et plage 3 ...correspond à la cellule C6. Je voudrais comparer toutes les cellules de maplage1 avec les cellules correspondantes de maplage2 en incluant toujours une comparaison avec maplage3 et si le résultat est vrai alors colorier la cellule de maplage1 en rouge. ainsi si f8 < f12 et f8 < C6 alors f8=interior.colorindex=3 si g8 <g12 et g8< C6 alors g8=interior.colorindex=3 si h8 <h12 et h8< C6 alors h8=interior.colorindex=3 et ainsi de suite jusqu'à si ab8<ab12 et ab8<C6 alors ab8=interior.colorindex=3
Je voudrais procéder en VBA PCQ j'ai lu sur ce forum que l'on pouvait compter les cellules qui sont coloriées avec une procédure VBA.
Merci à l'avance pour votre aide précieuse.
Bye! Je voudrais boily_SLSJ
Bonsoir,
Mon petit grain de sel pour abonder dans le sens de préférer (chaque fois
que possible, OK Misange) la MEFC et le comptage des cas répondant auxdites
conditions.
D'autant que dans un cas comme celui ci, on peut tout à fait utiliser à
l'intérieur de la MEFC une combinaison de Sommeprod pour comparer des plages
entières entre elles.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:%2371wIUZTJHA.5244@TK2MSFTNGP04.phx.gbl...
Bonjour,
> compter les cellules qui sont coloriées avec une procédure VBA.
c'est précisément une mauvaise astuce car il vaut bien mieux utiliser
directement la condition.
Cordialement.
--
lSteph
guy boily a écrit :
Bonjour à tous(tes)
J'ai boucoup de soucis à écrire en VBA ce que je veux faire. Voici :
Dans une même feuille j'ai trois plages nommées : plage1...correspond à
f8:ab8, plage 2...correspond à f12:ab12 et plage 3 ...correspond à la
cellule C6.
Je voudrais comparer toutes les cellules de maplage1 avec les cellules
correspondantes de maplage2 en incluant toujours une comparaison avec
maplage3 et si le résultat est vrai alors colorier la cellule de
maplage1 en rouge.
ainsi si f8 < f12 et f8 < C6 alors f8=interior.colorindex=3
si g8 <g12 et g8< C6 alors g8=interior.colorindex=3
si h8 <h12 et h8< C6 alors h8=interior.colorindex=3
et ainsi de suite jusqu'à si ab8<ab12 et ab8<C6 alors
ab8=interior.colorindex=3
Je voudrais procéder en VBA PCQ j'ai lu sur ce forum que l'on pouvait
compter les cellules qui sont coloriées avec une procédure VBA.
Bonsoir, Mon petit grain de sel pour abonder dans le sens de préférer (chaque fois que possible, OK Misange) la MEFC et le comptage des cas répondant auxdites conditions. D'autant que dans un cas comme celui ci, on peut tout à fait utiliser à l'intérieur de la MEFC une combinaison de Sommeprod pour comparer des plages entières entre elles. -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "LSteph" a écrit dans le message de news:%
Bonjour,
> compter les cellules qui sont coloriées avec une procédure VBA. c'est précisément une mauvaise astuce car il vaut bien mieux utiliser directement la condition.
Cordialement.
-- lSteph
guy boily a écrit :
Bonjour à tous(tes) J'ai boucoup de soucis à écrire en VBA ce que je veux faire. Voici : Dans une même feuille j'ai trois plages nommées : plage1...correspond à f8:ab8, plage 2...correspond à f12:ab12 et plage 3 ...correspond à la cellule C6. Je voudrais comparer toutes les cellules de maplage1 avec les cellules correspondantes de maplage2 en incluant toujours une comparaison avec maplage3 et si le résultat est vrai alors colorier la cellule de maplage1 en rouge. ainsi si f8 < f12 et f8 < C6 alors f8=interior.colorindex=3 si g8 <g12 et g8< C6 alors g8=interior.colorindex=3 si h8 <h12 et h8< C6 alors h8=interior.colorindex=3 et ainsi de suite jusqu'à si ab8<ab12 et ab8<C6 alors ab8=interior.colorindex=3
Je voudrais procéder en VBA PCQ j'ai lu sur ce forum que l'on pouvait compter les cellules qui sont coloriées avec une procédure VBA.
Merci à l'avance pour votre aide précieuse.
Bye! Je voudrais boily_SLSJ
LSteph
;-))
Jacquouille a écrit :
Salut Daniel Si c'est pour une bière, alors moi, j'étais de l'avi de Stephane... Une bière au choix, oeuf corse.
;-))
Jacquouille a écrit :
Salut Daniel
Si c'est pour une bière, alors moi, j'étais de l'avi de Stephane...
Une bière au choix, oeuf corse.
Salut Daniel Si c'est pour une bière, alors moi, j'étais de l'avi de Stephane... Une bière au choix, oeuf corse.
guy boily
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma
chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code.
C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après
une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28
If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 3
End If
Next
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
Philippe.R
Bonjour, Il n'y a pas de polémique et donc pas de quoi être désolé, il y a juste occasion de discussion, ce qui, me semble t il, est l'objet même du forum (un lieu d'échanges avant d'être un SAV gratuit). ;o)) -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "guy boily" a écrit dans le message de news:
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
Bonjour,
Il n'y a pas de polémique et donc pas de quoi être désolé, il y a juste
occasion de discussion, ce qui, me semble t il, est l'objet même du forum
(un lieu d'échanges avant d'être un SAV gratuit).
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"guy boily" <guyboily@discussions.microsoft.com> a écrit dans le message de
news:A3FD1698-E5D8-48C7-A2A5-46145E1BE567@microsoft.com...
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma
chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code.
C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après
une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28
If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 3
End If
Next
Bonjour, Il n'y a pas de polémique et donc pas de quoi être désolé, il y a juste occasion de discussion, ce qui, me semble t il, est l'objet même du forum (un lieu d'échanges avant d'être un SAV gratuit). ;o)) -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "guy boily" a écrit dans le message de news:
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
Daniel.C
Bonjour. Considère cependant que la solution n'est pas l'équivalent d'une mise en forme conditionnelle. Si les valeurs des cellules n'évoluent pas, c'est parfait. A partir du moment ou elles évoluent, il faut mettre le code de FFO dans une macro évènementielle, soit un Worksheet_Change, si les valeurs sont entrées manuellement, soit un Worksheet_Calculate si les plages contiennent des formules. Cordialement. Daniel
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
Bonjour.
Considère cependant que la solution n'est pas l'équivalent d'une mise
en forme conditionnelle. Si les valeurs des cellules n'évoluent pas,
c'est parfait. A partir du moment ou elles évoluent, il faut mettre le
code de FFO dans une macro évènementielle, soit un Worksheet_Change, si
les valeurs sont entrées manuellement, soit un Worksheet_Calculate si
les plages contiennent des formules.
Cordialement.
Daniel
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma
chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code.
C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après
une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28
If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 3
End If
Next
Bonjour. Considère cependant que la solution n'est pas l'équivalent d'une mise en forme conditionnelle. Si les valeurs des cellules n'évoluent pas, c'est parfait. A partir du moment ou elles évoluent, il faut mettre le code de FFO dans une macro évènementielle, soit un Worksheet_Change, si les valeurs sont entrées manuellement, soit un Worksheet_Calculate si les plages contiennent des formules. Cordialement. Daniel
bonjour FFO
J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. C'est FABULEUX comment tout ça fonctionne bien.
Merci boucoup
P.s. je suis désolé de la polémique que ma question a soulevée. Mais après une heure de test ta fonction marche très bien.
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
guy boily
Bonjour DanielC. Merci en retard pour ton commentaire il m'a été bien utile. En effet comme tu le mentionnais j'ai placé le code dans un Worksheet_Calculate pcq mes plages plages contiennent des formules.(sommeprod)
Merci
-- boily_SLSJ
"Daniel.C" a écrit :
Bonjour. Considère cependant que la solution n'est pas l'équivalent d'une mise en forme conditionnelle. Si les valeurs des cellules n'évoluent pas, c'est parfait. A partir du moment ou elles évoluent, il faut mettre le code de FFO dans une macro évènementielle, soit un Worksheet_Change, si les valeurs sont entrées manuellement, soit un Worksheet_Calculate si les plages contiennent des formules. Cordialement. Daniel
> bonjour FFO > > J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma > chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. > C'est FABULEUX comment tout ça fonctionne bien. > > Merci boucoup > > P.s. je suis désolé de la polémique que ma question a soulevée. Mais après > une heure de test ta fonction marche très bien. > > > > boily_SLSJ > > > "FFO" a écrit : > >> Salut guy >> >> Ce code devrait faire : >> >> For i = 5 To 28 >> If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then >> Cells(8, i).Interior.ColorIndex = 3 >> End If >> Next >> >> Dis moi !!! >>
Bonjour DanielC.
Merci en retard pour ton commentaire il m'a été bien utile. En effet comme
tu le mentionnais j'ai placé le code dans un Worksheet_Calculate pcq mes
plages
plages contiennent des formules.(sommeprod)
Merci
--
boily_SLSJ
"Daniel.C" a écrit :
Bonjour.
Considère cependant que la solution n'est pas l'équivalent d'une mise
en forme conditionnelle. Si les valeurs des cellules n'évoluent pas,
c'est parfait. A partir du moment ou elles évoluent, il faut mettre le
code de FFO dans une macro évènementielle, soit un Worksheet_Change, si
les valeurs sont entrées manuellement, soit un Worksheet_Calculate si
les plages contiennent des formules.
Cordialement.
Daniel
> bonjour FFO
>
> J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma
> chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code.
> C'est FABULEUX comment tout ça fonctionne bien.
>
> Merci boucoup
>
> P.s. je suis désolé de la polémique que ma question a soulevée. Mais après
> une heure de test ta fonction marche très bien.
>
>
>
> boily_SLSJ
>
>
> "FFO" a écrit :
>
>> Salut guy
>>
>> Ce code devrait faire :
>>
>> For i = 5 To 28
>> If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
>> Cells(8, i).Interior.ColorIndex = 3
>> End If
>> Next
>>
>> Dis moi !!!
>>
Bonjour DanielC. Merci en retard pour ton commentaire il m'a été bien utile. En effet comme tu le mentionnais j'ai placé le code dans un Worksheet_Calculate pcq mes plages plages contiennent des formules.(sommeprod)
Merci
-- boily_SLSJ
"Daniel.C" a écrit :
Bonjour. Considère cependant que la solution n'est pas l'équivalent d'une mise en forme conditionnelle. Si les valeurs des cellules n'évoluent pas, c'est parfait. A partir du moment ou elles évoluent, il faut mettre le code de FFO dans une macro évènementielle, soit un Worksheet_Change, si les valeurs sont entrées manuellement, soit un Worksheet_Calculate si les plages contiennent des formules. Cordialement. Daniel
> bonjour FFO > > J'ai pris un peu de temps à te répondre pcq je suis tombé en bas de ma > chaise (sans avoir ingurgité de bière)...lorsque j'ai incorporé ton code. > C'est FABULEUX comment tout ça fonctionne bien. > > Merci boucoup > > P.s. je suis désolé de la polémique que ma question a soulevée. Mais après > une heure de test ta fonction marche très bien. > > > > boily_SLSJ > > > "FFO" a écrit : > >> Salut guy >> >> Ce code devrait faire : >> >> For i = 5 To 28 >> If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then >> Cells(8, i).Interior.ColorIndex = 3 >> End If >> Next >> >> Dis moi !!! >>
guy boily
Bonjour FFO Voici le code obtenu avec ton aide. ce code fonctionne très bien.
Private Sub Workbook_SheetCalculate(ByVal sh As Object) For i = 5 To 28 For k = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If If Cells(8, i) > Cells(12, i) Then Cells(8, i).Interior.ColorIndex = 6 End If If Cells(8, i) < Cells(12, i) And Cells(8, i) > Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 4 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) < Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 3 End If If Cells(29, k) > Cells(33, k) Then Cells(29, k).Interior.ColorIndex = 6 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) > Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 4 End If Next k Next i
End Sub
Mais lorsque je veux ajouter un autre For pour ajouter une autre ligne de comparaison avec Private Sub Workbook_SheetCalculate(ByVal sh As Object) For i = 5 To 28 For k = 5 To 28 For j = 5 to 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If If Cells(8, i) > Cells(12, i) Then Cells(8, i).Interior.ColorIndex = 6 End If If Cells(8, i) < Cells(12, i) And Cells(8, i) > Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 4 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) < Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 3 End If If Cells(29, k) > Cells(33, k) Then Cells(29, k).Interior.ColorIndex = 6 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) > Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 4 End If If Cells(51, j) < Cells(55, j) And Cells(51, j) < Cells(6, 3) Then Cells(51, j).Interior.ColorIndex = 3 End If If Cells(51, j) > Cells(55, j) Then Cells(51, j).Interior.ColorIndex = 6 End If If Cells(51, j) < Cells(55, j) And Cells(51, j) > Cells(6, 3) Then Cells(51, j).Interior.ColorIndex = 4 End If Next j Next k Next i
End Sub
Ça bogue à la première ligne du If de la 3 ieme ligne de comparaison soit If Cells(51, j) < Cells(55, j) And Cells(51, j) < Cells(6, 3) Then Cells(51, j).Interior.ColorIndex = 3 End If
Le message d'excel: Erreur définie par l'application ou par l'objet.
Serait-ce que l'on ne peut mettre plus de 6 IF ? ou que ma structure de IF n'est pas correct?
P.S. je ne suis pas un CRAC du VBA ...
Comment faire pour mettre mon fichier sur c-joint pour te montrer tout ça?
Merci de m'accorder de ton temps.
Bye!
-- boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next
Dis moi !!!
Bonjour FFO
Voici le code obtenu avec ton aide. ce code fonctionne très bien.
Private Sub Workbook_SheetCalculate(ByVal sh As Object)
For i = 5 To 28
For k = 5 To 28
If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 3
End If
If Cells(8, i) > Cells(12, i) Then
Cells(8, i).Interior.ColorIndex = 6
End If
If Cells(8, i) < Cells(12, i) And Cells(8, i) > Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 4
End If
If Cells(29, k) < Cells(33, k) And Cells(29, k) < Cells(6, 3) Then
Cells(29, k).Interior.ColorIndex = 3
End If
If Cells(29, k) > Cells(33, k) Then
Cells(29, k).Interior.ColorIndex = 6
End If
If Cells(29, k) < Cells(33, k) And Cells(29, k) > Cells(6, 3) Then
Cells(29, k).Interior.ColorIndex = 4
End If
Next k
Next i
End Sub
Mais lorsque je veux ajouter un autre For pour ajouter une autre ligne de
comparaison avec
Private Sub Workbook_SheetCalculate(ByVal sh As Object)
For i = 5 To 28
For k = 5 To 28
For j = 5 to 28
If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 3
End If
If Cells(8, i) > Cells(12, i) Then
Cells(8, i).Interior.ColorIndex = 6
End If
If Cells(8, i) < Cells(12, i) And Cells(8, i) > Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 4
End If
If Cells(29, k) < Cells(33, k) And Cells(29, k) < Cells(6, 3) Then
Cells(29, k).Interior.ColorIndex = 3
End If
If Cells(29, k) > Cells(33, k) Then
Cells(29, k).Interior.ColorIndex = 6
End If
If Cells(29, k) < Cells(33, k) And Cells(29, k) > Cells(6, 3) Then
Cells(29, k).Interior.ColorIndex = 4
End If
If Cells(51, j) < Cells(55, j) And Cells(51, j) < Cells(6, 3) Then
Cells(51, j).Interior.ColorIndex = 3
End If
If Cells(51, j) > Cells(55, j) Then
Cells(51, j).Interior.ColorIndex = 6
End If
If Cells(51, j) < Cells(55, j) And Cells(51, j) > Cells(6, 3) Then
Cells(51, j).Interior.ColorIndex = 4
End If
Next j
Next k
Next i
End Sub
Ça bogue à la première ligne du If de la 3 ieme ligne de comparaison soit
If Cells(51, j) < Cells(55, j) And Cells(51, j) < Cells(6, 3) Then
Cells(51, j).Interior.ColorIndex = 3
End If
Le message d'excel: Erreur définie par l'application ou par l'objet.
Serait-ce que l'on ne peut mettre plus de 6 IF ? ou que ma structure de IF
n'est pas correct?
P.S. je ne suis pas un CRAC du VBA ...
Comment faire pour mettre mon fichier sur c-joint pour te montrer tout ça?
Merci de m'accorder de ton temps.
Bye!
--
boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28
If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then
Cells(8, i).Interior.ColorIndex = 3
End If
Next
Bonjour FFO Voici le code obtenu avec ton aide. ce code fonctionne très bien.
Private Sub Workbook_SheetCalculate(ByVal sh As Object) For i = 5 To 28 For k = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If If Cells(8, i) > Cells(12, i) Then Cells(8, i).Interior.ColorIndex = 6 End If If Cells(8, i) < Cells(12, i) And Cells(8, i) > Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 4 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) < Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 3 End If If Cells(29, k) > Cells(33, k) Then Cells(29, k).Interior.ColorIndex = 6 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) > Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 4 End If Next k Next i
End Sub
Mais lorsque je veux ajouter un autre For pour ajouter une autre ligne de comparaison avec Private Sub Workbook_SheetCalculate(ByVal sh As Object) For i = 5 To 28 For k = 5 To 28 For j = 5 to 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If If Cells(8, i) > Cells(12, i) Then Cells(8, i).Interior.ColorIndex = 6 End If If Cells(8, i) < Cells(12, i) And Cells(8, i) > Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 4 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) < Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 3 End If If Cells(29, k) > Cells(33, k) Then Cells(29, k).Interior.ColorIndex = 6 End If If Cells(29, k) < Cells(33, k) And Cells(29, k) > Cells(6, 3) Then Cells(29, k).Interior.ColorIndex = 4 End If If Cells(51, j) < Cells(55, j) And Cells(51, j) < Cells(6, 3) Then Cells(51, j).Interior.ColorIndex = 3 End If If Cells(51, j) > Cells(55, j) Then Cells(51, j).Interior.ColorIndex = 6 End If If Cells(51, j) < Cells(55, j) And Cells(51, j) > Cells(6, 3) Then Cells(51, j).Interior.ColorIndex = 4 End If Next j Next k Next i
End Sub
Ça bogue à la première ligne du If de la 3 ieme ligne de comparaison soit If Cells(51, j) < Cells(55, j) And Cells(51, j) < Cells(6, 3) Then Cells(51, j).Interior.ColorIndex = 3 End If
Le message d'excel: Erreur définie par l'application ou par l'objet.
Serait-ce que l'on ne peut mettre plus de 6 IF ? ou que ma structure de IF n'est pas correct?
P.S. je ne suis pas un CRAC du VBA ...
Comment faire pour mettre mon fichier sur c-joint pour te montrer tout ça?
Merci de m'accorder de ton temps.
Bye!
-- boily_SLSJ
"FFO" a écrit :
Salut guy
Ce code devrait faire :
For i = 5 To 28 If Cells(8, i) < Cells(12, i) And Cells(8, i) < Cells(6, 3) Then Cells(8, i).Interior.ColorIndex = 3 End If Next