le sous-programme de vérification contre la liste, dans le module normal:
Sub ListToCheck(rng As Range)
Dim cl As Range
Dim i As Integer
Dim bMatch As Boolean
Dim sListName As String
sListName = "sheet2!MyList" 'change this accrording to your needs
bMatch = False
For Each cl In rng.Cells
With WorksheetFunction
For i = 1 To .CountA(Range("MyList"))
If cl.Value = .Index(Range(sListName), i) Then bMatch = True
Next i
End With
With cl.Interior
If bMatch Then
.ColorIndex = 0
Else
.Color = vbYellow
End If
End With
bMatch = False
Next cl
End Sub
et un autre pour vérifier, si la valeur insérée entre deux positions longues:
Sub ValueToCheck(rng As Range, minV As Long, maxV As Long)
Dim cl As Range
Dim bOk As Boolean
For Each cl In rng.Cells
With cl
If IsNumeric(.Value) Then
If .Value < minV Or .Value > maxV Then
.Interior.Color = vbYellow
Else
.Interior.ColorIndex = 0
End If
Else
.Interior.Color = vbYellow
End If
End With
Next cl
End Sub
Ensuite, une petite macro dans la feuille quand la validation doit être utilisée:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Range
Dim colAdr As String
For Each col In Target.Columns
colAdr = col.Address(ReferenceStyle:=xlR1C1)
Select Case Right(colAdr, Len(colAdr) - InStrRev(colAdr, "C"))
Case Is = 1
ListToCheck col
Case Is = 2
ValueToCheck col, 1000000, 9999999
End Select
Next col
End Sub
Je suppose que la première colonne est pour être vérifier contre une liste, et le second doit être entre 1000000 et 9999999. Mais vous pouvez le modifier en conséquence. Comme vous pouvez le voir, je n'utilise pas la validation Excel - cela peut être écrasé par inadvertance par l'utilisateur lors du collage. J'ai fait des macros pour remplir une cellule non valide avec du jaune, mais vous pouvez l'ordonner en faisant autre chose. Je ne recommanderais pas msgbox si vous pensez que quelqu'un pourrait essayer de coller 1 000 ou plus de valeurs.
Voir ici pour un exemple où un message est affiché si les règles vont être remplacées https://stackoverflow.com/questions/29386971/force-pasted-values-to-obey-data-validation-rules – QHarr