N'est pas égal à une variable

Bonjour à tous,

Voici mon code :

Sub Macro1()
'
' Macro1 Macro
'

Dim cellule
cellule = ActiveCell.Value

Dim nombre As Integer
nombre = Range("B" & Rows.Count).End(xlUp).Row

For i = 2 To nombre
    If Range("B" & i).Value = cellule Then
        Range("A" & i).Interior.ColorIndex = 7
    Else: Range("B" & i).Value <> cellule And Range("B" & i + 1).Value = ""
        Range("A" & i).Interior.ColorIndex = 7
    End If
Next i
End Sub

Le problème est au niveau de

Range("B" & i).Value <> cellule

. Il ne comprend pas l'inégalité avec la valeur de la variable.

En clair,

Je veux que si ma variable cellule est égale à une cellule de la colonne B alors on colorie la colonne A de cette même ligne et que si ma variable cellule ne vaut rien dans ma colonne B, alors on colorie la colonne A de la première ligne vide.

Merci pour vos retours,

Simon

Bonjour,

Je n'ai pas compris la fin de ton explication :

...et que si ma variable cellule ne vaut rien dans ma colonne B, alors on colorie la colonne A de la première ligne vide.

Peux tu joindre un fichier fictif dans lequel tu illustres les cas de figure ?

Si je m'intéresse uniquement au code, indépendamment de son objectif :

1. Si ta condition Range("B" & i).Value = cellule n'est pas respectée, c'est le bloc Else qui est exécuté. Il est donc inutile de vérifier que Range("B" & i).Value <> cellule.

2. Si tu souhaites tester de nouvelles conditions dans le bloc Else, il faut ajouter une nouvelle structure "If...Then...End If", ou éventuellement un "ElseIf".

Slt Simon_Lbb,

à la place de Else utilise ElseIf ..... Then

Sub Macro1()
'
' Macro1 Macro
'

Dim cellule
cellule = ActiveCell.Value

Dim nombre As Integer
nombre = Range("B" & Rows.Count).End(xlUp).Row

For i = 2 To nombre
    If Range("B" & i).Value = cellule Then
        Range("A" & i).Interior.ColorIndex = 7
    Elseif Range("B" & i).Value <> cellule And Range("B" & i + 1).Value = "" Then
        Range("A" & i).Interior.ColorIndex = 7
    End If
Next i
End Sub

Bonjour à vous deux,

Pedro 22, ci-joint un fichier très très fictif...

Considérons que l'activecell est la cellule E1. Comme le nom "nom6" n'existe pas dans la liste, j'aimerais colorer la case A7.

Si à la place de nom6, on avait nom3, j'aimerais colorer la case A4.

5test.xlsx (8.14 Ko)

Merci m3ellem1 c'est parfait ça fonctionne

Pedro22, en effet, ma condition elseif est effectuée...

Comment remédier à ce problème ?

Parce que là toutes mes cases se colorent...

Merci m3ellem1 c'est parfait ça fonctionne

Pedro22, en effet, ma condition elseif est effectuée...

Comment remédier à ce problème ?

Parce que là toutes mes cases se colorent...

Une piste :

Sub ColoreLigne()

Dim LigMax As Integer, i As Integer

LigMax = Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To LigMax 'Boucle sur les lignes
    If Range("B" & i) = ActiveCell Then 'Si correspondance
        Range("A" & i).Interior.ColorIndex = 7 'On colore la cellule A correspondante
        Exit For 'On quitte la boucle
    End If
    If i = LigMax Then Range("A" & LigMax + 1).Interior.ColorIndex = 7 'Si on a tout parcouru sans quitter la boucle, on colore la 1ère ligne vide
Next i

End Sub

Génial merci beaucoup Pedro22 c'est super.

Rechercher des sujets similaires à "pas egal variable"