Reformulo mi pregunta.

01/10/2005 - 01:19 por Hernandez, Roberto | Informe spam
Muchachos, escribi un post que al parecer nadie entendió.
Voy a tratar de darme a entender.

Si yo creo una serie de funciones personalizadas en VBA, existe alguna forma
de llamarla a un grupo de ellas desde celdas de excel, de forma secuencial?

Si escribí las funciones (o subrutinas) Sub Alfa(parametro1,parametro2 ),
Sub Beta (parametro... ), etc...

Puedo escribir en celdas de excel

A
1 Alfa ()
2 Beta ()

Y llamarlas con algo asi como

For Each celda In ActiveSheet.Range(Instrucciones.Address)

'aqui es donde no se si se puedan llamar las subrutinas que estan escritas
en el rango

Next celda

Espero haberme explicado
Gracias por adelantado

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/10/2005 - 08:04 | Informe spam
hola, Roberto !

... escribi un post que al parecer nadie entendio. Voy a tratar de darme a entender.
... creo una serie de funciones personalizadas en VBA
... alguna forma de llamarla a un grupo de ellas desde celdas de excel, de forma secuencial?
... las funciones (o subrutinas) Sub Alfa(parametro1,parametro2 ), Sub Beta (parametro... ), etc...
... escribir en celdas de excel
A
1 Alfa ()
2 Beta ()
... llamarlas con algo asi como
For Each celda In ActiveSheet.Range(Instrucciones.Address)
'aqui es donde no se si se puedan llamar las subrutinas que estan escritas en el rango
Next celda [...]



[me parece que] esta 'nueva' consulta... tampoco es lo suficiente 'clara' :(
si alcanzo a 'intrpretar' +/- bien lo que requieres...

1) si es el caso que YA has definido/escrito/... FUNCIONES personalizadas...
[procedimientos Function...End Function NO... Sub...End Sub]...
por que no las 'llamas/usas/...' ->directamente desde 'su' celda en la hoja de calculo<- ???

2) si el caso es que deseas utilizar texto en celdas como 'pseudo-codigo' para funciones/procedimientos en vba...
[algo asi como tener funciones multi-funcion o... multi-modales o... variables_a_discrecion]...
tendras que usar codigo en los eventos de 'esa/cada' hoja [donde necesites tener este tipo de 'funcionalidad'] :))
[y considerar algunos cuantos requisitos/precauciones/correcciones/... por si hubiera 'errores' tipograficos, etc. etc. etc.]

si comentas [bastantes] detalles adicionales [que se te estan quedando 'en el tintero'] ;)
saludos,
hector.
Respuesta Responder a este mensaje
#2 Hernandez, Roberto
03/10/2005 - 16:56 | Informe spam
Hola Hector!
Muchas Gracias por tu atención al mensaje.
La verdad es que me ha costado algo de trabajo darme a entender, como has
visto.

Efectivamente, quisiera escribir algo así como un intérprete de pseudocódigo
para un assembler, que estamos tratando de desarrollar en VBA para una clase
de arquitectura de computadores.
Tenemos ya todas las funciones que emulan las operaciones lógicas,
aritméticas y de control.
En una hoja de excel tenemos un área que servirá como 'lienzo', para
escribir programas en binario.
Esta hoja convierte el binario en hexadecimal, y el hexadecimal en
mnemotécnicos,además de un comentario, algo así como:

0011 1000 0000 00000 3800 STA 800 >>>Almacenar el contenido
del acumulador en la dirección 800H

La tercera columna (la de mnemotécnicos) se interpretará línea a línea por
una subrutina al clikear un botón [o al menos eso pretendo].

Mi necesidad es cómo 'jalar´el STA 800 para que se 'escriba' o 'interprete'
en VBA como STA (800) [O sea la Function STA(address as string)...]

En cuanto a los errores lexicos o sintácticos, la hoja de excel está
formulada para no permitir su funcionamiento hasta no eliminarlos.

Pensé en pasar el valor de la celda a una variable de texto, y luego
'plasmarla' en el código de VBA... Pero ¿Cómo?

Ojalá pudieras darme una orientación, te agradezco nuevamente.

Roberto




"Héctor Miguel" escribió en el mensaje
news:
hola, Roberto !

... escribi un post que al parecer nadie entendio. Voy a tratar de darme
a entender.
... creo una serie de funciones personalizadas en VBA
... alguna forma de llamarla a un grupo de ellas desde celdas de excel,
de forma secuencial?
... las funciones (o subrutinas) Sub Alfa(parametro1,parametro2 ), Sub
Beta (parametro... ), etc...
... escribir en celdas de excel
A
1 Alfa ()
2 Beta ()
... llamarlas con algo asi como
For Each celda In ActiveSheet.Range(Instrucciones.Address)
'aqui es donde no se si se puedan llamar las subrutinas que estan
escritas en el rango
Next celda [...]



[me parece que] esta 'nueva' consulta... tampoco es lo suficiente 'clara'
:(
si alcanzo a 'intrpretar' +/- bien lo que requieres...

1) si es el caso que YA has definido/escrito/... FUNCIONES
personalizadas...
[procedimientos Function...End Function NO... Sub...End Sub]...
por que no las 'llamas/usas/...' ->directamente desde 'su' celda en la
hoja de calculo<- ???

2) si el caso es que deseas utilizar texto en celdas como 'pseudo-codigo'
para funciones/procedimientos en vba...
[algo asi como tener funciones multi-funcion o... multi-modales
o... variables_a_discrecion]...
tendras que usar codigo en los eventos de 'esa/cada' hoja [donde
necesites tener este tipo de 'funcionalidad'] :))
[y considerar algunos cuantos requisitos/precauciones/correcciones/...
por si hubiera 'errores' tipograficos, etc. etc. etc.]

si comentas [bastantes] detalles adicionales [que se te estan quedando 'en
el tintero'] ;)
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
03/10/2005 - 18:58 | Informe spam
hola, Roberto !

... quisiera escribir... un interprete de pseudocodigo para un assembler... Tenemos ya todas las funciones
En una hoja de excel... un area... servira como 'lienzo', para escribir programas en binario algo asi como:
0011 1000 0000 00000 3800 STA 800 >>>Almacenar el contenido del acumulador en la dirección 800H
La tercera columna... se interpretara linea a linea por una subrutina al clikear un botón [o al menos eso pretendo].
... como 'jalar´el STA 800 para que se 'escriba' o 'interprete' en VBA como STA (800) [... la Function STA(address as string)...]
... los errores lexicos o sintacticos, la hoja... esta formulada para no permitir su funcionamiento hasta no eliminarlos.
Pense en pasar el valor de la celda a una variable de texto, y luego 'plasmarla' en el codigo de VBA... Pero ¿Como? [...]



1) [me parece que] una forma +/- 'practica' es usar Application.Run "macro_funcion", "arg_1", "arg_2", ...

2) suponiendo un 'arreglo' de los datos [en la hoja de calculo] segun comentas de...
-> un 'pseudo-nombre' de una funcion que 'toma' un argumento [STA 800] se encuentra en la celda 'C2'
-> y que el codigo de la funcion 'real' fuera algo asi como...
Private Function STA(Direccion As String) As String
MsgBox "La funcion ""STA"" reporta..." & vbCr & _
"El parametro es: " & Direccion
End Function

3) haz una prueba con una estructura de codigo para 'leer' de la celda y usar la funcion [pasando 'su' parametro] +/- como sigue...
Sub Probando_PseudoCodigos()
Application.Run Left([c2], InStr([c2], " ") - 1), Mid([c2], InStr([c2], " ") + 1)
End Sub

4) como desconozco cuantos parametros requiera ->cada una de las funciones<- que ya tienes definidas...
[creo que] 'el detalle' estara en 'como decirle' al codigo que 'detecte' de cual funcion se trata y cuantos/cuales argumentos -?-

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Hernandez, Roberto
04/10/2005 - 00:01 | Informe spam
Wow!

Simplemente es exactamente lo que necesitaba.
No por nada eres SARUMVP [Super-Archi-Requete-Ultra Most Value
Professional].
(Es una expresión coloquial aquí en MX)
Gracias por todo.

Roberto

"Héctor Miguel" escribió en el mensaje
news:
hola, Roberto !

... quisiera escribir... un interprete de pseudocodigo para un
assembler... Tenemos ya todas las funciones
En una hoja de excel... un area... servira como 'lienzo', para escribir
programas en binario algo asi como:
0011 1000 0000 00000 3800 STA 800 >>>Almacenar el contenido
del acumulador en la dirección 800H
La tercera columna... se interpretara linea a linea por una subrutina al
clikear un botón [o al menos eso pretendo].
... como 'jalar´el STA 800 para que se 'escriba' o 'interprete' en VBA
como STA (800) [... la Function STA(address as string)...]
... los errores lexicos o sintacticos, la hoja... esta formulada para no
permitir su funcionamiento hasta no eliminarlos.
Pense en pasar el valor de la celda a una variable de texto, y luego
'plasmarla' en el codigo de VBA... Pero ¿Como? [...]



1) [me parece que] una forma +/- 'practica' es usar Application.Run
"macro_funcion", "arg_1", "arg_2", ...

2) suponiendo un 'arreglo' de los datos [en la hoja de calculo] segun
comentas de...
-> un 'pseudo-nombre' de una funcion que 'toma' un argumento [STA 800]
se encuentra en la celda 'C2'
-> y que el codigo de la funcion 'real' fuera algo asi como...
Private Function STA(Direccion As String) As String
MsgBox "La funcion ""STA"" reporta..." & vbCr & _
"El parametro es: " & Direccion
End Function

3) haz una prueba con una estructura de codigo para 'leer' de la celda y
usar la funcion [pasando 'su' parametro] +/- como sigue...
Sub Probando_PseudoCodigos()
Application.Run Left([c2], InStr([c2], " ") - 1), Mid([c2], InStr([c2], "
") + 1)
End Sub

4) como desconozco cuantos parametros requiera ->cada una de las
funciones<- que ya tienes definidas...
[creo que] 'el detalle' estara en 'como decirle' al codigo que
'detecte' de cual funcion se trata y cuantos/cuales argumentos -?-

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida