Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/07/2008, 15:43
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Error 13 No coinciden los tipos

Hola!

¿Existe la ruta "C:\windows\pollo feliz\pv traslados\"? Si ese directorio no existe, no te dejará crear ninguno debajo, porque las funciones de creación de directorios no son recursivas.

Puedes atajarlo con algo así (debería funcionar, la he escrito aquí directamente u^^):

Código:
Public Sub CreaRuta(ByVal NPath as String)
Dim Direc() As String
Dim i As Long
Dim TempPath As String
Dim fs As Object
Dim f as Object

    Set fs = CreateObject("Scripting.FileSystemObject")

    Direc = Split(NPath, "\")

    TempPath = Direc(0) & "\"
    For i = 1 to Ubound(Direc)
        TempPath = TempPath & Direc(i) & "\"
        If Dir(TempPath, vbDirectory) = "" Then
            Set f = fs.CreateFolder(TempPath)
        End If
    Next i

    Erase Direc
End Sub
Esta función lo que hace es descomponer primero en un array todos los directorios por separado, y luego va concatenando las rutas para asegurarse de que todas las carpetas existen antes de crear una nueva.

En el caso que necesitas, primero intenta crear "C:\windows\"; como ya existe, intenta crear "C:\windows\pollo feliz\"; si ya existe no hace nada, pero si no, la crea, luego lo intenta con "C:\windows\pollo feliz\pv traslados\" y así ad infinitum... o hasta que se le acabe la ruta que le has dicho

Última edición por Txoco; 16/07/2008 a las 00:23 Razón: Corregir la función