BuildPath Método

04/11/2003 - 22:17 por Andrés Porfirio | Informe spam
Necesito ayuda para contruir una ruta preferiblemente con
BuildPath (Método)

Por favor, necesito una macro que me resuelva este
problema.

Tengo una parte invariable de la ruta: C:\Auditor\
y deseo agregar una parte variable de la ruta que está en
una una celda de otro libro que está actualmente abierto,
por ejemplo:
Libro=Configuracion
Hoja=Derechos
Celda¡

A continuación agrego la ayuda correspondiente a este
método:

Descripción
Anexa un nombre a una ruta existente.

Sintaxis
objeto.BuildPath(ruta, nombre)

La sintaxis del método BuildPath consta de las siguientes
partes:

Parte Descripción
objeto Requerido. Siempre el nombre de un objeto
FileSystemObject.

ruta Requerido. Ruta existente a la que se anexa el
nombre. La ruta puede ser absoluta o relativa y no
necesita especificar una carpeta existente.

nombre Requerido. Nombre que se anexa a la ruta existente.


Comentarios:
El método BuildPath introduce un separador de ruta
adicional entre la ruta existente y el nombre sólo si es
necesario.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
04/11/2003 - 23:28 | Informe spam
Yo tengo una función que pienso que hace lo que necesitas, pero no usa el método BuildPath sino CreateFolder. Te pongo el enlace por si pudiera interesarte:

http://www.excelsp.com/vba01.htm#_F...para_crear

No estoy seguro al ciento por ciento, pero creo que BuildPath no crea físicamente los directorios, sino que "construye" la ruta en forma de cadena de texto.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Andrés Porfirio" escribió en el mensaje news:02a501c3a319$12c20180$
Necesito ayuda para contruir una ruta preferiblemente con
BuildPath (Método)

Por favor, necesito una macro que me resuelva este
problema.

Tengo una parte invariable de la ruta: C:\Auditor\
y deseo agregar una parte variable de la ruta que está en
una una celda de otro libro que está actualmente abierto,
por ejemplo:
Libro=Configuracion
Hoja=Derechos
Celda¡

A continuación agrego la ayuda correspondiente a este
método:

Descripción
Anexa un nombre a una ruta existente.

Sintaxis
objeto.BuildPath(ruta, nombre)

La sintaxis del método BuildPath consta de las siguientes
partes:

Parte Descripción
objeto Requerido. Siempre el nombre de un objeto
FileSystemObject.

ruta Requerido. Ruta existente a la que se anexa el
nombre. La ruta puede ser absoluta o relativa y no
necesita especificar una carpeta existente.

nombre Requerido. Nombre que se anexa a la ruta existente.


Comentarios:
El método BuildPath introduce un separador de ruta
adicional entre la ruta existente y el nombre sólo si es
necesario.
Respuesta Responder a este mensaje
#2 Andrés Porfirio
05/11/2003 - 15:11 | Informe spam
Muchas Gracias Fernando!
Pero recuerda que el directorio a colgar lo encontraré en
un una celda a la que tengo que hacer referencia, por ej.
El directorio "C:\A\", como en tu solución, existe, pero
el resto "\B\C\", que es el que deseo agregar está en la
celda A1 de un libro X que está abierto,

¿Cómo hago referencia a esa celda en tu solución?

Yo tengo una función que pienso que hace lo que


necesitas, pero no usa el método BuildPath sino
CreateFolder. Te pongo el enlace por si pudiera
interesarte:

http://www.excelsp.com/vba01.htm#_F...para_crear

No estoy seguro al ciento por ciento, pero creo que


BuildPath no crea físicamente los directorios, sino
que "construye" la ruta en forma de cadena de texto.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Andrés Porfirio" escribió


en el mensaje news:02a501c3a319$12c20180
$
Necesito ayuda para contruir una ruta preferiblemente con
BuildPath (Método)

Por favor, necesito una macro que me resuelva este
problema.

Tengo una parte invariable de la ruta:


C:\Auditor\
y deseo agregar una parte variable de la ruta que está en
una una celda de otro libro que está actualmente abierto,
por ejemplo:
Libro=Configuracion
Hoja=Derechos
Celda¡

A continuación agrego la ayuda correspondiente a este
método:

Descripción
Anexa un nombre a una ruta existente.

Sintaxis
objeto.BuildPath(ruta, nombre)

La sintaxis del método BuildPath consta de las siguientes
partes:

Parte Descripción
objeto Requerido. Siempre el nombre de un objeto
FileSystemObject.

ruta Requerido. Ruta existente a la que se anexa el
nombre. La ruta puede ser absoluta o relativa y no
necesita especificar una carpeta existente.

nombre Requerido. Nombre que se anexa a la ruta


existente.


Comentarios:
El método BuildPath introduce un separador de ruta
adicional entre la ruta existente y el nombre sólo si es
necesario.

.

Respuesta Responder a este mensaje
#3 Fernando Arroyo
05/11/2003 - 16:25 | Informe spam
Suponiendo que la hoja donde está la ruta en A1 se llamara Hoja1 y el libro donde está dicha hoja fuera Libro1, tendrías que poner algo parecido a esto en el código encargado de crear los directorios:

If Not CrearDirectorio("C:\A" & Workbooks("Libro1.xls").Worksheets("Hoja1").Range("A1")) Then MsgBox "Error al crear el directorio " & "C:\A" & Workbooks("Libro1.xls").Worksheets("Hoja1").Range("A1")

Un saludo.


Fernando Arroyo
MS MVP - Excel

