ruta donde guardar archivo

14/09/2008 - 19:56 por gongi | Informe spam
Hola grupo !

Por favor, una duda, se puede modificar la propiedad Dialogs para que
siempre me 'muestre' la misma ruta y *directorio*, donde guardar ?.
No uso *ActiveWorkbook.SaveAs Filename:* porque cuando se llega un
4º nivel del árbol, hay que elegir manualmente un subdirectorio porque
su nombre varía en funcion del fichero que quiero guardar : \
\servidor\documentos\excel\facturas\1001 010108, 1002
020108 , .1099 311208
Muchas gracias por vuestra ayuda.


Sub demo()
Dim respuesta As Boolean
respuesta = Application.Dialogs(xlDialogSaveWorkbook).Show
<
If respuesta Then
MsgBox "okeis guardado"
Else
MsgBox "not ha cancelado"
End If
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/09/2008 - 03:56 | Informe spam
hola, domingo !

... se puede modificar la propiedad Dialogs para que siempre me 'muestre' la misma ruta y *directorio*, donde guardar ?.
No uso *ActiveWorkbook.SaveAs Filename:* porque cuando se llega un 4º nivel del arbol
hay que elegir manualmente un subdirectorio porque su nombre varía en funcion del fichero que quiero guardar :
\\servidor\documentos\excel\facturas\1001 010108, 1002 020108 , .1099 311208 (...)



(p.e.): para mostrar el dialogo en una carpeta (pre)determinada, incluye la ruta incluyendo el separador de rutas al final ("\" ?)
-> application.dialogs(xldialogsaveas).show "c:\mis documentos\sub carpeta1\sub carpeta2\"
el nombre del archivo queda a eleccion del usuario (incluso puede "navegar" a otra ubicacion en el dialogo)

otra alternativa es que cambies de directorio con la instruccion ChDir "nueva ruta" (y/o de unidad: ChDrive "nueva raiz")
antes de mostrar cualquier alternativa de dialogos para abrir/guardar los archivos

nota que cualqiera de estas acciones cambian al directorio activo (que donde por omision se abren estos dialogos)

otra posibilidad (asumiendo que puedes determinarlo con exactitud) es que guardes incluyendo ruta y nombre "reales"
(lo que no se pudo determinar con los detalles -NO- expuestos en esta consulta)

saludos,
hector.

__ codigo expuesto __
Sub demo()
Dim respuesta As Boolean
respuesta = Application.Dialogs(xlDialogSaveWorkbook).Show <
If respuesta Then
MsgBox "okeis guardado"
Else
MsgBox "not ha cancelado"
End If
End Sub
Respuesta Responder a este mensaje
#2 gongi
21/09/2008 - 20:55 | Informe spam
On 15 sep, 03:56, "Héctor Miguel"
wrote:
hola, domingo !

> ... se puede modificar la propiedad Dialogs para que siempre me 'muestre' la mismarutay *directorio*,  donde guardar ?.
> No uso  *ActiveWorkbook.SaveAs Filename:* porque cuando se llega un 4º nivel del arbol
> hay que elegir manualmente un subdirectorio porque su nombre varía en funcion del fichero que quiero guardar :
> \\servidor\documentos\excel\facturas\1001 010108, 1002 020108 , .1099 311208    (...)

(p.e.): para mostrar el dialogo en una carpeta (pre)determinada, incluye larutaincluyendo el separador de rutas al final ("\" ?)
-> application.dialogs(xldialogsaveas).show "c:\mis documentos\sub carpeta1\sub carpeta2\"
    el nombre del archivo queda a eleccion del usuario (incluso puede "navegar" a otra ubicacion en el dialogo)

otra alternativa es que cambies dedirectoriocon la instruccion ChDir "nuevaruta" (y/o de unidad: ChDrive "nueva raiz")
antes de mostrar cualquier alternativa de dialogos para abrir/guardar los archivos

nota que cualqiera de estas acciones cambian aldirectorioactivo (que donde por omision se abren estos dialogos)

otra posibilidad (asumiendo que puedes determinarlo con exactitud) es que guardes incluyendorutay nombre "reales"
(lo que no se pudo determinar con los detalles -NO- expuestos en esta consulta)

saludos,
hector.





Hola Hector ! ,

Disculpa por no haber hecho antes el "feedback" , pero no he podido
antes (cosas de contables) . Te comento lo que me pasa :

ChDrive "Z:"
ChDir "Z:\facturas\facturas2008"

donde Z: es \\servidor\

me hace cosas "raras" . (me da error al correr el procedimiento cuando
llega al ChDir, pero si ejecuto *otro* procedimiento [otra macro],
SI se ha traslado a la unidad Z: )

Te comento lo que tengo que hacer para ver si se puede hacer
"directamente".
Las facturas se hacen en excel.
Cada factura tiene un número, que es a su vez el nombre del archivo
(factura nº 1500 > nombre del archivo excel = 1500.xls )
Tengo que guardar, cada vez que hago una factura, una copia , en un
directorio que esta en red, y que varía cada vez, porque su nombre
es : el numero de factura , la fecha de factura y un código
identificador del cliente. Por ejemplo, la factura 1500 (archivo
1500.xls) iría en un directorio que se llama \\servidor\\facturas
\facturas2008\1500 150908 MMJ\
La "buena noticia" es que el nombre del directorio lo puedo *montar* o
*armar* desde las facturas, porque se corresponden a celdas (a1 & a2 &
a3 )
la "mala noticia " es que en los nombres [de los directorios], que se
crean por otros [usuarios], pueden haber "errores" (en la fecha , en
el codigo de cliente) , pero donde *nunca* se producen errores es por
donde empieza el nombre del directorio y que coincide con el nombre de
la factura (1500 150908 MMJ > 1500.xls).
Un rollo no ?
Te agradezco cualquier sugerencia .
Un cordial saludo
Respuesta Responder a este mensaje
#3 Héctor Miguel
21/09/2008 - 22:23 | Informe spam
hola, domingo !

Te comento lo que me pasa:
ChDrive "Z:"
ChDir "Z:\facturas\facturas2008"
donde Z: es \\servidor\
me hace cosas "raras" (me da error al correr el procedimiento cuando llega al ChDir)
pero si ejecuto *otro* procedimiento [otra macro], SI se ha traslado a la unidad Z:



si el ChDrive SI hace el cambio a una unidad logica (montaje de red) llamada "Z:"
para el ChDir ya no es necesario incluir la letra de la unidad (Z:) sino solamente la nueva ruta, cambia:
de: -> ChDir "Z:\facturas\facturas2008"
a: -> ChDir "\facturas\facturas2008"

(creo que) con lo anterior ya podras completar el cuadro restante de esta consulta -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Te comento lo que tengo que hacer para ver si se puede hacer "directamente".
Las facturas se hacen en excel. Cada factura tiene un numero, que es a su vez el nombre del archivo
(factura nº 1500 -> nombre del archivo excel = 1500.xls )
Tengo que guardar, cada vez que hago una factura, una copia , en un directorio que esta en red
y que varía cada vez, porque su nombre es: el numero de factura , la fecha de factura y un codigo identificador del cliente.
Por ejemplo, la factura 1500 (archivo 1500.xls) iria en un directorio que se llama \\servidor\\facturas\facturas2008\1500 150908 MMJ\
La "buena noticia" es que el nombre del directorio lo puedo *montar* o *armar* desde las facturas
porque se corresponden a celdas (a1 & a2 & a3)
la "mala noticia " es que en los nombres [de los directorios], que se crean por otros [usuarios]
pueden haber "errores" (en la fecha, en el codigo de cliente)
pero donde *nunca* se producen errores es por donde empieza el nombre del directorio
y que coincide con el nombre de la factura (1500 150908 MMJ -> 1500.xls).
Respuesta Responder a este mensaje
#4 gongi
22/09/2008 - 17:36 | Informe spam
On 21 sep, 22:23, "Héctor Miguel"
wrote:
hola, domingo !

> Te comento lo que me pasa:
> ChDrive "Z:"
> ChDir "Z:\facturas\facturas2008"
> donde Z: es \\servidor\
> me hace cosas "raras" (me da error al correr el procedimiento cuando llega al ChDir)
> pero si ejecuto *otro* procedimiento [otra macro], SI se ha traslado a la unidad Z:

si el ChDrive SI hace el cambio a una unidad logica (montaje de red) llamada "Z:"
para el ChDir ya no es necesario incluir la letra de la unidad (Z:) sino solamente la nueva ruta, cambia:
de: -> ChDir "Z:\facturas\facturas2008"
  a: -> ChDir "\facturas\facturas2008"

(creo que) con lo anterior ya podras completar el cuadro restante de esta consulta    -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

> Te comento lo que tengo que hacer para ver si se puede hacer "directamente".
> Las facturas se hacen en excel. Cada factura tiene un numero, que es a su vez el nombre del archivo
> (factura nº 1500 -> nombre del archivo excel = 1500.xls )
> Tengo que guardar, cada vez que hago una factura, una copia , en un directorio que esta en red
> y que varía cada vez, porque su nombre es: el numero de factura , la fecha de factura y un codigo identificador del cliente.
> Por ejemplo, la factura 1500 (archivo 1500.xls) iria en un directorio que se llama \\servidor\\facturas\facturas2008\1500 150908 MMJ\
> La "buena noticia" es que el nombre del directorio lo puedo *montar* o *armar* desde las facturas
> porque se corresponden a celdas (a1 & a2 & a3)
> la "mala noticia " es que en los nombres [de los directorios], que se crean por otros [usuarios]
> pueden haber "errores" (en la fecha, en el codigo de cliente)
> pero donde *nunca* se producen errores es por donde empieza el nombre del directorio
> y que coincide con el nombre de la factura (1500 150908 MMJ -> 1500.xls).



Hola Hector !

Por lo visto este tipo de código da problemas (hard code) . He visto
por ahí que primero lo guardan en una variable (ruta = \directorio
chdir ruta )

Existe la posibilidad de montarlo con el ActiveWorkbook.saveas
Filename para que se guarde directamente sabiendo que el directorio
donde se guarda varía (como expuse en la 2ª parte de mi consulta) ?
Muy agradecido por tu ayuda
Respuesta Responder a este mensaje
#5 Héctor Miguel
22/09/2008 - 22:33 | Informe spam
hola, domingo !

Por lo visto este tipo de codigo da problemas (hard code).
He visto por ahi que primero lo guardan en una variable (ruta = \directorio chdir ruta)



si este tipo de instrucciones no es de uso constante, no tiene caso declarar variables (si ya no las vas a usar) -???-

Existe la posibilidad de montarlo con el ActiveWorkbook.saveas Filename
para que se guarde directamente sabiendo que el directorio donde se guarda varia
(como expuse en la 2ª parte de mi consulta) ?



si tu carpeta esta en una unidad de red, lo mas conveniente es usar la constante "real"
o sea, llamas a la carpeta de red usando las UNC (Universal Naming Conventions) p.e.

activeworkbook.saveas "\\servidor\\facturas\facturas2008\" & range("a1") & range("a2") & range("a3")

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida