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

llamar macro a través de un texto en una celda

Estas en el tema de llamar macro a través de un texto en una celda 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 23/05/2009, 14:26
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
Exclamación llamar macro a través de un texto en una celda

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; 23/05/2009 a las 14:36 Razón: arreglo el codigo
  #2 (permalink)  
Antiguo 25/05/2009, 15:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Respuesta: llamar macro a través de un texto en una celda

interesante el lio

estoy probando tus codigos, y no ejecutan; solamente el mensaje(prueba)

intente, utilizar este codigo para mover alguna celda, pero igual no funciono
Cita:
Sub movecell()
i = 10
ActiveCell.Offset(rowOffset:=0, columnOffset:="" & i).Activate
End Sub
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 25/05/2009, 16:48
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: llamar macro a través de un texto en una celda

Gracias Shiryu_libra:

He intentado varias cosas pero no me funciona, de hecho si en las funciones colocas la opcion "MsgBox posicion" al principio del codigo se ejecuta, pero el resto del codigo de la función no se ejecuta.

Esperando una ayuda u orientación suprema
__________________
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:18.