Ingresar datos por código segun tabla.

14/04/2010 - 00:42 por Francesca Brasso | Informe spam
Hola,
En la columna B desde B1 adelante se ingresan varias veces al día valores
numéricos enteros aleatorios que varían aprox. entre 30 y 450.
He puesto y copiado hacia abajo en la columna C desde C1 la siguiente
fórmula
=SI(B1="","",SI(B1<`,0,SI(B1<€,3,SI(B1<0,4,SI(B1<0,6,SI(B1<1,8,SI(B1< 0,10,SI(B1<%0,11,SI(B1<00,12,SI(B1>01,14))))))))))
para que en la celda al lado del número ingresado en B me ponga un número de
acuerdo a la siguiente tabla:
<60:0
61-80: 3
81-120: 4
121-160: 6
161-181: 8
182-200: 10
201-250: 11
251-300:12

301:14


El asunto es que a veces, dependiendo de ciertos factores, es necesario
cambiar el valor de la tabla, entonces lo que quiero, pero estoy perdida, es
ingresar el valor de la columna C por código de forma tal que al escribir el
valor en B aparezca un InputBox (o algo parecido) que me "ofrezca" el valor
original pero pueda cambiarlo antes de ingresarlo a la celda
correspondiente.
(Algo así como lo que se usa con el folio de las facturas)
Saludos
Francesca

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/04/2010 - 01:18 | Informe spam
hola, Francesca !

- cuales serian los "ciertos factores" por los que tendrias que cambiar "la tabla" ?
y cuales serian los cambios que "segun factores" (ingresados en la columna B) harias a "la tabla" ?
entiendo que "la tabla" es lo que actualmente solucionas en la columna C con "la formula" ?
y cual es la relacion para la discontinua-continuidad de "la tanbla" ? {0;3;4;6;8;10;11;12;14}

- por que no "dejar" que el usuario cambie lo que necesite cambiar sin necesidad de inputboxes previos ?

saludos,
hector.

__ OP __
En la columna B desde B1 adelante se ingresan varias veces al dia valores numericos
enteros aleatorios que varían aprox. entre 30 y 450.
He puesto y copiado hacia abajo en la columna C desde C1 la siguiente formula
=SI(B1="","",SI(B1<`,0,SI(B1<€,3,SI(B1<0,4,SI(B1<0,6,SI(B1<1,8,SI(B1< 0,10,SI(B1<%0,11,SI(B1<00,12,SI(B1>01,14))))))))))
para que en la celda al lado del numero ingresado en B me ponga un numero de acuerdo a la siguiente tabla:
<60:0
61-80: 3
81-120: 4
121-160: 6
161-181: 8
182-200: 10
201-250: 11
251-300:12
301:14


El asunto es que a veces, dependiendo de ciertos factores, es necesario cambiar el valor de la tabla
entonces lo que quiero, pero estoy perdida, es ingresar el valor de la columna C por codigo
de forma tal que al escribir el valor en B aparezca un InputBox (o algo parecido) que me "ofrezca" el valor original
pero pueda cambiarlo antes de ingresarlo a la celda correspondiente.
(Algo asi como lo que se usa con el folio de las facturas)
Respuesta Responder a este mensaje
#2 Francesca Brasso
14/04/2010 - 01:45 | Informe spam
- cuales serian los "ciertos factores" por los que tendrias que cambiar "la
tabla" ?
La hora en que se ingresa el valor, la temperatura ambiente.

y cuales serian los cambios que "segun factores" (ingresados en la columna
B) harias a "la tabla" ?
Queda a la discreción de quien ingresa el valor.

y cual es la relacion para la discontinua-continuidad de "la tanbla" ?
{0;3;4;6;8;10;11;12;14}
No hay ninguna relación entre los números de la tabla.

- por que no "dejar" que el usuario cambie lo que necesite cambiar sin
necesidad de inputboxes previos ?
Porque se le puede olvidar cambiarlo y ya estará ingresado en la celda.

El tema es que, por ejemplo a veces se deberá cambiar el 3 por un 2 o un 1,
o el 4 por un 3 o un 2, o el 6 por un 5 o un 7 o un 8 o quizá el 10 por un 9
o un 12, etcétera.
Lo que necesito es que no se ingrese el número hasta que el usuario lo
acepte (conscientemente) o lo cambie por el número que él quiera. Sí, tal
como suena, el que él quiera.
La tabla es sólo una guía, no es algo rígido, es casi un recordatorio
solamente.
Saludos
Francesca


"Héctor Miguel" escribió en el mensaje de
noticias news:e914X%
hola, Francesca !

- cuales serian los "ciertos factores" por los que tendrias que cambiar
"la tabla" ?
y cuales serian los cambios que "segun factores" (ingresados en la
columna B) harias a "la tabla" ?
entiendo que "la tabla" es lo que actualmente solucionas en la columna C
con "la formula" ?
y cual es la relacion para la discontinua-continuidad de "la tanbla" ?
{0;3;4;6;8;10;11;12;14}

- por que no "dejar" que el usuario cambie lo que necesite cambiar sin
necesidad de inputboxes previos ?

saludos,
hector.

__ OP __
En la columna B desde B1 adelante se ingresan varias veces al dia valores
numericos
enteros aleatorios que varían aprox. entre 30 y 450.
He puesto y copiado hacia abajo en la columna C desde C1 la siguiente
formula
=SI(B1="","",SI(B1<`,0,SI(B1<€,3,SI(B1<0,4,SI(B1<0,6,SI(B1<1,8,SI(B1< 0,10,SI(B1<%0,11,SI(B1<00,12,SI(B1>01,14))))))))))
para que en la celda al lado del numero ingresado en B me ponga un numero
de acuerdo a la siguiente tabla:
<60:0
61-80: 3
81-120: 4
121-160: 6
161-181: 8
182-200: 10
201-250: 11
251-300:12
301:14


El asunto es que a veces, dependiendo de ciertos factores, es necesario
cambiar el valor de la tabla
entonces lo que quiero, pero estoy perdida, es ingresar el valor de la
columna C por codigo
de forma tal que al escribir el valor en B aparezca un InputBox (o algo
parecido) que me "ofrezca" el valor original
pero pueda cambiarlo antes de ingresarlo a la celda correspondiente.
(Algo asi como lo que se usa con el folio de las facturas)




Respuesta Responder a este mensaje
#3 Héctor Miguel
14/04/2010 - 02:50 | Informe spam
hola , Francesca !

prueba copiando/pegando (o escribiendo) los siguientes procedimientos en el modulo de codigo de "esa" hoja

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

== inicio del codigo =Private Const Tabla As String = "{0,0;61,3;81,4;121,6;161,8;182,10;201,11;251,12;301,14}"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("b:b")) Is Nothing Then ActiveCell.Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target = "" Then Target.Offset(, 1).ClearContents: Exit Sub
Dim Sugerido As Integer, Respuesta As String
Sugerido = Evaluate("vlookup(" & Target.Value & "," & Tabla & ",2)")
Respuesta = Trim(InputBox( _
"La sugerencia para el valor ingresado (" & Target.Value & ") es: " & Sugerido & vbCr & _
"Indica si es aplicable o modifica como corresponda..." & vbCr & vbCr & _
"(puedes cancelar para aceptar la sugerencia)", "Accion REQUERIDA !!!", Sugerido))
Target.Offset(, 1) = IIf(Respuesta <> "", Respuesta, Sugerido)
End Sub
== fin del codigo =
__ OP __
y cuales serian los cambios que "segun factores" (ingresados en la columna B) harias a "la tabla" ?


Queda a la discreción de quien ingresa el valor.

y cual es la relacion para la discontinua-continuidad de "la tabla" ? {0;3;4;6;8;10;11;12;14}


No hay ninguna relación entre los números de la tabla.

- por que no "dejar" que el usuario cambie lo que necesite cambiar sin necesidad de inputboxes previos ?


Porque se le puede olvidar cambiarlo y ya estará ingresado en la celda.

El tema es que, por ejemplo a veces se deberá cambiar el 3 por un 2 o un 1, o ...
Lo que necesito es que no se ingrese el numero hasta que el usuario lo acepte (conscientemente)
o lo cambie por el número que el quiera. Si, tal como suena, el que el quiera.
La tabla es solo una guia, no es algo rigido, es casi un recordatorio solamente.
Respuesta Responder a este mensaje
#4 Francesca Brasso
14/04/2010 - 16:34 | Informe spam
Hola Héctor, fenómeno, es lo que quería conseguir.
Igual no entiendo el código, si pudieras explicarlo linea por linea sería
genial, así voy aprendiendo para la próxima...
Muchas gracias
Saludos
Francesca


"Héctor Miguel" escribió en el mensaje de
noticias news:
hola , Francesca !

prueba copiando/pegando (o escribiendo) los siguientes procedimientos en
el modulo de codigo de "esa" hoja

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

== inicio del codigo => Private Const Tabla As String =
"{0,0;61,3;81,4;121,6;161,8;182,10;201,11;251,12;301,14}"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("b:b")) Is Nothing Then ActiveCell.Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target = "" Then Target.Offset(, 1).ClearContents: Exit Sub
Dim Sugerido As Integer, Respuesta As String
Sugerido = Evaluate("vlookup(" & Target.Value & "," & Tabla & ",2)")
Respuesta = Trim(InputBox( _
"La sugerencia para el valor ingresado (" & Target.Value & ") es: " &
Sugerido & vbCr & _
"Indica si es aplicable o modifica como corresponda..." & vbCr & vbCr &
_
"(puedes cancelar para aceptar la sugerencia)", "Accion REQUERIDA !!!",
Sugerido))
Target.Offset(, 1) = IIf(Respuesta <> "", Respuesta, Sugerido)
End Sub
== fin del codigo =>
__ OP __
y cuales serian los cambios que "segun factores" (ingresados en la
columna B) harias a "la tabla" ?


Queda a la discreción de quien ingresa el valor.



y cual es la relacion para la discontinua-continuidad de "la tabla" ?
{0;3;4;6;8;10;11;12;14}


No hay ninguna relación entre los números de la tabla.



- por que no "dejar" que el usuario cambie lo que necesite cambiar sin
necesidad de inputboxes previos ?


Porque se le puede olvidar cambiarlo y ya estará ingresado en la celda.



El tema es que, por ejemplo a veces se deberá cambiar el 3 por un 2 o un
1, o ...
Lo que necesito es que no se ingrese el numero hasta que el usuario lo
acepte (conscientemente)
o lo cambie por el número que el quiera. Si, tal como suena, el que el
quiera.
La tabla es solo una guia, no es algo rigido, es casi un recordatorio
solamente.




Respuesta Responder a este mensaje
#5 Héctor Miguel
15/04/2010 - 01:24 | Informe spam
hola, Francesca !

... no entiendo el código, si pudieras explicarlo linea por linea... asi voy aprendiendo para la praxima...



sale el mismo codigo comentado por linea de ejecucion...
saludos,
hector.

' primero, definimos una variable constante asemejando un rango de _
dos columnas (coma en vba) y varias filas (punto y coma en vba) para usar un buscarv(...
Private Const Tabla As String = "{0,0;61,3;81,4;121,6;161,8;182,10;201,11;251,12;301,14}"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' si el usuario selecciona un rango que incluya celdas de la columna B forzamos a una sola celda
If Not Intersect(Target, Range("b:b")) Is Nothing Then ActiveCell.Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
' si el cambio no es en la columna B (2) nos saltamos todo el codigo
If Target.Column <> 2 Then Exit Sub
' si el cambio en la columna B (2) ha sido borrar o eliminar _
limpiamos tambien el dato en la clumna C y nos saltamos el resto del codigo
If Target = "" Then Target.Offset(, 1).ClearContents: Exit Sub
' declaramos dos variables para ...
Dim Sugerido As Integer, Respuesta As String
' determinar que sugerir al usuario por el ingreso con un buscarv(<ingreso>,tabla,col2)
Sugerido = Evaluate("vlookup(" & Target.Value & "," & Tabla & ",2)")
' preguntar si confirma o cambia la sugerencia ...
Respuesta = Trim(InputBox( _
"La sugerencia para el valor ingresado (" & Target.Value & ") es: " & Sugerido & vbCr & _
"Indica si es aplicable o modifica como corresponda..." & vbCr & vbCr & _
"(puedes cancelar para aceptar la sugerencia)", "Accion REQUERIDA !!!", Sugerido))
' finalmente depositamos en la columna C la respuesta (modificada o sugerida)
Target.Offset(, 1) = IIf(Respuesta <> "", Respuesta, Sugerido)
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida