Pasar parametros a Excel

21/10/2003 - 09:22 por Emilio | Informe spam
Hola a tod@s

todos los días ejecuto de manera automática (tareas programadas) una hoja de
calculo que realiza unos calculos y exporta a gif unos gráficos almacena y
se cierra, hasta aqui todo bien, la cuestión es que para ello hago que en el
evento al abrir el libro compruebo la hora y si son las seis, entonces
ejecuto el proceso, sino no, esto ademas de ser más bien poco elegante,
tiene el problema de que si alguien intenta abrir la hoja a esa hora no lo
conseguirá, porque se cerrará de manera automática.
La cuestión es ¿se puede pasar algún tipo de parámetro personalizado a
Excel?, si fuese posible, podría evitar hacerlo de ese modo, en access se
pueden pasar con /cmd y recuperar con command, pero en Excel parece no ser
así.

Gracias anticipadas

Saludos a tod@s

Emilio

Preguntas similare

Leer las respuestas

#6 Fernando Arroyo
22/10/2003 - 17:24 | Informe spam
"Rene Moreno" escribió en el mensaje news:Omye%23%
Buen días Señores, solo una duda sobre la instrucción SET que acaban de
mencionar; ejecute SET en mi PC y al final de la lista de variables aparecé
BLASTER¢20 15 D1 T4 ¿tendrá algo que ver con el virus/gusano/loquesea
BLASTER? Tengo Win98 2a Ed.

Saludos a todos
Rene Moreno

____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío



Casi seguro que no es debido al virus/gusano Blaster. Pienso que puede ser la configuración de alguna tarjeta de sonido Sound Blaster que tengas o hayas tenido en el equipo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#7 Rene Moreno
22/10/2003 - 19:49 | Informe spam
Gracias, lo investigare

Rene Moreno

____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío
"Fernando Arroyo" escribió en el mensaje
news:
"Rene Moreno" escribió en el mensaje
news:Omye%23%
Buen días Señores, solo una duda sobre la instrucción SET que acaban de
mencionar; ejecute SET en mi PC y al final de la lista de variables


aparecé
BLASTER¢20 15 D1 T4 ¿tendrá algo que ver con el virus/gusano/loquesea
BLASTER? Tengo Win98 2a Ed.

Saludos a todos
Rene Moreno

____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío



Casi seguro que no es debido al virus/gusano Blaster. Pienso que puede ser
la configuración de alguna tarjeta de sonido Sound Blaster que tengas o
hayas tenido en el equipo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#8 Manolo\(MX\)
23/10/2003 - 15:56 | Informe spam
efectivamente Fernando, son para configurar la tarjeta de sonido.

Saludos

Manolo
Cancun, México





"Fernando Arroyo" escribió en el mensaje
news:
"Rene Moreno" escribió en el mensaje
news:Omye%23%
Buen días Señores, solo una duda sobre la instrucción SET que acaban de
mencionar; ejecute SET en mi PC y al final de la lista de variables


aparecé
BLASTER¢20 15 D1 T4 ¿tendrá algo que ver con el virus/gusano/loquesea
BLASTER? Tengo Win98 2a Ed.

Saludos a todos
Rene Moreno

____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío



Casi seguro que no es debido al virus/gusano Blaster. Pienso que puede ser
la configuración de alguna tarjeta de sonido Sound Blaster que tengas o
hayas tenido en el equipo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#9 Pepito I
26/10/2003 - 05:09 | Informe spam
Mil Gracias Fernando !!
Ahora entiendo mejor, voy a probar ,
Ya Toi :-))))
Pepito I
La idea inicial es: dependiendo de cómo se abra un libro,


que su código realice unas u otras acciones.

Como bien decía Emilio, en Access es posible conseguir


esto pasando un argumento desde la línea de comandos a la
aplicación. Por ejemplo, si se teclea:

c:\Archivos de programa\Microsoft


Office\Office\msaccess.exe C:\BaseDeDatos.mdb /cmd
argumento

en una ventana de DOS, se lanzará Access, se abrirá la


base de datos BaseDeDatos y será posible ejecutar un
determinado código en función del argumento:

If Command = "argumento1" Then
'Instrucciones
ElseIf Command = "argumento2" Then
'Instrucciones
Else
'Instrucciones
End If


En Excel esto no está implementado, lo que nos obliga a


los que tenemos que programar a ser imaginativos. Una
posibilidad es la que yo comentaba en mi mensaje anterior:
usar una variable de entorno como sustituta de Command.

Las variables de entorno "oficiales" son creadas


automáticamente por el sistema operativo. Se puede conocer
la lista completa tecleando

set

en una ventana de DOS. Para crear una variable propia,


hay que teclear

set NombreVariable=Valor


Es posible conocer desde VBA el valor de cualquier


variable usando la función Environ. Por ejemplo:

MsgBox Environ("path")

mostrará las rutas almacenadas en la variable de entorno


path.

Hay muchas variables de entorno que, en principio,


podrían resultar útiles al programar desde VBA. Por
ejemplo, username devuelve el nombre del usuario, domain
el dominio, etc. El uso de estas variables podría evitar
tener que recurrir a funciones de la API de Windows, que
suelen ser largas y complicadas. _Pero_ (y lo subrayo
porque es importante), sucede que estas variables pueden
ser modificadas por cualquiera. Si, por ejemplo, se teclea:

path=EstoNoValeParaNada

la variable "oficial" path tomará el valor


EstoNoValeParaNada, y ésto es lo que se obtendrá si se
consulta dicha variable desde VBA. Esto hay que tenerlo en
cuenta porque si se escribe un programa que deban usar
otras personas y que haga uso de alguna de estas
variables, podría ser saboteado por un usuario avanzado
con tan sólo modificarlas. Sin embargo, si el programa
está destinado al propio programador, el uso de las
variables de entorno puede simplificarlo.


Volviendo al uso de una variable de entorno propia


para "pasar un argumento" a Excel, lo que habría que hacer
es crear un fichero batch con un par de líneas (las que
propuse en mi anterior mensaje en este mismo "hilo"):

set NombreVariable=ValorDeLaVariable
"Archivos de programa\Microsoft Office\Office\excel.exe"


c:\Libro1.xls

(La segunda línea podría variar, dependiendo de dónde


esté el ejecutable de Excel)
Se podría crear un acceso directo al fichero batch para


poder ejecutarlo sin tener que abrir una sesión DOS "a
mano".

Ya en Excel, el código para hacer unas u otras cosas en


función del valor de NombreVariable podría ser algo
parecido a:

If Environ("NombreVariable") = "A" Then
'Instrucciones
ElseIf Environ("NombreVariable") = "B" Then
'Instrucciones
Else
'Instrucciones
End If



Sobre las políticas, quizás Emilio u otra persona pueda


decirte más que yo. Son restricciones que establecen las
empresas en algunos o todos sus equipos, para muchas
cosas. Por ejemplo, para obligar a usar un antivirus, para
impedir que se puedan realizar copias de los datos, para
que no se pueda navegar por determinadas páginas de la
red... En los casos extremos, dichas políticas convierten
el ordenador en una especie de "terminal tonta".
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Pepito I" escribió en el


mensaje news:044101c39814$33d3eb00$
Fernando y Emilio mis saludos!
Fernando me pudieras explicar algo más sobre estas
variables de entorno?, dónde creo el fichero .bat?.
Un ejemplito de la utilidad de usar estas variables?
Dices crearlas antes de abrir excel porlo tanto no se
crean desde excel , No? ,Sí? Porqué dice Emilio que él
tiene limitantes que no puede crearlas? Yo uso W98 ,con
Office 200. Bueno si pueden ayudenme a entender un poco
sobre esto .Toi :-((.
Saludos
Pepito I


.

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