Je voudrais comparer la valeur de 2 cellules et voir si elles sont identiques ou non .. Je sais comment le faire sur Excel mais je ne sais pas comment le mettre vba.
Entrée sortie:
Formule Excel:
=IF(A1=B1,"yes","no")
Vous pouvez utiliser la fonction IIF dans VBA. Il est similaire au fichier Excel IF
[c1] = IIf([a1] = [b1], "Yes", "No")
Essayez ceci:
Sub CompareCells()
If [a1] = [b1] Then
[c1] = "yes"
Else
[c1] = "no"
End If
End Sub
Attribuez ce code au bouton.
If (Range("A1").Value = Range("B1").Value) Then
Range("C1").Value = "Yes"
Else
Range("C1").Value = "No"
End If
Voici un sous changement (le code DOIT être inséré dans le module de feuille). Il ne s'activera que si vous modifiez une cellule dans la colonne B.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column <> 2 Then Exit Sub
If Cells(Target.Row, 1).Value = Cells(Target.Row, 2).Value Then
Cells(Target.Row, 3).Value = "Yes"
Else
Cells(Target.Row, 3).Value = "No"
End If
End Sub
Pour mémoire, cela n’utilise pas de bouton, mais vous permet de calculer si les deux cellules sont égales chaque fois que vous saisissez manuellement des données dans des cellules de la colonne B.
Sub CompareandHighlight()
Dim n As Integer
Dim sh As Worksheets
Dim r As Range
n = Worksheets("Indices").Range("E:E").Cells.SpecialCells(xlCellTypeConstants).Count
Application.ScreenUpdating = False
Dim match As Boolean
Dim valE As Double
Dim valI As Double
Dim i As Long, j As Long
For i = 2 To n
valE = Worksheets("Indices").Range("E" & i).Value
valI = Worksheets("Indices").Range("I" & i).Value
If valE = valI Then
Else:
Worksheets("Indices").Range("E" & i).Font.Color = RGB(255, 0, 0)
End If
Next i
Application.ScreenUpdating = True
End Sub