Foros del Web » Soporte técnico » Ofimática »

VB en macro, instrucccion EVALUATE()

Estas en el tema de VB en macro, instrucccion EVALUATE() en el foro de Ofimática en Foros del Web. Hola amigos. Estoy intentando llamar una macro escribiendo su nombre en una celda pero no me funciona, mi conocimiento en vb es limitado, asi que ...
  #1 (permalink)  
Antiguo 25/05/2009, 12:44
Avatar de a n g e l u s  
Fecha de Ingreso: enero-2006
Ubicación: Chile
Mensajes: 237
Antigüedad: 18 años, 3 meses
Puntos: 1
Desacuerdo VB en macro, instrucccion EVALUATE()

Hola amigos.

Estoy intentando llamar una macro escribiendo su nombre en una celda pero no me funciona, mi conocimiento en vb es limitado, asi que si me pueden ayudar se los agradecieria.

Detalle del problema:


Código:
+-----------+-----------+-----------+-------------------------+
|           |      A    |       B   |          C              |
+-----------+-----------+-----------+-------------------------+
|      1    |mover(3)   |     10    |           25            |
+-----------+-----------+-----------+-------------------------+
|      2    |multipli(1)|      2    |                         |
+-----------+-----------+-----------+-------------------------+
|      3    | divide(2) |      5    |                         |
+-----------+-----------+-----------+-------------------------+
EN LA COLUMNA A ESCRIBO TODAS LAS INSTRUCCIONES QUE REQUIERO (sin = )
LUEGO INGRESO LOS VALORES EN LA COLUMNA B
EN LA COLUMNA C1 DEVUELVO EL RESULTADO DE LAS INSTRUCCIONES.


Pasos logicos:

A1 : mover(3) = mueve el contenido de la columna B3 a la celda C1.
A2 : multipli(1) = multiplica el contenido de C1 por el contenido de B1
A3 : divide(2) = divide el contenido de C1 por el contenido de B2
C1 : CONTIENE EL RESULTADO DE (5*10)/2

Macro Excel:

Sub proceso()

Dim total as Integer
Dim celda As String
Dim resultado As Integer

celda = "B"
resultado = "C1"

Application.Volatile

For i = 1 To 3

Application.Goto Reference:=celda & i
instruccion = ActiveCell.Value
instruccion = LCase(instruccion)
Evaluate (instruccion) '--->generador de problema

Next i

End Sub


Private Function prueba(posicion)

MsgBox posicion

End Function


Private Function mover(posicion)

Application.Goto Reference:=celda & posicion
Selection.Copy
Application.Goto Reference:=resultado
ActiveSheet.Paste

End Function

Private Function multipli(posicion)

Application.Goto Reference:=celda & posicion
total = Selection.value
Application.Goto Reference:=resultado
ActiveCell.FormulaR1C1 = ActiveCell.value * total

End Function

Private Function divide(posicion)

Application.Goto Reference:=celda & posicion
total = Selection.value
Application.Goto Reference:=resultado
ActiveCell.FormulaR1C1 = ActiveCell.value / total

End Function

El problema:

Al ejecutar la función Evaluate(instruccion), va a la función pero no la ejecuta, para verificarlo hay funcion llamada prueba que llama un msgbox y mustra el valor de la posición, pero con el resto de las funciones no las ejecuta.

Agredecere cualquier idea que arregle o modifique el código.

de antemano muchas gracias a todos
__________________
Atte,
A n g e l u s
Concepción - Chile
más vale respuestas bien pensadas, que 7000 post

Última edición por a n g e l u s; 25/05/2009 a las 13:11 Razón: QUERIA ELIMINAR LA PREGUNTA PERO NO SE PUEDE SORRY
  #2 (permalink)  
Antiguo 25/05/2009, 13:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: VB en macro, instrucccion EVALUATE()

Translado tu tema al foro de Ofimática, donde podrán ayudarte mejor.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/05/2009, 13:09
Avatar de a n g e l u s  
Fecha de Ingreso: enero-2006
Ubicación: Chile
Mensajes: 237
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: VB en macro, instrucccion EVALUATE()

vengo de alla!!!! ;-(
__________________
Atte,
A n g e l u s
Concepción - Chile
más vale respuestas bien pensadas, que 7000 post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:39.