Ayuda con input box

Hola en una hoja excel tengo una serie de nombres (desde la fila 4 a la fila 130). Y quisiera hacer lo siguiente:
Si, por ejemplo, la celda BG4 cambia el valor de FALSO a VERDADERO, tendría que aparecer un imputbox en el que introduzco un valor numérico y al pulsar sobre aceptar del inputbox el valor introducido quedase en la celda BF 4.
Es decir, el valor introducido siempre se guardará en la fila que ha cambiado de FALSO a VERDADERO.
Muchas gracias.
Respuesta
1
Si la celda BG4 cambiará de Falso a Verdadero debo suponer entonces que esa celda tiene una fórmula, ¿es correcto?
Si es así, no hay manera de controlarlo. Excel no detecta cambios en celda cuando se trata de resultado de fórmulas.
Lo que sí se podría hacer es controlar el cambio en otras celdas que afectarán a la fórmula y evaluarla.
Me explico con este ejemplo:
Si BG4 = SI(A4>B4;"VERDADERO";"FALSO")
Puedo controlar lo que ingreso en A4 o B4 y evaluar cuál es el mayor y así sabré si la celda se pasa a VERDADERO
Espero que el ejemplo te sirva para evaluar otras posibilidades.
Hola Elsamatilde:
En realidad, cada una de las celdas de la columna BG cambian de falso a verdadero porque están vinculadas a sendas casillas de verificación, con lo que podría asignarlas a cada una una macro para que apareciese inputbox; pero como son muchas casillas de verificación, son muchas las macros que he de escribir. Mi pregunta es:
¿Podemos crear una sola macro que, al activar alguna de las casillas de verificación, me lance un inputbox y que, en función de la casilla de verificación que hayamos activado, el valor numérico que yo introduzca en este se le asigne a la celda BH correspondiente?
Gracias por tu atención y tu ayuda.
Si, es posible crear 1 macro para todas las casillas, pero además cada casilla tendrá su propia rutina.
No necesitas vincular a una celda, salvo que luego necesites los datos de la col BG para otra cosa.
Clic derecho sobre cada control, Ver código y al entrar al editor escribí rutinas como esta:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then i = 1: Call macroInput
End Sub
Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then i = 2: Call macroInput
End Sub
Luego insertá un módulo y allí copiá esto:
Public i As Byte
Sub macroInput()
nro = InputBox("Ingrese cifra")
ActiveSheet.Range("BH" & i) = nro
End Sub
----------------------------------
Es decir, que es la misma rutina macroInput para todos, pero va variando el nombre del control. Además la variable i tendrá el nro de línea que corresponda. En este ejemplo si presionan el CheckBox1 el dato se colocará en fila 1, para Checkbox2 en fila 2 y así.
Si algo no te quedó claro (porque aquí se amontona el texto al enviar la respuesta), podes solicitarme el ejemplo al correo que encontrarás en mi sitio.
Sdos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas