Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/04/2008, 08:51
Avatar de Taribo007
Taribo007
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: abrir carpetas

Prueba esta rutina, creo que funciona:

Private Sub Comando0_Click()
Dim Retval
'abrimos la carpeta
Retval = Shell("explorer.EXE /e, /root," & RutaCarpeta(Me.Texto0), 1)
End Sub

Public Function RutaCarpeta(NomCarpeta As String) As String
Dim Ruta As String
Dim Digitos(1 To 4) As String

'Guardamos por separado los digitos en el array
For i = 1 To Len(NomCarpeta)
Digitos(i) = Mid(NomCarpeta, i, 1)
Next

Ruta = "D:\GENERAL EMPRESA\CLIENTES\Presupuestos\" 'del 1000 al 1999\1400-1499\1400-1409\1400

'Si el primer digito del numero pasado como string es un 0, primera carpeta. si es un 1, segunda carpeta
If Digitos(1) = 0 Then
Ruta = Ruta & "del 0001 al 0999\"
Else
Ruta = Ruta & "del 1000 al 1999\"
End If

'Añadimos la carpeta correspondiente al segundo digito
Ruta = Ruta & "del " & Digitos(1) & Digitos(2) & "00 al " & Digitos(1) & Digitos(2) & "99\"

'Añadimos la carpeta correspondiente al tercer digito
Ruta = Ruta & "del " & Digitos(1) & Digitos(2) & Digitos(3) & "0 al " & Digitos(1) & Digitos(2) & Digitos(3) & "9\"

'Por ultimo añadimos la carpeta pasada como parametro
Ruta = Ruta & NomCarpeta

'Y se lo devolvemos a la funcion
RutaCarpeta = Ruta
End Function


La funcion pegala en un modulo, y en el ejemplo Me.Texto0 es un cuadro de texto donde estaria el numero de la carpeta (1400)

Un saludo