Macro con fórmula

Expertos tengo que sig. Código
sub formulas ()
range("c1").select
activecell.formulalocal = "=si(a1=1;b1)
end sub
Lo que quiero es asignarle un nombre al 1 a la que hace referencia a1, pero asignarle
el nombre mediante una variable para así poder cambiar el nombre por otro cuando yo
quiera y es que la fórmula va a estar más large y en más celdas no solo en c1.

1 respuesta

Respuesta
1
La sintaxis para tu ejemplo es la siguiente:
Sub formulas()
Range("c1").Select
nro = 3
ActiveCell.FormulaLocal = "=si(a1=" & nro & ";b1)"
End Sub
Sdos
Elsa
PD) Más ejemplos de fórmulas en manual 400MacrosPlus
http://aplicaexcel.galeon.com/index.htm
Gracias elsa por contestar mi duda... elsa cuando corro la macro me sale este error
se ha producido el error 1004 en tiempo de ejecución
error definido por la aplicación o el objeto
Si, disculpa, me guié por tu ejemplo y solo te mostré cómo separar los argumentos.
Pero en VBA las funciones se escriben en inglés y con coma como separadores.
Lo correcto entonces sería así (el 0 es opcional, solo para indicarte que la función SI tiene 3 argumentos.
ActiveCell.Formula = "=+IF(A1=" & nro & ",B1,0)"
PD) Con mi manual 400MacrosPlus se adjunta listado completo de las funciones Excel para VBA.
elsa muchas gracias ya me corre perfecto la fórmula
pero en lugar de poner números quiero poner palabra en la celda como por ejemplo
en esta linea nro = 1
como ago para que la fórmula me funcione que en lugar de poner un numero en la hoja de excel ponga la palabra nro y se copie el dato... con la fórmula al poner el numero se
copia... como puedo mejor poner la palabra lo que pasa es que voy a modificar las palabras que usare en la hoja pues quiero mejor solo modificar la variable por ejemplo
tendré esto
nro = 1
sol = 2
surtid = 3
y muchas más palabra pero las voy a cambiar varias veces por otras entonces
en la fórmula en lugar de poner la palabra nro pongo el lumero y así solo modificare la palabra en las variables y la fórmula sigira con el numero... muchas gracias elsa por tu ayuda
No se entiende pero voy a imaginar un par de situaciones:
1 - Si solo querés colocar un nro:
ActiveCell.Formula = "=+IF(A1=" & 2 & ",B1,0)"
2 - Si las variables se generan en otras rutinas, podes llamarlas como 'públicas' y así tomar su valor no importa dónde estén definidas. No tendrías tantas variables sino siempre la misma que irá tomando distintos valores:
ActiveCell.Formula = "=+IF(A1=" & nro & ",B1,0)"
3 - Si debe tomar alguna de las variables (a veces nro, otras sol, etc) al asignar el valor a esas variables, también tenés que enviarla a 1 variable 'pública', para que pueda ser usada en la fórmula (recordá de definirla como pública si se carga en distintos eventos)
sol = 3    entonces mivalor = sol
nro = 2  entonces mivalor = nro  (o el nro directamente)
ActiveCell.Formula = "=+IF(A1=" & mivalor & ",B1,0)"
Comentame si quedó claro.
Gracias Elsa... era exactamente lo que necesitaba... gracias por los ejemplos... pero más por la d.ispocision de ayudar y ensenar... muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas