Crear directorios desde VBA

03/05/2005 - 11:12 por Rantamplan | Informe spam
Buenas foro,
tengo en una hoja un boton con un codigo asociado que se supone al pulsar
sobre el boton comprueba si existe un directorio llamado 2005 y si no
existe lo crea. Si existe, comprueba que dentro de el exista otro
subdirectorio con el mes actual y si no existe, tambien lo crea.
El caso es que no me funciona, me falla en el momento de crear el
directorio correspondiente al año (Error 76, no se ha encontrado la ruta
de acceso). El caso es que este mismo codigo lo tengo funcionando en un
excel97 y funciona, pero en un excel 2003 no soy capaz de hacerlo andar!.
¿Alguna sugerencia? ;-)

Private Sub CommandButton2_Click()
Dim anno_actual, mes_actual, ruta_mes, ruta_anno
Dim meses As Variant
Dim i As Integer, j As Integer

meses = Array("Enero", "Feberero", "Marzo", "Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")


'Devuelve un entero del 1 al 12 asociado al mes actual
'1 - Enero ... 12 - Diciembre
mes_actual = DatePart("m", Date)
anno_actual = DatePart("yyyy", Date)

For i = 2005 To 2010
If i = anno_actual Then
MsgBox anno_actual
ruta_anno = "c:\Remoto\" + CStr(i)
MsgBox ruta_anno
If Dir(ruta_anno) = "" Then
MkDir ruta_anno
'End If
'Para los 12 meses del año
For j = 0 To 11
If j = mes_actual - 1 Then
MsgBox mes_actual
ruta_mes = ruta_anno + "\" + meses(j)
MsgBox ruta_mes
If Dir(ruta_mes) = "" Then
MkDir ruta_mes
End If
End If
Next j
End If
End If
Next i
End Sub


Gracias!
Salu2.
"los videojuegos no tienen ninguna influencia sobre los niños.
Quiero decir, si el Pac-Man hubiese influenciado a nuestra generación,
estaríamos todos corriendo en salas oscuras, masticando píldoras
mágicas y escuchando músicas electrónicas repetitivas".
Kristian Wilson, Nintendo Inc., 1989
 

Leer las respuestas

#1 Fernando Arroyo
03/05/2005 - 14:36 | Informe spam
Yo creo que el problema puede ser que no le estás diciendo a la función Dir que se trata de directorios, pero no sé el motivo de que el código te funcione en Excel 97 pero no en 2003. A mí el siguiente código me funciona en Excel 2003:

Sub prueba()
Dim n As Integer, i As Byte

For n = 2005 To 2010
If Dir("C:emoto\" & CStr(n), vbDirectory) = "" Then MkDir ("C:emoto\" & CStr(n))
For i = 1 To 12
If Dir("C:emoto\" & CStr(n) & "\" & Format(DateSerial(1, i, 1), "mmmm"), vbDirectory) = "" Then MkDir ("C:emoto\" & CStr(n) & "\" & Format(DateSerial(1, i, 1), "mmmm"))
Next i
Next n
End Sub

Un saludo.


Fernando Arroyo
MS MVP - Excel



"Rantamplan" escribió en el mensaje news:
Buenas foro,
tengo en una hoja un boton con un codigo asociado que se supone al pulsar
sobre el boton comprueba si existe un directorio llamado 2005 y si no
existe lo crea. Si existe, comprueba que dentro de el exista otro
subdirectorio con el mes actual y si no existe, tambien lo crea.
El caso es que no me funciona, me falla en el momento de crear el
directorio correspondiente al año (Error 76, no se ha encontrado la ruta
de acceso). El caso es que este mismo codigo lo tengo funcionando en un
excel97 y funciona, pero en un excel 2003 no soy capaz de hacerlo andar!.
¿Alguna sugerencia? ;-)

Private Sub CommandButton2_Click()
Dim anno_actual, mes_actual, ruta_mes, ruta_anno
Dim meses As Variant
Dim i As Integer, j As Integer

meses = Array("Enero", "Feberero", "Marzo", "Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")


'Devuelve un entero del 1 al 12 asociado al mes actual
'1 - Enero ... 12 - Diciembre
mes_actual = DatePart("m", Date)
anno_actual = DatePart("yyyy", Date)

For i = 2005 To 2010
If i = anno_actual Then
MsgBox anno_actual
ruta_anno = "c:\Remoto\" + CStr(i)
MsgBox ruta_anno
If Dir(ruta_anno) = "" Then
MkDir ruta_anno
'End If
'Para los 12 meses del año
For j = 0 To 11
If j = mes_actual - 1 Then
MsgBox mes_actual
ruta_mes = ruta_anno + "\" + meses(j)
MsgBox ruta_mes
If Dir(ruta_mes) = "" Then
MkDir ruta_mes
End If
End If
Next j
End If
End If
Next i
End Sub


Gracias!
Salu2.
"los videojuegos no tienen ninguna influencia sobre los niños.
Quiero decir, si el Pac-Man hubiese influenciado a nuestra generación,
estaríamos todos corriendo en salas oscuras, masticando píldoras
mágicas y escuchando músicas electrónicas repetitivas".
Kristian Wilson, Nintendo Inc., 1989

Preguntas similares