J'ai besoin de faire une validation des données pour l'utilisateur de ne pas misstype l'information à la banque de données. Les informations contenues dans la cellule doit être remplie avec deux critères, la première partie est le statut de travailleur, et la deuxième information juste après dans la même cellule est de code de contrat qu'il travaille sur. Comment puis-je faire une validation des données avec ces deux informations éliminés dans les deux différentes tables? J'ai essayé quelque chose comme =ET(à GAUCHE(K3:Q999;4)=S3:S13;à DROITE(K3:Q999;2)=S15:S49)
Tout dépend de comment vous voulez appliquer la validation.
Si vous souhaitez qu'il soit dans la cellule dans une liste déroulante puis validation standard ne fonctionnera que si vous avez toutes les combinaison possible dans sa propre gamme, par exemple ...
19Exec
19Folg
19Disp
...
33Exec
33Folg
33Disp
...
etc.
Si vous le souhaitez, vous pouvez toujours le faire à l'aide de VBA. Un mot d'avertissement cependant, cela annulerait la pile d'annulation et sera probablement besoin d'être raffiné afin de s'assurer qu'il s'adresse à tous les scénarios. Il est très une option si.
Vous avez besoin de modifier ce code pour l'adapter à vous. C'est bare bones et fonctionne dans un sens de base.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngIntersect As Range, objCell As Range, strPrefix As String, strSuffix As String
Dim lngIndexSuffix As Long, lngIndexPrefix As Long
' Safety net, remove if you think this won't be a problem.
If Target.Cells.Count > 1000 Then Exit Sub
For Each objCell In Target
Set rngIntersect = Application.Intersect(objCell, Range("ValidationRange"))
If Not rngIntersect Is Nothing Then
If Len(objCell.Text) = 0 Then
' Only continue if the cell isn't empty.
Target.Interior.ColorIndex = -4142
Else
strSuffix = Right(objCell.Text, 4)
strPrefix = Mid(objCell.Text, 1, Len(objCell.Text) - Len(strSuffix))
Err.Clear
On Error Resume Next
lngIndexPrefix = WorksheetFunction.Match(CInt(strPrefix), Range("Range1"), 0)
lngIndexSuffix = WorksheetFunction.Match(strSuffix, Range("Range2"), 0)
If Err.Description <> "" Then
Target.Interior.Color = 255
Else
Target.Interior.ColorIndex = -4142
End If
On Error GoTo 0
End If
End If
Next
End Sub
Pour ce faire, créer une plage nommée sur les deux colonnes de clés dans vos tables de recherche. Les chiffres (c'est à dire 19, 33, 43, etc.) Je l'ai nommé "Plage1" et les 4 caractères des mots (par exemple, Exec, Folg, Disp, etc.) Je l'ai nommé "Plage2".
Pour la plage de cellules que vous souhaitez exécuter la vérification de la validation pour, que j'ai appelé "ValidationRange".
Lancer cette macro dans la feuille de calcul que a la plage que vous souhaitez valider et voir comment il va.