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

Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
- - Dernière réponse : DamienGB
Messages postés
30
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
13 août 2012
- 25 mai 2012 à 16:30
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

Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
30
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
13 août 2012
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Commenter la réponse de DamienGB
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
0
Merci
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 .
Commenter la réponse de walyddu59
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
0
Merci
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
Commenter la réponse de walyddu59
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
0
Merci
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
Commenter la réponse de walyddu59
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
0
Merci
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
Commenter la réponse de walyddu59