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)
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.