Bonjour,
Un vache de problème que tu soumets !
Bon. Une proposition via ma fonction personnalisée Minus (similaire à la fonction de soustraction de 2 ensembles) valide sur des plages discontinues :
Sub vérif_vache()
MsgBox sortie_champ(Range("E5:BD49"), Range("R24:AA24"))
MsgBox sortie_champ(Range("E5:BD49"), Range("AA17:BE17"))
End Sub
Function sortie_champ(champ As Range, vache As Range) As Boolean
If Minus(champ, vache).Count > champ.Count - vache.Count Then sortie_champ = True
End Function
Function Minus(ByVal A As Range, ByVal B As Range) As Range 'Plage A moins Plage B
Dim plage As Range, cell As Range
Set Minus = Nothing
For Each plage In A.Areas
For Each cell In plage
If Intersect(cell, B) Is Nothing Then
If Minus Is Nothing Then Set Minus = cell _
Else Set Minus = Union(Minus, cell)
End If
Next cell
Next plage
End Function
NB : Rien n'empêche de fusionner les 2 fonctions en 1 seule