Macro con cadenas de caracteres

27/09/2007 - 08:30 por Jon | Informe spam
Hola y gracias nuevamente de antemano. Anteriormente había hecho una consulta
(ver foro Subject: Macro para lectura de directorio) y encontré la solución
mirando, pero me han surgido unas dudas referente a un paso posterior que
quiero realizar.

Con esta macro que dan en la pagina web, consigo tener lo siguiente:
Una cadena de texto en la que tengo Unidad\Dir1\Dir2\...\Dirn\Fichero
Yo al programa le digo donde quiero que me liste los documentos y quiero
tener en una variable el nombre de la subcarpeta en la que se ha metido.

Igual lo mejor es verlo en un ejemplo:

Si le digo que me liste ficheros incluyendo subdirectorios de c:\mis
documentos, entre los resultados tengo:
c:\mis documentos\carpeta1\carpeta2\documento.doc
Por tanto, teniendo estas dos cadenas de caracteres, como puedo hacer para
obtener en una nueva variable el nombre "carpeta1" mediante una macro? es
decir, me interesa saber la primera subcarpeta en la que se ha metido.

Espero que me haya explicado y sino, cualquier duda que os pueda aclarar, me
decis, por favor.

Muchas gracias de nuevo.

Saludos,

Jon.

Preguntas similare

Leer las respuestas

#1 Juan M
27/09/2007 - 09:15 | Informe spam
"Jon" escribió
Mostrar la cita
Hola Jon,

Prueba el siguiente código.
Con la ruta que hay en A3, separa cada cadena entre los símbolos de
directorio (\)

Para obtener el segundo pon m(2)

Sub test()
Dim m As Variant
Dim i As Long

m = Split(Range("A3"), "\")
For i = LBound(m) To UBound(m)
Range("b3").Offset(, i) = m(i)
Next i

End Sub

o como una funcion donde le pasas la ruta y la carpeta que quieres

Function SeparaDirectorio(m As String, i As Long) As String

Dim c As Variant

c = Split(m, "\")
If i > UBound(c) Then
Separa = "Hay " & UBound(c) & " niveles"
Else
Separa = CStr(c(i))
End If


End Function
#2 Juan M
27/09/2007 - 09:19 | Informe spam
Hola Jon,

En la funcion cambie el nombre al enviarla y dara errores.
Cambia el nombre SeparaDirectorio por Separa

Function SeparaDirectorio(m As String, i As Long) As String

por

Function SeparaDirectorio(m As String, i As Long) As String

Un saludo,
Juan
#3 Juan M
27/09/2007 - 09:23 | Informe spam
Perdón de nuevo,

Function SeparaDirectorio(m As String, i As Long) As String

por

Function Separa(m As String, i As Long) As String

Un saludo,
Juan
#4 Jon
27/09/2007 - 09:29 | Informe spam
Hola Juan
Muchas gracias!
con eso ya me puedo apañar.
Saludos,
Jon.

"Juan M" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida