Identificar a que registro de una tabla corresponde un número ingresado desde un TextBox cuyo campo es un rango numérico

24/04/2007 - 00:53 por Insumos | Informe spam
Hola Gente del Foro:

Espero que todos esten muy bien. Les paso a contar mi problemita...
En una hoja llamada "Control" hay un tabla para el control de talonarios de
comprobantes. O sea, cada registro de la tabla representa un talonario que
tiene una numeración correlativa desde un número hasta el último. Tiene
cargados los siguientes campos en las columnas A a la D: Desde (es el primer
número del talonario), Hasta (es el último número del Talonario), Sucursal
(es el nombre de la sucursal a la que se envío el Talonario) y Recibió (es
la persona que recibió el talonario). Por ejemplo:

Desde Hasta Sucursal Recibió
1 50 Buenos Aires José
51 100 Mar del Plata Emanuel
101 150 Córdoba Marcos
151 200 Buenos Aires Ricardo
201 250 Rosario Juan
etc, etc

Ahora, en un UserForm yo tengo un TextBox en el que los usuarios ponen un
número de comprobante cualquiera, y lo que quiero es que en un Label
aparezca la Sucursal en la que se encuentra ese comprobante y en otro Label
quién recibió el mismo. Por ejemplo:
El usuario ingresa en el TextBox1 el número 132 y el resultado es que en el
Label1 aparece "Córdoba" y en el Label2 aparece "Marcos" (esto porque el
comprobante 132 es parte del talonario que va del 101 al 150 y se encuentra
en la sucursal "Córdoba" habiendo sido recibido por "Marcos", según los
datos del ejemplo).
Estuve probando algunas cosas con el evento Change para el TextBox1, pero lo
que no logro hacer es que el código se de cuenta, por ejemplo, de que 132
corresponde al registro que en la columna A contiene 101 y en la B 150.
Espero haberme expresado bien.
Desde ya muchas gracias!!
Saludos.

Mariano



CONTADURIA
 

Leer las respuestas

#1 Ivan
24/04/2007 - 02:09 | Informe spam
On 24 abr, 00:53, "Insumos" wrote:
Hola Gente del Foro:

Espero que todos esten muy bien. Les paso a contar mi problemita...
En una hoja llamada "Control" hay un tabla para el control de talonarios de
comprobantes. O sea, cada registro de la tabla representa un talonario que
tiene una numeración correlativa desde un número hasta el último. Tiene
cargados los siguientes campos en las columnas A a la D: Desde (es el primer
número del talonario), Hasta (es el último número del Talonario), Sucursal
(es el nombre de la sucursal a la que se envío el Talonario) y Recibió (es
la persona que recibió el talonario). Por ejemplo:

Desde Hasta Sucursal Recibió
1 50 Buenos Aires José
51 100 Mar del Plata Emanuel
101 150 Córdoba Marcos
151 200 Buenos Aires Ricardo
201 250 Rosario Juan
etc, etc

Ahora, en un UserForm yo tengo un TextBox en el que los usuarios ponen un
número de comprobante cualquiera, y lo que quiero es que en un Label
aparezca la Sucursal en la que se encuentra ese comprobante y en otro Label
quién recibió el mismo. Por ejemplo:
El usuario ingresa en el TextBox1 el número 132 y el resultado es que en el
Label1 aparece "Córdoba" y en el Label2 aparece "Marcos" (esto porque el
comprobante 132 es parte del talonario que va del 101 al 150 y se encuentra
en la sucursal "Córdoba" habiendo sido recibido por "Marcos", según los
datos del ejemplo).
Estuve probando algunas cosas con el evento Change para el TextBox1, pero lo
que no logro hacer es que el código se de cuenta, por ejemplo, de que 132
corresponde al registro que en la columna A contiene 101 y en la B 150.
Espero haberme expresado bien.
Desde ya muchas gracias!!
Saludos.

Mariano

CONTADURIA



hola Mariano,

a la espera de una solucion mejor por parte de algun experto, una
forma de hacer lo que buscas creo que podria ser algo parecido a esto:


suponiendo que los talonarios tienen siempre el nº de talones que
expones (50), la fila uno tiene los titulos de columna y los datos
empiezan en la 2, en el evento Change del combo pon

dim Celda as range
with worksheets("hoja_de_la_lista")
if .[a2]="" then exit sub
for each celda in .range("a2:a" & .[a65536].end(xlup).row)
if celda <= val(TuTextBox) and val(TuTextBox) < celda + 49 then _
TuLabel = celda.offset(,2): exit sub
next
end with

solo dos apuntes:

1º) ten en cuenta que segun creo, todo (o al menos los valores
numericos) lo que entra en un textbox se convierte en texto, luego
para compararlo con otro numero deberas volver a convertirlo en
numero, bien con val, bien con otro convertidor de tipos..

2º) deberias intentar hacer una validacion de que 'lo introducido' en
el textbox sea efectivamente un nº (creo recordar que en el foro hay
bastantes consultas al respecto, puedes probar con el buscador), o en
su defecto incluir algun control de errores tipo 'If
isnumeric(val(tutextbox))= false then msgbox "Tienes que introducir un
nº" o similar

bueno echale un ojo a ver que tal y ten cuidado pues esta escrito aqui
en el foro y puedo haber metido la pata al escribir algun termino.

en cualquier caso por ahi pueden ir los tiros, aunque como te
comentaba seguro que hay formas mucho mejores/rapidas, bien con find,
match o similar. Si es asi espero que alguien se anime a comentarlo

un saludo y hasta pronto
Ivan

PD: si prefiere compara por las dos columnas cambia->

and val(TuTextBox) < celda + 49

por->

and val(TuTextBox) < celda.offset(,1)

Preguntas similares