Si Couleur B4 = 4 alors valeur =1 sinon valeur =0 [Résolu]

Signaler
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
-
Messages postés
30
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
13 août 2012
-
Bonjour tout et dit dans le titre je souhaite a partir de la couleur d'une cellule avoir une valeur soit 1 soit 0 , j'ai réaliser cette macro mais cela ne fonctionne pas vraiment il me met toute les valeur a 0 , merci pour tout aide .
Sub Couleur()
If Range("b1:b122").Interior.ColorIndex = 4 Then
Range("C1:c444").Value = 1
Else
Range("c1:c444").Value = 0
End If
End Sub

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour,
le code que tu montres ne peut que fonctionner comme tu l'attends !
S'il ne fonctionne pas, cela veut dire que :
- soit ta plage B1:B122 n'est pas de la couleur 4
- soit ce code n'est pas dans un module de la feuille contenant ces plages et cette feuille n'est pas la feuille active.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
30
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
13 août 2012

je veux integrer cette condition

If Cells(x, y).Value = "" Then
                                   exit sub



mais ca me fait tout le temp erreur j'arrive pas a imbriquer deux if en meme temps


Je comprends pas l'interet de cette chose

Tu veux t'arreter quand il n'y a plus rien dans la colonne B pour ne pas parcourir 12 000 lignes

alors ce code parait plus adéquat


Sub Couleur()

Dim Cel As Range

''repére la dernière ligne de B remplie
bdown=Range("B1").End(xlDown).Address
For Each Cel In Range("b1:" bdown)
''
''OU la variante
'bdown=Range("B1").End(xlDown).Rows
' For Each Cel In Range("b1:b" bdown)

If Cel.Value = "" Then

Value = ""

ElseIf Cel.Interior.ColorIndex = 4 Then

Cel.Offset(0, 1).Value = 1
Else
Cel.Offset(0, 1).Value = 0

End If

Next Cel
End Sub
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

Salut,

Pourtant tout et correct , j'ai tout vérifier mais rien n'y fait .

le code semble bon pourtant je pense pas que cela viens d'ici .
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

salut , il y'avait une erreur sur le code je mettait tromper , j'avais pas fait ligne par lignes mais l'ensemble , donc j'ai modifier et cela fonctionne maintenant .

    Sub Couleur()
    Dim Cel As Range
        For Each Cel In Range("b1:b122")
            If Cel.Interior.ColorIndex = 4 Then
                Cel.Offset(0, 1).Value = 1
            Else
                Cel.Offset(0, 1).Value = 0
            End If
        Next Cel
    End Sub
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

J'aurais une derniere petite question bete

je veux integrer cette condition
If Cells(x, y).Value = "" Then
                                   exit sub


mais ca me fait tout le temp erreur j'arrive pas a imbriquer deux if en meme temps
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

je viens de reussire je poste le code merci au forum A+

    Sub Couleur()
    
    Dim Cel As Range
    
        For Each Cel In Range("b1:b12222")
        
        
       If Cel.Value = "" Then
         
            Value = ""
        
       ElseIf Cel.Interior.ColorIndex = 4 Then
            
                Cel.Offset(0, 1).Value = 1
       Else
                Cel.Offset(0, 1).Value = 0
                
            End If
            
        Next Cel
    End Sub