"Andrés Porfirio" escribió en el mensaje news:0e5f01c3a3a6$badab5a0$
Muchas Gracias Fernando!
Pero recuerda que el directorio a colgar lo encontraré en
un una celda a la que tengo que hacer referencia, por ej.
El directorio "C:\A\", como en tu solución, existe, pero
el resto "\B\C\", que es el que deseo agregar está en la
celda A1 de un libro X que está abierto,

¿Cómo hago referencia a esa celda en tu solución?
Respuesta Responder a este mensaje
#4 Andrés Porfirio
05/11/2003 - 21:26 | Informe spam
Fernando: No puedo hacerlo funcionar.
Mi idea es una macro con la que pueda salvar como un
conjunto de libros, teniendo construida la ruta en una
celda, a partir de las informaciones de los libros.

Es por lo que necesito que excel me cree la parte que
falta del directorio. Pero no me funciona. Tengo:

Directorio: "C:\Auditor", que ya existe.

En el Libro: "Configuracion", que ya existe, está la
celda: "Q11", que contiene "C:\Auditor\SG\2002\Anexos.xls"

La macro para SALVAR COMO ya la tengo, pero me devuelve el
error: Directorio "C:\Auditor\SG\2002" no existe.

En realidad yo no sé prácticamente nada de Visual Base,
así que si puedes aplicar el ejemplo exactamente a lo que
te he enviado, te lo agradeceré.


Suponiendo que la hoja donde está la ruta en A1 se


llamara Hoja1 y el libro donde está dicha hoja fuera
Libro1, tendrías que poner algo parecido a esto en el
código encargado de crear los directorios:

If Not CrearDirectorio("C:\A" & Workbooks


("Libro1.xls").Worksheets("Hoja1").Range("A1")) Then
MsgBox "Error al crear el directorio " & "C:\A" & Workbooks
("Libro1.xls").Worksheets("Hoja1").Range("A1")

Un saludo.


Fernando Arroyo
MS MVP - Excel

"Andrés Porfirio" escribió


en el mensaje news:0e5f01c3a3a6$badab5a0
$
Muchas Gracias Fernando!
Pero recuerda que el directorio a colgar lo encontraré en
un una celda a la que tengo que hacer referencia, por ej.
El directorio "C:\A\", como en tu solución, existe, pero
el resto "\B\C\", que es el que deseo agregar está en la
celda A1 de un libro X que está abierto,

¿Cómo hago referencia a esa celda en tu solución?


.

Respuesta Responder a este mensaje
#5 Fernando Arroyo
06/11/2003 - 10:13 | Informe spam
No dices dónde se encuentra la macro que debe encargarse de grabar los libros según el nombre especificado en la celda Q11, así que supongo que dicho libro no debe guardarse con el nombre almacenado en dicha celda. Tampoco dices cómo se llama la hoja donde está la ruta y el nombre de los libros. He supuesto que se llama Hoja1. Si ambas cosas son ciertas, el siguiente código debería funcionarte:


Sub GrabarComo()
Dim wkb As Workbook

For Each wkb In Workbooks
If wkb.Name <> ThisWorkbook.Name Then 'Para evitar guardar el libro que tiene la macro.
If Not CrearDirectorio(Left(wkb.Worksheets("Hoja1").Range("Q11"), InStrRev(wkb.Worksheets("Hoja1").Range("Q11"), "\") - 1)) Then
MsgBox "Error al crear el directorio " & Left(wkb.Worksheets("Hoja1").Range("Q11"), InStrRev(wkb.Worksheets("Hoja1").Range("Q11"), "\") - 1)
Stop
End If
End If
Next wkb

Set wkb = Nothing
End Sub


Function CrearDirectorio(strRuta As String) As Boolean
'Sintaxis: CrearDirectorio("Unidad:\Directorio1\Directorio2\...\Directorio n")

Dim fsoF As Object
Set fsoF = CreateObject("Scripting.FileSystemObject")
Dim mtr() As String, n As Integer, strCreandoRuta As String

mtr = Split(strRuta, "\")

If UBound(mtr) - LBound(mtr) = 0 Then Exit Function 'La ruta que se quiere crear no es correcta
If Dir(mtr(LBound(mtr))) = "" Then Exit Function 'La unidad no existe

strCreandoRuta = mtr(LBound(mtr()))

For n = LBound(mtr) + 1 To UBound(mtr)
strCreandoRuta = strCreandoRuta & Application.PathSeparator & mtr(n)
If Not fsoF.FolderExists(strCreandoRuta) Then fsoF.CreateFolder strCreandoRuta
Next n

Set fsoF = Nothing

CrearDirectorio = True 'La función devuelve True para indicar que la ruta se pudo crear
End Function


Un saludo.


Fernando Arroyo
MS MVP - Excel


"Andrés Porfirio" escribió en el mensaje news:030001c3a3db$1fc47580$
Fernando: No puedo hacerlo funcionar.
Mi idea es una macro con la que pueda salvar como un
conjunto de libros, teniendo construida la ruta en una
celda, a partir de las informaciones de los libros.

Es por lo que necesito que excel me cree la parte que
falta del directorio. Pero no me funciona. Tengo:

Directorio: "C:\Auditor", que ya existe.

En el Libro: "Configuracion", que ya existe, está la
celda: "Q11", que contiene "C:\Auditor\SG\2002\Anexos.xls"

La macro para SALVAR COMO ya la tengo, pero me devuelve el
error: Directorio "C:\Auditor\SG\2002" no existe.

En realidad yo no sé prácticamente nada de Visual Base,
así que si puedes aplicar el ejemplo exactamente a lo que
te he enviado, te lo agradeceré.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida