Dos de validación de datos en la misma celda

0

Pregunta

Necesito hacer una validación de datos para que el usuario no misstype la información que llega a la base de datos. La información de la celda debe ser llenado con dos criterios, la primera parte es la condición de trabajador, y la información de segunda a la derecha después de que en la misma celda de código de contrato que se está trabajando. ¿Cómo puedo hacer una validación de datos con este dos de información dispuestos en dos diferentes tablas? He intentado algo como =Y(a la IZQUIERDA(K3:Q999;4)=S3:S13;a la DERECHA(K3:Q999;2)=S15:S49)

introduzca la descripción de la imagen aquí

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

Mejor respuesta

-1

Todo depende de cómo desea aplicar la validación.

Si usted quiere que sea en la célula en un desplegable, a continuación, estándar de validación sólo funcionará si usted tiene cada combinación posible en su propio rango, por ejemplo, ...

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

Si usted quiere, siempre se puede hacer uso de VBA. Una palabra de precaución sin embargo, esto invalidará la pila de deshacer y debe ser refinado para garantizar que es apto para todos los escenarios. Es mucho más que una opción, aunque.

Necesita cambiar este código para adaptarse a usted. Es esqueleto y funciona en un sentido básico.

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

Para realizar este trabajo, crear un rango con nombre en ambas columnas de clave en sus tablas de búsqueda. Los números (es decir, 19, 33, 43, etc.) He llamado "Rango1" y el de 4 caracteres, palabras (por ejemplo, Exec, Folg, Disp, etc.) He llamado "Rango2".

Para el rango de celdas que desea ejecutar la comprobación de validación para, me pidió que "ValidationRange".

Tirar esa macro en la hoja de cálculo que tiene el rango que desea validar y ver cómo va.

2021-11-23 23:24:43

Gracias!! Yo estaba pensando en algo como eso. Voy a intentar. Gracias de nuevo!
Henrique Monteiro

@HenriqueMonteiro, hizo el trabajo para usted?
Skin

En otros idiomas

Esta página está en otros idiomas

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