URGENTE - INQUIETUD RESTRICCIÓN INCORPORACIÓN DATOS

23/07/2008 - 18:17 por MARY N. | Informe spam
Hola Pedro

En verdad no dudo que Héctor Miguel sea un sabio en estos temas, sin
embargo, considero que la forma en a veces el contesta los mensajes no es la
correcta para una persona que se dedica a multiplicar sus conocimientos con
los demás, una cosa es la sabiduría y otra es la petulancia y la sobrades.
Pero en fin allá cada uno con su manera de ser.

Igual, si a ti no te molesta me gustaría que me colaboraras con lo
siguiente, pues cada vez que realizó una nueva parametrización en mi matriz,
me surgen nuevas dudas, como las siguientes:
1. En la columna A se definió para las sedes, tengo en la celda A2 la lista
desplegable de las sedes, en cuya validación coloqué la siguiente fórmula:
=SI(B2="";SEDES;B2); en la columna B la idea es identificar los nombres de
los funcionarios, en la celda B2 tengo la siguiente fórmula =INDIRECTO(A2), y
en la columna C la idea es identificar el número de documento de identidad
que automáticamente traiga el dato del No. de cédula o pasaporte y la fórmula
contenida en C2 es =SI(B2="";"";SI(A2="";"";BUSCAR(B2;'LISTAS
DESPLIEGUES'!L:L;'LISTAS DESPLIEGUES'!M:M))) indicando de donde debe tomar
los datos, para que los traiga directamente de un listado sin que haya
necesidad de digitarlos. No obstante, aunque en la validación se tiene
habilitado la opción de límite, cuando intento escribir un dato tanto de sede
como de nombre de funcionario la matriz no me restringue la entrada de datos
y me permite colocar un valor diferente al de la lista desplegable. Qué debo
hacer para que esto no suceda.

2. Cómo hago para en el caso que quien diligencia la matriz, se equivoque de
sede, automaticamente la matriz le muestre un error en la columna del nombre
del funcionario, el anterior planteamiento porque en una prueba, se
seleccionó la sede, se seleccionó el funcionario para dicha sede y él
automaticamente trae el documento de identidad, pero si quisiera cambiar la
sede, lo cual implica cambiar el nombre del funcionario porque cada
funcionario está asignado a una sede en particular y no puede figurar en más
de una sede, sin embargo una vez diligenciada toda la fila, si regreso a
cambiar la sede, la matriz simplemente mantiene los datos de nombre y
documento del funcionario que se diligenciaron de manera inicial y no me
muestra que hay un error. Qué hacer para mitigar ese riesgo, que se tenga
información que no corresponde y que no sea ajustada por quien diligencia la
matriz creyendo que los datos están bien???.

3. Adicionalmente, la idea es que en una misma fila se tenga toda la
información requerida del funcionario, pero dado que alguna información debe
ser digitada manualmente, otra seleccionada a través de celdas desplegables y
otra traída automáticamente, mi inquietud radica en cómo hacer para no
permitir que quien diligencie la matriz deje espacios en blanco, y
adicionalmente cómo restringuir para que no pueda iniciar el diligenciamiento
de una segunda fila si no completó todos los campos de la primera fila??.

Espero haber sido más clara que en oportunidades anteriores. De antemano
gracias por tu paciencia y colaboración.

Quedo a la espera de una pronta y oportuna respuesta.

Cordial saludo,

MARY N.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
24/07/2008 - 07:01 | Informe spam
hola, Mary !

1) de la formula que expones en esta parte de esta consulta...
... A2 la lista desplegable de las sedes... validacion... la siguiente formula: =SI(B2="";SEDES;B2)


deduzco que "SEDES" es la referencia a un rango nombrado (probablemente) en otra hoja

2) de la formula que expones en esta otra parte de esta consulta...
... identificar el numero de documento de identidad... y la formula contenida en C2 es
=SI(B2="";"";SI(A2="";"";BUSCAR(B2;'LISTAS DESPLIEGUES'!L:L;'LISTAS DESPLIEGUES'!M:M)))


deduzco (o asumo/supongo) que tu rango anterior ("SEDES") es tambien una referencia a TODA UNA COLUMNA -???-

3) por lo tanto, cuando tu inquietud es que las reglas de validacion "permiten" entrada de datos "no validos"...
... aunque en la validacion se tiene habilitado la opcion de limite
cuando intento escribir un dato tanto de sede como de nombre de funcionario
la matriz no me restringue la entrada de datos y me permite colocar un valor diferente al de la lista desplegable
Que debo hacer para que esto no suceda...


(yo ?) te sugeriria el uso de rangos ESPECIFICOS al asignar los nombres, puesto que...
al incluir celdas VACIAS como origen de una lista en reglas de validacion (intrinsecamente)...
estas "autorizando" entradas aun si no estan "explicitamente" descritas en tu listado (obviio que por las celdas vacias)
y ni siquiera importa si en las reglas de validacion empleas el estilo de "limite" <= OJO

4) para el resto de tu consulta (yo al menos)...
sigo "esperando" que proveas "detalles" en suficiencia (como) para poder (re)construir TU MODELO
(hojas, rangos ESPECIFICOS, formulas utilizadas, etc. etc. etc.)

saludos,
hector.

pd. lamento si lo "extenso" de mis propuestas, "se come" tu tiempo
(imagino que ni siquiera las leiste y mucho menos que hayas visitado las paginas "sugeridas" -?-)
(de todos modos) dejame decirte que (para mi)...
"la prisa de una urgencia"... jamas debiera dejar atras a... "la claridad de la paciencia"
Respuesta Responder a este mensaje
#7 MARY N.
24/07/2008 - 18:10 | Informe spam
Buen día Hector
1. Efectivamente SEDES hace referencia a un rango nombrado, es decir, en la
Hoja 1, se está trabajando el modelo de la matriz, y en la Hoja 2 la cual
denominé LISTAS DESPLIEGUES, se tienen todos los datos de referencia, luego
en el cuadro de nombre una vez seleccionada todas las celdas de las sedes
(Hoja 2 de A2:A16) se le dió el nombre de SEDES y se dió ENTER. Esto lo
realicé gracias a la información que de este foro he recibido. Pero aún así,
sin haber seleccionada celdas vacías y teniendo seleccionada en Validación la
casilla correspondiente a LÍMITE me sigue permitiendo digitar otros datos
distintos a los contemplados en la lista de despliegue. Teniendo en cuenta
todas las fórmulas que te envié y la descripción antes mencionada qué debo
hacer para subsanar ese inconveniente que finalmente se sigue presentando, es
decir, que me permite introducir un dato diferente en la celda A2 donde debo
seleccionar la sede??.


2. Con las fórmulas comentadas en mensaje anterior, una vez seleccionada la
sede y seleccionado el nombre del funcionario la matriz trae automáticamente
el documento de identidad, en caso de querer cambiar de sede, no me lo
permite pues si selecciono la lista desplegable sólo aparece la opción que
inicialmente seleccioné, luego debo borrar el contenido de la celda donde
debo seleccionar el nombre del funcionario para que me permita nuevamente en
la lista desplegable ver la totalidad de las SEDES. Todo lo anterior me
parece perfecto pues es una forma de minimizar el riesgo de que se comentan
errores por parte de quien diligencia la matriz. Pues de lo contrario el me
permitiría cambiar la sede pero no me aparecería ningún mensaje indicándome
que el funcionario que inicialmente seleccioné no pertenece a la nueva sede
seleccionada. Luego esas fórmulas me han funcionado bien por esta
restricción que le comento, pero igual no sé si requiere algún ajuste para
que no me permita incorporar datos diferentes, problema que únicamente ocurre
con la celda correspondiente a la sede.

3. Como la idea es entregar a cada responsable de sede esta matriz para su
total diligenciamiento, quisiera poder restringir el hecho de que no pueda
digitar una fila hasta tanto no haya digitado todas las celdas de la fila
anterior. Los datos que se deben diligenciar por cada fila son: Sedes,
nombre del funcionario, documento de identidad, cargo, sueldo mensual, horas
convenidas, valor hora, horas laboradas, valor a pagar, observaciones,
novedades de personal. Hay algunas que deben ser seleccionadas de listas
desplegables tales como Sedes, nombre del funcionario y novedades del
personal. Otras deben ser digitadas manualmente, tal es el caso de cargo,
sueldo mensual, horas laboradas y observaciones. Y finalmente, están otras
celdas que a partir de unos datos digitados en otras columnas, se
actualizarán automáticamente porque se encuentran formuladas, tales como:
documento de identifidad, valor hora y valor a pagar. Qué hacer para que
quien diligencie la matriz lo haga de manera completa, es decir, para todos
los items de tal manera que no deje ninguna casilla en blanco. Lo que
pretendo es que no pueda iniciar el diligenciamiento de una nueva fila con
todos los datos mencionados anteriormente, hasta tanto no haya completado
todos los datos de la fila anterior. Cómo se debe parametrizar dicha
restricción???. Y adicionalmente para ayudar a quien diligencia la matriz en
la visualización de los errores que aparezca un mensaje y que las casillas
que estén vacías se resalten con un color diferente al de las demás, pero que
una vez sean completados los datos vuelva a su color normal.

