Două validare a datelor în aceeași celulă

0

Problema

Am nevoie pentru a face o validare a datelor pentru utilizatorul nu misstype informațiile care merge la banca de date. Informațiile în celulă trebuie să fie umplut cu două criterii, prima parte este lucrătorul de stare, și al doilea informații imediat după ce în aceeași celulă este de cod contract care el este de lucru pe. Cum pot face o validare a datelor cu două informații dispuse în două diferite tabele? Am incercat ceva de genul =ȘI(a LĂSAT(K3:Q999;4)=S3:S13;DREAPTA(K3:Q999;2)=S15:S49)

introduceți descrierea imaginii aici

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

Cel mai bun răspuns

-1

Totul depinde de modul în care doriți să se aplice de validare.

Dacă doriți să fie în celulă într-o picătură în jos, apoi standard de validare va funcționa doar dacă aveți orice combinație posibilă în propria sa gamă, de exemplu ...

19Exec
19Folg
19Disp
...
33Exec
33Folg
33Disp
... 
etc.

Dacă doriți, puteți face întotdeauna folosind VBA. Un cuvânt de precauție, deși, acest lucru va invalida stiva undo și va trebui probabil să fie rafinat pentru a se asigura că caters pentru toate scenariile. Este foarte mult o opțiune, deși.

Aveți nevoie pentru a schimba acest cod pentru a se potrivi cu tine. E oase goale și lucrează într-un sens de bază.

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

Pentru a face acest lucru, creați un nume gamă de peste ambele coloane cheie în căutare de tabele. Numerele (de exemplu, 19, 33, 43, etc.) L-am numit "Range1" și 4 caractere de cuvinte (de exemplu, Exec, Folg, Disp, etc.) L-am numit "Range2".

Pentru zona de celule pe care doriți să rulați de validare pentru a verifica, am numit asta "ValidationRange".

Arunca macro în foaia de lucru pe care a gama doriți pentru a valida și a vedea cum merge.

2021-11-23 23:24:43

Multumesc!!!! Mă gândeam la ceva de genul asta. Voi încerca. Vă mulțumesc din nou!
Henrique Monteiro

@HenriqueMonteiro, a făcut de lucru pentru tine?
Skin

În alte limbi

Această pagină este în alte limbi

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