web-dev-qa-db-fra.com

comparer 2 cellules dans Excel en utilisant vba

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:

  1. La valeur de la cellule A1 est déjà dans Excel.
  2. Entrez manuellement une valeur dans la cellule B1.
  3. cliquez sur un bouton button_click pour voir si la valeur sur 2 cellules est identique ou non.
  4. Afficher "Oui" ou "Non" sur la cellule C1 

Formule Excel:

=IF(A1=B1,"yes","no")
4
pexpex223

Vous pouvez utiliser la fonction IIF dans VBA. Il est similaire au fichier Excel IF

[c1] = IIf([a1] = [b1], "Yes", "No")
0
Paul Kelly

Essayez ceci:

Sub CompareCells()
    If [a1] = [b1] Then
        [c1] = "yes"
    Else
        [c1] = "no"
    End If
End Sub

Attribuez ce code au bouton.

4
Gary's Student
If (Range("A1").Value = Range("B1").Value) Then
    Range("C1").Value = "Yes"
Else
    Range("C1").Value = "No"
End If
2
Eswin

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.

0
Chrismas007
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
0
Madhushree