Path

11/08/2003 - 11:31 por Desastres | Informe spam
Buenos días
Quiero asignar una variable al path para no tener que estar pendiente del directorio en que guardo un libro
con macros.
Por ejemplo
Public Autopista As Stringen la seccion de declaraciones
Autopista=Thisworkbook.Path-en el modulo

Si la pongo en Thisworkbook_Open lo toma perfectamente y me lo facilita durante el proceso de apertura, pero
al finalizar la apertura del libro, (cuando ya se ha ejecutado Thisworkbook_open) si le pido que me diga el
cual es el Path, se queda mudo.Pero mudito cabezón.

Puedo , en la sección general, declarar Autopista como Public, pero no me deja hacer una asignación a un
proceso externo.
Lo cual (creo) me obliga a asignar la variable en cada procedimiento)

Pregunta.

¿Hay alguna forma de declara y asignar Autopista en un solo punto para que sirva para todos los libros que e
abran a partir de de ese momento?
Saludos
Des

Preguntas similare

Leer las respuestas

#6 Desastres
18/08/2003 - 10:29 | Informe spam
Hola Héctor.
Me permito preguntarte directamente, si no tienes inconveniente.

He probado lo que sugieres ( que para un solo libro me funciona perfectamente) pero no obtengo los resultados
que quiero cuando utilizo varios.
Partimos de :
Declaraciones publicas en un Modulo estándar de un LibroOrigen que hará de punto de unión con otros 10
Asignaciones en Thisworkbook_open de LibroOrigen. ( Las asignaciones externas no funcionan)
Abro con una macro , y asigno simultáneamente, tres libros(ya declarados en LibroOrigen).
Resultado:
Si lanzo ahora una macro contenida en LibroOrigen que me indica el nombre de las hojas de los libros abiertos,
utilizando las variables declaradas y asignadas en procedimientos de LibroOrigen mediante la instrucción:
Msgbox Variable.name
Funciona.
Pero si utilizo el evento Worksheet_Change dentro de un modulo de la Hoja, en el cual llamo a las mismas
variables, me dice aquello de "que si quieres arroz Catalina" y mira pa otro lao.

He tenido que volver a declarar y asignar en el modulo Worksheet_Change para que me escuche.
Lo cual me parece una chapuza.

¿Sabes como se le puede sobornar, para hacer Declaraciones y asignaciones en un solo punto para todos los
libro, incluidos los 9 que están cerrados en un momento dado?

Teniendo en cuenta que: No me admite las declaraciones/asignaciones cuando abro un libro en el modulo
Workbook_open ni en Workbook_activate y que WorkSheet_Activate no se ejecuta en el procedimiento de apertura
(al menos en los libros que tienen una sola hoja) ¿Que me propondrías para declara/asignar durante el proceso
de apertura?

(se me está ocurriendo algo que probare dentro un rato. Se me podía haber ocurrido antes ¿verdad?)

¿Sabes donde leer algo que describa detallada y ordenadamente los procesos que se producen tanto en la
apertura de Excel como de un libro con macros?

Saludos
Des




"Héctor Miguel" escribió en el mensaje
news:#J$
Hola, Des ! =>Agradecido por tu felicitacion<= :))

> Creí que ... fallaría por asignar antes que declarar. Pero en general no es así.
> Falla, ... en el caso de ... un error en el modulo que tiene la declaración de Autopista.

==> Se me ocurren dos (posibles) soluciones, a reserva de una mejor opinion:

1.- Si en el modulo donde se hace la declaracion (en algun momento) genera errores...
(ya sea por acciones del usuario o porque "con anticipacion conoces" que podrian generarse)...
y tienes la seguridad de que dichos errores NO serian de "fatales" consecuencias...
-o- diseñar un segmento para el manejo de los errores "detectables"
-o- "de plano" incluir en el(los) procedimiento(s) ANTES del punto del error la sentencia => On


Error Resume Next

2.- Si no quisieras "meterte en problemas de manejo de errores"...
=> Utilizar un modulo (general) EXCLUSIVAMENTE para la declaracion de variables "publicas",


"constantes", etc.
_______
Saludos,
Héctor.
MS-MVP


Respuesta Responder a este mensaje
#7 Héctor Miguel
18/08/2003 - 19:02 | Informe spam
Hola, Des !

... lo que sugieres (para un solo libro me funciona perfectamente) pero no ... cuando utilizo varios [...]
... si utilizo ... Worksheet_Change dentro de un modulo de la Hoja, en el cual llamo a las ... variables, me dice aquello [...]
He tenido que volver a declarar y asignar en el modulo Worksheet_Change ... Lo cual me parece una chapuza.



==> Segun [entiendo de] la ayuda en linea de VBA {F1}, al "preguntar" por las variables y su forma de uso y declaracion ...
"Si una instruccion Dim aparece dentro de un procedimiento, la variable se puede usar solo en ese procedimiento."
"Si aparece en la seccion de Declaraciones del modulo, estara disponible en todos los procedimientos dentro del modulo."
"Para que este disponible para todos los procedimientos de un proyecto, debera declararse con la instruccion Public."
"Si se declara en un modulo estandar o en uno de clase, se podra usar en proyectos referenciados por aquel en que se declara."

¿... como se le puede sobornar, para hacer Declaraciones y asignaciones en un solo punto para todos los libros ...?
¿... algo que describa detallada y ordenadamente los procesos que se producen tanto en la apertura ...?



==> Para el caso que necesitas, sera necesario establecer una referencia al proyecto en los proyectos de "los otros" libros.
Encontraras informacion adicional en los siguientes sitios:
Declaring Variables In VBA http://www.cpearson.com/excel/Decla...iables.htm
Using Variables (Properly) In VBA http://www.cpearson.com/excel/variables.htm
Event Procedures In Microsoft® Excel http://www.cpearson.com/excel/events.htm
Application Level Events http://www.cpearson.com/excel/AppEvent.htm
Worksheet Events and Workbook Events http://www.mvps.org/dmcritchie/excel/event.htm
_______
Saludos,
Héctor.
MS-MVP
Respuesta Responder a este mensaje
#8 Desastres
19/08/2003 - 10:33 | Informe spam
Gracias Héctor

==> Segun [entiendo de] la ayuda en linea de VBA {F1}, al "preguntar" por las variables y ...

"Si una instruccion Dim aparece dentro de un procedimiento, la variable se puede usar solo en ese


procedimiento."
"Si aparece en la seccion de Declaraciones del modulo, estara disponible en todos los procedimientos dentro


del modulo."
"Para que este disponible para todos los procedimientos de un proyecto, debera declararse con la instruccion


Public."

** Digamos que hasta aquí es la parte que utilizo

"Si se declara en un modulo estandar o en uno de clase, se podra usar en proyectos referenciados por aquel


en que se declara."
** La cuestion justamente esta aquí.
Si modifico la pregunta original pasaria a ser algo así ¿ Cómo referencio un proyecto para ser llamado por el
LibroOrigen?

Me das documentacion , que me leeré con pasua, ( no por paciencia sino por mi particular dominio de la lengua
de chespir) porque seguro sacaré jugo, pero si tuvieras un ejemplo sencillo de forma de referenciar un
proyecto externo, me regalarias algo que aprecio especialmente , tiempo . Si mi petición afecta al tuyo,mas de
lo que tienes previsto, desoyela sin más.

Y si por casualidad conocieras un traductor gratuito ( Online?), tambien se agradecería

Saludos
Des
Respuesta Responder a este mensaje
#9 Héctor Miguel
24/08/2003 - 08:46 | Informe spam
Hola, Des !

Y si por casualidad conocieras un traductor gratuito ( Online?), tambien se agradecería



==> Prueba con la siguiente direccion => http://babelfish.altavista.com/
solo introduce el texto, o la pagina web que deseas traducir y "entre" que idiomas ;)
_______
Saludos,
Héctor.
MS-MVP
Respuesta Responder a este mensaje
#10 Desastres
26/08/2003 - 01:21 | Informe spam
Gracias Héctor.
Casi , solo casi, es tan malo como yo, pero algo es algo.
Veré que es lo que saco en limpio, aunque hasta ahora no he visto nada de lo que busco
Saludos
Des

"Héctor Miguel" escribió en el mensaje
news:##
Hola, Des !

> Y si por casualidad conocieras un traductor gratuito ( Online?), tambien se agradecería

==> Prueba con la siguiente direccion => http://babelfish.altavista.com/
solo introduce el texto, o la pagina web que deseas traducir y "entre" que idiomas ;)
_______
Saludos,
Héctor.
MS-MVP


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida