Obtener path y name de un fullname string

26/02/2008 - 19:16 por rlaria | Informe spam
Tengo un string que contiene el fullname de un libro: C:\temp\pepe.xls
(este string varía, puede tener varios subniveles de carpetas y el
nombre del xls puede variar)

El problema q tengo es q necesito separar por un lado el path y por
otro el name.
Para eso entiendo q primero debo convertir el string a una variable
workbook.

He probado con algo asi pero no me funciona

Sub ppp()
Dim j As Workbook
Set j = "C:\temp\pepe.xls"
MsgBox j.path
Msgbox j.name
End Sub

¿Alguna sugerencia?

Mil gracias !
 

Leer las respuestas

#1 Héctor Miguel
27/02/2008 - 02:16 | Informe spam
hola, (...) ???

Tengo un string que contiene el fullname de un libro: C:\temp\pepe.xls
(este string varía, puede tener varios subniveles de carpetas y el nombre del xls puede variar)
El problema q tengo es q necesito separar por un lado el path y por otro el name.
Para eso entiendo q primero debo convertir el string a una variable workbook.
He probado con algo asi pero no me funciona

Sub ppp()
Dim j As Workbook
Set j = "C:\temp\pepe.xls"
MsgBox j.path
Msgbox j.name
End Sub

Alguna sugerencia?



1) declarar una variable de tipo Workbook "asume" (o requiere) un libro ya abierto en la sesion (por lo tanto):
a) no es necesario indicar la ruta (no puede haber dos libros abiertos del mismo nombre aun en distinta ruta)
b) no debes establecer su valor con una variable de texto sino es que...
c) ANTES deberas indicar que se trata de la coleccion Workbooks (p.e.)
-> Set j = Workbooks("pepe.xls")

2) si suponemos que (en realidad) se trata de una cadena de texto...
Sub ppp()
Dim j As String, Ruta As String, Nombre As String
j = "c:\temp\pepe.xls"
Ruta = Left(j, InStr(j, "pepe.xls") - 1)
Nombre = Mid(j, Len(Ruta) + 1)
MsgBox Ruta & vbCr & Nombre
End Sub

tambien podrias usar otras alternativas, como:
- objetos FileSystemObject
- la funcion vba InStrRev (excel 2000 en adelante)
- la funcion Dir(...) con algunas combinaciones de lo anterior, etc. etc. etc.
el etc. dependeria de otros detalles que (posiblemente) hubieras dejado "en el tintero")

saludos,
hector.

Preguntas similares