/ / Si la plage de conditions ne fonctionne pas - excel, vba, excel-vba

Si la plage de conditions ne fonctionne pas - excel, vba, excel-vba

Je ne parviens pas à utiliser le code ci-dessous lorsquevous copiez-collez des valeurs dans les colonnes A, C et D. Si, par exemple, je suis dans la ligne 2 et que j'insère des données dans les cellules A2, C2 et D2, le code fait son travail. Mais si je copie-colle les données des rangées 3, 4, 5, le code ne vérifie plus la condition. J'apprécierais vraiment si quelqu'un pouvait m'aider à résoudre ce problème. Merci!

Sub LogicalPart(i As Long)

If (Cells(i, "C") + Cells(i, "D")) <> Cells(i, "A") Then
MsgBox "C" & i & " + D" & i & " must equal cell A" & i & " which is: " & Range("A" & i).Value
MsgBox ("Please insert again the data in cell C" & i & " or D " & i & "!")
Cells(i, "C").Interior.Color = RGB(255, 0, 0)
Cells(i, "D").Interior.Color = RGB(255, 0, 0)

Else
Range(Cells(i, "C"), Cells(i, "D")).Interior.Color = RGB(1000, 1000, 1000)
End If

End Sub



Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range("C1:d10"), Target) Is Nothing Then
LogicalPart Target.row
End If


End Sub

Réponses:

3 pour la réponse № 1

Vous devez itérer les lignes de la plage cible:

Target.Row

Ne renverra que la première ligne et pas toutes:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim rngrow As Range
Set rng = Intersect(Range("C1:d10"), Target)
If Not rng Is Nothing Then
For Each rngrow In rng.Rows
LogicalPart rngrow.Row
Next rngrow
End If


End Sub