Si esto último debe hacerse por macros agradezco que la explicación sea como
para dummies, pues nunca las he manejado y aunque he leído en otras páginas,
no puedo entender cómo se hace, alguien me comentó que debía hacerse con un
comando BeforeSave, pero según lo que leí las restricciones sólo aparecerían
una vez se vaya a guardar el documento, pero no quisiera que fuese así, pues
en algunas sedes se deben diligenciar entre 250 y 350 filas.

Agradezco tu respuesta y te pido el favor de que no supongas ni imagines
cosas, pues he leído las respuestas y he visitado las páginas que me han
recomendado, he seguido paso a paso los ejercicios y ejemplos que allí
plantean, de hecho he realizado dichos ejemplos para verificar que realmente
me funcionen y así poderlos aplicar a lo que requiero, de esta manera he
podido avanzar pues debo reconocer que me han sido de utilidad.

Sin embargo, considero que los malos entendidos de la comunicación es por
crear supuestos sobre lo que las otras personas intentan decir.
Adicioalmente, porque he leido otros mensajes que realmente no son muy
detallados y que mal o bien reciben respuesta sin ninguna restricción, claro
puede darse el caso que las respuestas no puedan ser las más acertadas pues
las preguntas no fueron lo suficientemente concretas, pero igual obtienen una
respuesta. Tal vez estoy "suponiendo" que con todo este va y ven, me sentí
atacada y que finalmente el foro no estaba brindando la intención para el que
fue creado, pero así como ustedes pueden expresar sus suposiciones e
imaginaciones no veo por qué yo no lo pueda hacer.

Bendiciones




"Héctor Miguel" wrote:

hola, Mary !

1) de la formula que expones en esta parte de esta consulta...
> ... A2 la lista desplegable de las sedes... validacion... la siguiente formula: =SI(B2="";SEDES;B2)
deduzco que "SEDES" es la referencia a un rango nombrado (probablemente) en otra hoja

2) de la formula que expones en esta otra parte de esta consulta...
> ... identificar el numero de documento de identidad... y la formula contenida en C2 es
> =SI(B2="";"";SI(A2="";"";BUSCAR(B2;'LISTAS DESPLIEGUES'!L:L;'LISTAS DESPLIEGUES'!M:M)))
deduzco (o asumo/supongo) que tu rango anterior ("SEDES") es tambien una referencia a TODA UNA COLUMNA -???-

3) por lo tanto, cuando tu inquietud es que las reglas de validacion "permiten" entrada de datos "no validos"...
> ... aunque en la validacion se tiene habilitado la opcion de limite
> cuando intento escribir un dato tanto de sede como de nombre de funcionario
> la matriz no me restringue la entrada de datos y me permite colocar un valor diferente al de la lista desplegable
> Que debo hacer para que esto no suceda...
(yo ?) te sugeriria el uso de rangos ESPECIFICOS al asignar los nombres, puesto que...
al incluir celdas VACIAS como origen de una lista en reglas de validacion (intrinsecamente)...
estas "autorizando" entradas aun si no estan "explicitamente" descritas en tu listado (obviio que por las celdas vacias)
y ni siquiera importa si en las reglas de validacion empleas el estilo de "limite" <= OJO

4) para el resto de tu consulta (yo al menos)...
sigo "esperando" que proveas "detalles" en suficiencia (como) para poder (re)construir TU MODELO
(hojas, rangos ESPECIFICOS, formulas utilizadas, etc. etc. etc.)

saludos,
hector.

pd. lamento si lo "extenso" de mis propuestas, "se come" tu tiempo
(imagino que ni siquiera las leiste y mucho menos que hayas visitado las paginas "sugeridas" -?-)
(de todos modos) dejame decirte que (para mi)...
"la prisa de una urgencia"... jamas debiera dejar atras a... "la claridad de la paciencia"



Respuesta Responder a este mensaje
#8 Servando
24/07/2008 - 22:24 | Informe spam
El evento que necesitas es "Worksheet_SelectionChange"

La rutina que te voy a pasar que pregunta celda por celda si ya se lleno la
anterior y puede que esto no sea lo mas eficiente, pero no se como mejorar
esto al no saber si el acomodo en tus celdas tienen alguna secuencia que
permita preguntar por ellas de algun otra forma.

Copia esto y pegala en el codigo de la hoja.
Para entrar haces clic derecho sobre la etiqueta de la hoja y selecciona
"Ver codigo"

En esa hoja pegas el siguiente codigo y lo ajustas a tus necesidades

En mi ejercicio yo considero la validación para las celdas B2, D2, F2, B4,
D4 y F4
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Address
Case Range("D2").Address
If IsEmpty(Range("B2")) Then
Range("B2").Select
MsgBox "NO puedes avanzar si dejas vacia la celda B2"
End If
Case Range("F2").Address
If IsEmpty(Range("D2")) Then
Range("D2").Select
MsgBox "NO puedes avanzar si dejas vacia la celda D2"
End If
Case Range("B4").Address
If IsEmpty(Range("F2")) Then
Range("F2").Select
MsgBox "NO puedes avanzar si dejas vacia la celda F2"
End If
Case Range("D4").Address
If IsEmpty(Range("B4")) Then
Range("B4").Select
MsgBox "NO puedes avanzar si dejas vacia la celda B4"
End If
Case Range("F4").Address
If IsEmpty(Range("D4")) Then
Range("D4").Select
MsgBox "NO puedes avanzar si dejas vacia la celda D4"
End If
End Select

End Sub

Esto solo resuelve la validación para que no se salten las celdas que tienen
que llenar.

Saludos
Servando Villalon
Respuesta Responder a este mensaje
#9 Servando
24/07/2008 - 22:50 | Informe spam
Uppps, creo que el codigo que te puse no es ni de cerca lo más recomendable
para lo que quieres (al menos no como esta programado), acabo de releer tus
comentarios y vi que mencionas que "algunas sedes se deben diligenciar entre
250 y 350 filas. ", lo cual haria que esa rutina fuera totalmente ineficiente.


Saludos
Servando Villalon
Respuesta Responder a este mensaje
#10 Héctor Miguel
24/07/2008 - 22:52 | Informe spam
hola, Mary ! (entre tus lineas)

1... SEDES... referencia a un rango nombrado... en la Hoja... (LISTAS DESPLIEGUES)... (Hoja 2 de A2:A16)
... aun asi, sin haber seleccionada celdas vacias y teniendo... en Validacion la casilla... LIMITE
me sigue permitiendo digitar otros datos distintos a los contemplados en la lista de despliegue...
Teniendo en cuenta todas las formulas que te envie y la descripcion antes mencionada
que debo hacer para subsanar ese inconveniente que finalmente se sigue presentando
es decir, que me permite introducir un dato diferente en la celda A2 donde debo seleccionar la sede??



podrias cambiar "la forma" en que asignas la regla de validacion, ya que (segun tu mensaje anterior)

a) mencionas que estas usando una formula (regla de validacion personalizada): [A2] =SI(B2="";SEDES;B2)
y establecer una regla de validacion (exclusivamente) "Por Lista" (NO por formula en la categoria de personalizada)
indicando solo el nombre del rango en el cuadro de referencia para el origen de la lista (=sedes), de lo contrario...

b) cuando la celda B2 ya tenga algun dato, la lista mostrara solo la segunda parte de la funcion =si(... (el contenido de B2)

c) PERO... "perderias" la restriccion inherente que mencionas en el inciso b) punto 2 siguiente :-((

2. Con las formulas comentadas en mensaje anterior, una vez seleccionada la sede y seleccionado el nombre del funcionario
la matriz trae automaticamente el documento de identidad, en caso de querer cambiar de sede, no me lo permite
pues si selecciono la lista desplegable solo aparece la opcion que inicialmente seleccione



a) comentado en el inciso b) del punto anterior ;)

luego debo borrar el contenido de la celda donde debo seleccionar el nombre del funcionario
para que me permita nuevamente en la lista desplegable ver la totalidad de las SEDES.
Todo lo anterior me parece perfecto pues es una forma de minimizar el riesgo de que se comentan errores
por parte de quien diligencia la matriz. Pues de lo contrario el me permitiria cambiar la sede
pero no me apareceria ningun mensaje indicandome que el funcionario que inicialmente seleccione
no pertenece a la nueva sede seleccionada.



b) esta "forma" (me parece que) es una buena alternativa para "obligar" al usuario a volver a seleccionar si cambia "algo" :))
solo la combinaria con algun formato condicional para que "visualmente" pueda detectar (posibles) errores/omisiones/...

Luego esas formulas me han funcionado bien por esta restriccion que le comento
pero igual no se si requiere algun ajuste para que no me permita incorporar datos diferentes
problema que unicamente ocurre con la celda correspondiente a la sede.



c) (creo que) puede aplicarse el mismo comentario anterior -?-

3. Como la idea es entregar a cada responsable de sede esta matriz para su total diligenciamiento
quisiera poder restringir el hecho de que no pueda digitar una fila hasta tanto no haya digitado todas las celdas de la fila anterior.
Los datos que se deben diligenciar por cada fila son:
Sedes, nombre del funcionario, documento de identidad, cargo, sueldo mensual, horas convenidas, valor hora, horas laboradas
valor a pagar, observaciones, novedades de personal.
... algunas... deben ser seleccionadas de listas... como Sedes, nombre del funcionario y novedades del personal.
Otras deben ser digitadas... cargo, sueldo mensual, horas laboradas y observaciones.
Y finalmente, estan otras celdas que a partir de unos datos digitados en otras columnas, se actualizaran automaticamente
porque se encuentran formuladas...: documento de identifidad, valor hora y valor a pagar.



3) considera que las reglas de validacion solo funcionan para entradas "directas" por parte del usuario (NO donde hay formulas)...
y que NO puedes aplicar mas de una regla por celda/fila/columna y en una celda con validacion puede ser "borrado" su contenido

Que hacer para que quien diligencie la matriz lo haga de manera completa, es decir, para todos los items
de tal manera que no deje ninguna casilla en blanco.
Lo que pretendo es que no pueda iniciar el diligenciamiento de una nueva fila
... hasta tanto no haya completado todos los datos de la fila anterior.
Como se debe parametrizar dicha restriccion???.



a) "determina" en cual/es columna/s podrias utilizar alguna regla de validacion para restringir entradas si no ha dato en la fila anterior

b) si "suponemos" que en la columna A el usuario no podra hacer entradas hasta que toda fila anterior (columna A) NO este vacia -???-
prueba con la siguiente regla de validacion (seleccionando toda la columna A y usando la validacion personalizada por formula)
formula: -> =CONTARA(A:A)=FILA()
analiza el "comportamiento" cuando luego de haberse cumplido esta regla, se BORRA el contenido de alguna fila anterior <= OJO
(probablemente podrias "personalizar" el mensaje de error para indicar al usuario "que, como, por que, etc. ?)

Y adicionalmente para ayudar a quien diligencia la matriz en la visualizacion de los errores
que aparezca un mensaje y que las casillas que esten vacias se resalten con un color diferente al de las demas
pero que una vez sean completados los datos vuelva a su color normal.



c) otra vez... "tengo que..." suponer (p.e.) que quisieras resaltar las celdas en las columnas A:H (por cada fila a partir de la fila 2) -???-
prueba los formatos condicionales / condicion por formula / (selecciona primero el rango aplicable y la celda activa que sea A2)
con una formula +/- como la siguiente:
=Y(A2="";SUMAPRODUCTO(LARGO($A2:$H2))>0)
aplica formato (color, borde, etc.) segun tu preferencia y ve que pasa cuando se van (re)llenando celdas "en su fila"

Si esto ultimo debe hacerse por macros ...



=> revisa la propuesta de Servando

saludos,
hector.

p.d. disculpa que sea ("impertinente" ?... por) insistente... pero voy a insistir (nuevamente) en que faltan datos :-((
si no "necesitas" que se hagan suposiciones... DEBERAS PROVEER los detalles que las eviten ;)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida