Due convalida dei dati nella stessa cella

0

Domanda

Ho bisogno di fare una convalida dei dati per l'utente non misstype le informazioni che va alla banca dati. Le informazioni in cella deve essere riempito con due criteri, la prima parte è l'operaio di stato, e la seconda informazione subito dopo nella stessa cella è de contratto di codice che sta lavorando su. Come posso fare una convalida dati con queste due informazioni disposte in due diverse tabelle? Ho provato qualcosa di simile =E(a SINISTRA(K3:Q999;4)=S3:S13;a DESTRA(K3:Q999;2)=S15:S49)

inserire immagine qui la descrizione

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

Migliore risposta

-1

Tutto dipende da come si desidera applicare la convalida.

Se si desidera essere nella cella in un elenco a discesa, quindi standard di validazione funziona solo se si dispone di ogni combinazione possibile nella propria gamma, ad esempio ...

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

Se si desidera, è sempre possibile farlo utilizzando VBA. Una parola di cautela, però, questo non invalida la stack di annullamento e sarà probabilmente bisogno di essere perfezionati per garantire adatto per tutti gli scenari. È molto di più, un'opzione se.

È necessario modificare il codice per voi. Si tratta di ossa nude e lavora in un senso fondamentale.

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

Per fare questo lavoro, creare un intervallo denominato su entrambe le colonne chiave nelle vostre tabelle di ricerca. I numeri (cioè, 19, 33, 43, etc.) Ho denominato "Misura1" e il 4 personaggio di parole (ad esempio, Exec, Folg, Disp, etc.) Ho denominato "Intervallo2".

Per l'intervallo di celle che si desidera eseguire il controllo di convalida, ho chiamato il "ValidationRange".

Lanciare la macro nel foglio di lavoro che è l'intervallo che si desidera convalidare e vedere come va.

2021-11-23 23:24:43

Grazie!! Stavo pensando a qualcosa di simile. Cercherò. Grazie ancora!
Henrique Monteiro

@HenriqueMonteiro, ha funzionato per voi?
Skin

In altre lingue

Questa pagina è in altre lingue

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