Quisiera ayuda de alguien, ya que creo que este problema requiere VB. Básicamente tengo una CELDA (A4) donde las personas ingresarán valores para descubrir los cálculos correspondientes que se muestran a continuación.
Sin embargo, quiero agregar una función adicional donde los valores populares se ingresan automáticamente en esa misma celda (A4).
Las celdas E7 y E8 recibirán información y la multiplicarán por 960 (E7) o 765 (E8) y transferirán ese valor a la celda (A4) para que el resto de las fórmulas se actualicen correctamente.
Básicamente, haga que el usuario ingrese las bolsas directamente en A4 o ingrese el número de contenedores en E7 o E8.
** Aquí es donde tengo el problema porque cuando ingreso una fórmula en A4, se elimina una vez que ingresa un valor directamente en ella.
** También tenga en cuenta que el resultado de E7 y E8 debe mostrarse (en A4) ya que también lo necesito.
Mi hoja:
Respuestas:
Puede usar una función de cambio de hoja de trabajo en vba. Algo como
Cada vez que la hoja cambia, verifica si la celda cambiada fue e7 o e8. Si fuera así pone la fórmula
en la celda A4. Si luego coloca un valor en la celda A4, permanecerá hasta que cambie de nuevo e7 o e8. Es posible que deba ajustarse para que haga exactamente lo que desea, pero la idea está ahí.
Esto iría en el objeto de la hoja de trabajo debajo de los objetos de Microsoft Excel en vba.
EDITAR:
Para encajar con los comentarios.
Nuevo código, este solo hará algo si la celda tiene un valor agregado o cambiado, no se ejecutará si elimina un valor.
Luego verifica si e7 fue editado. Si fue e8 se elimina. Si no fuera así, sabemos que e8 fue editado para que e7 se elimine. La fórmula se mantiene igual.
fuente
En los negocios, es común querer usar una fórmula para calcular un valor, pero aún así permitir al usuario anular esa fórmula para casos especiales.
Digamos que A4 representa el costo total y contiene:
donde D8 es el costo unitario y G8 es la cantidad.
Pero para clientes especiales queremos poder cotizar un costo con descuento. Ponemos el costo con descuento en H8 y modificamos la fórmula de esta manera:
Entonces, si queremos la anulación, va en H8; de lo contrario, dejamos H8 en blanco.
fuente
Puede usar VB para cambiar cualquier valor durante la etapa de cálculo.
Pero hacerlo significa que la macro cambiará el valor en A4, y tendrá que agregar algo para saber que el valor no debe actualizarse en un segundo intento.
Entonces, en teoría, es posible, pero es muy poco práctico hacerlo.
Si solo quiere tener una lista desplegable con valores populares, no necesita ir a VB sofisticado. Excel tiene esta función incorporada. Puede hacerlo a través de
data validation
.fuente
La solución que uso donde solo tienes unas pocas celdas en las que quiero que tanto los cálculos como la habilidad ingresen valores para anular la fórmula o eliminar lo que ingresaron y hacer que la fórmula funcione.
Configure su hoja de trabajo como desee. Luego, para la celda que desea anular, configure una celda idéntica en una columna fuera de la pantalla, es decir, la columna az y corte y pegue su ell allí. En esta entrada especial, modifique su fórmula pero con un if para probar si un valor ha sido ingresado en la celda original.
Luego copie esta celda, seleccione su celda original y pegue una imagen vinculada especial.
Ahora seleccione la imagen y agregue un hipervínculo a la celda directamente debajo de ella, use un nombre ranbe si cree que puede moverse debido a la inserción de filas.
Ahora debería encontrar que la celda parece que muestra un valor de la fórmula, cuando hace clic en la celda, el hipervínculo salta a la celda debajo, ingrese el valor y la pantalla cambia, elimínelo y se muestra el valor de la fórmula.
También considere agregar un formato condicional en la celda de fórmula que cambie si hay un valor en la celda mostrada, esto le ayuda a recordar que se ha ingresado un valor manual.
Espero que ayude a configurar formularios que se vean simples y funcionen sin macros.
Terry
fuente