Deux de validation des données dans la même cellule

0

La question

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)

entrez la description de l'image ici

database datatable excel formula
2021-11-23 14:14:08
1

La meilleure réponse

-1

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.

2021-11-23 23:24:43

Merci!!!!! Je pensais à quelque chose comme ça. Je vais essayer. Merci encore une fois!
Henrique Monteiro

@HenriqueMonteiro, avait-il travailler pour vous?
Skin

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................