¿Macro desde función? ¿Se puede?

Tengo una función más o menos así:
=Si(f5>0,"run macro 1","run macro 2")
Donde f5 es un número igual o mayor a cero
"run macro 1" <- aquí quiero que ejecute una macro que ya existe en este libro
Si es falso la circunstancia, entonces que ejecute la macro 2...
¿Se puede hacer esto?
La otra es, la función "SI" toma el signo de "mayor que" como mayor o igual, ¿o solamente si es mayor?

1 Respuesta

Respuesta
1
Empezare con la segunda, que es más fácil:
Cuando pones > significa mayor solamente, si quieres decir mayor o igual se pone >= todo junto, tal cual.
Luego, para hacer lo que dices, te recomiendo que no lo hagas con una función en una celda ya que creo que no se puede. La manera de hacerlo es la siguiente:
Vete al editor de VB (Alt+F11) y haz doble clic en la Hoja1 (dentro de la ventana Proyecto)
Luego escribe el siguiente código dentro de la ventana grande de la derecha:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$F$5" Then
If Target.Value > 5 Then
nombremacro1
Else
nombremacro2
End If
End If
End Sub
A ver... te platico un poco más para terminar con esto...
Lo que estoy haciendo es un control de inventario.
Entradas, Salidas, Inventario, BD Entradas y BD Salidas
Donde BD Entradas y BD Salidas son solamente hojas donde se guarda cada movimiento.
Lo de la ejecución de la macro es para hacer esto (es como yo lo resolví)
En la forma de entrada puse 1 botón con una macro que va a la base de datos correspondiente y guarda el mov. Después va a inventario (aquí entra mi prob) y checa, buscando un valor, que no exista el producto que está entrando, si no lo encuentra regresa el valor cero a una celda, así la condicionante que te pedí checaría si es cero, entonces copia todo, si es mayor a cero, entonces suma (ya sabré como hacerle) el número de artículos que estén entrando.
Todo esto para decirte que el valor de la celda f5 no siempre está ocupado, sólo se ocupa cuando presionas el botón que ejecuta la macro arriba descrita.
Es por eso que necesito que se ejecuten sólo después de haber oprimido el botón y yap... ¿me dí a entender?
Gracias de antemano
Pues te recomiendo, que pongas este otro código, al final del que ya tienes en el botón:
If range("f5").Value > 5 Then
nombremacro1
Else
nombreMacro2
End If
Hasta pronto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas