Crear carpetas

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Crear carpetas

Notapor Fernando Lemus » 14 Sep 2006 13:51

Amigos del foro si alguien tiene un ejemplo de como crear carpetas con un macro que como primer punto, si la carpeta no existe la cree y si ya existe solo guarde la informacion que se creara como backup...

slds,
Fernando
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Fernando Lemus
Miembro Frecuente
Miembro Frecuente
 
Registrado: 03 Feb 2006 15:12
Ubicación: Guatemala

Re: Crear carpetas

Notapor KL » 14 Sep 2006 14:59

A ver algo asi como punto de partida:

Código: Seleccionar todo
Sub test()
    Dim Ruta As String, Directorios, i As Long, x As String
    Ruta = "c:\temp\prueba\carpeta\test"
    On Error Resume Next
    x = GetAttr(Ruta) And 0
    If Err.Number <> 0 Then
        Respuesta = MsgBox( _
            "La carpeta no existe. Desea crearla?", _
                vbExclamation + vbOKCancel)
        If Respuesta = vbCancel Then Exit Sub
        On Error GoTo 0
        Directorios = Split(Ruta, "\"): Ruta = ""
        For i = LBound(Directorios) To UBound(Directorios)
            Ruta = Ruta & Directorios(i) & "\"
            On Error Resume Next
            x = GetAttr(Ruta) And 0
            If Err.Number <> 0 Then MkDir Ruta
            On Error GoTo 0
        Next i
    End If
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Crear carpetas

Notapor Fernando Lemus » 14 Sep 2006 19:01

Kl si quiesiera que determinadas hojas se grabaran por ejemplo la hoja 1 y 2 en la carpeta Diario me guarde solo la informacion que tengo en la hoja 1 y 2 como se hace el macro.

slds.,
Fernando
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Fernando Lemus
Miembro Frecuente
Miembro Frecuente
 
Registrado: 03 Feb 2006 15:12
Ubicación: Guatemala

Re: Crear carpetas

Notapor KL » 14 Sep 2006 20:44

que tal esto:

Código: Seleccionar todo
Sub test()
    Dim Ruta As String
    Dim Directorios
    Dim i As Long
    Dim x As String
    Dim Archivo As String
   
    Ruta = "c:\Backup\Diario"
    Archivo = "Backup.xls"
   
    On Error Resume Next
    x = GetAttr(Ruta) And 0
    If Err.Number <> 0 Then
        Respuesta = MsgBox( _
            "La carpeta no existe. Desea crearla?", _
                vbExclamation + vbOKCancel)
        If Respuesta = vbCancel Then Exit Sub
        On Error GoTo 0
        Directorios = Split(Ruta, "\"): Ruta = ""
        For i = LBound(Directorios) To UBound(Directorios)
            Ruta = Ruta & Directorios(i) & "\"
            On Error Resume Next
            x = GetAttr(Ruta) And 0
            If Err.Number <> 0 Then MkDir Ruta
            On Error GoTo 0
        Next i
    End If
    Sheets(Array(Sheets(1).Name, Sheets(2).Name)).Copy
    On Error Resume Next
    With ActiveWorkbook
        .SaveAs IIf(Right(Ruta, 1) = "\", Ruta, Ruta & "\") & Archivo
        If Err.Number <> 0 Then .Close False Else .Close True
    End With
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Crear carpetas

Notapor Carlos Eduardo » 15 Sep 2006 10:48

Ejecute la macro y me sale enrror en la siguiente linea

Directorios = Split(Ruta, "\"): Ruta = ""

por favor podrian explicarme
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Carlos Eduardo
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Jun 2005 12:48
Ubicación: LIMA - PERU

Re: Crear carpetas

Notapor KL » 15 Sep 2006 11:02

Has modificado la macro? Si afirmativo, podrias exponer el codigo o mejor el archivo que te da problemas?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Crear carpetas

Notapor Carlos Eduardo » 15 Sep 2006 15:18

Lo que hice solamente fue copiar la macro en el archivo que adjunto
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Carlos Eduardo
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Jun 2005 12:48
Ubicación: LIMA - PERU

Re: Crear carpetas

Notapor KL » 15 Sep 2006 16:22

Pues entonces supongo que usas Excel 97. Si es asi, reemplaza el codigo anterior por el siguiente:

Código: Seleccionar todo
Sub test()
    Dim Ruta As String
    Dim Directorios
    Dim i As Long
    Dim x As String
    Dim Archivo As String
   
    Ruta = "c:\Backup\Diario"
    Archivo = "Backup.xls"
   
    On Error Resume Next
    x = GetAttr(Ruta) And 0
    If Err.Number <> 0 Then
        Respuesta = MsgBox( _
            "La carpeta no existe. Desea crearla?", _
                vbExclamation + vbOKCancel)
        If Respuesta = vbCancel Then Exit Sub
        On Error GoTo 0
        Directorios = Split(Ruta, "\"): Ruta = ""
        For i = LBound(Directorios) To UBound(Directorios)
            Ruta = Ruta & Directorios(i) & "\"
            On Error Resume Next
            x = GetAttr(Ruta) And 0
            If Err.Number <> 0 Then MkDir Ruta
            On Error GoTo 0
        Next i
    End If
    Sheets(Array(Sheets(1).Name, Sheets(2).Name)).Copy
    On Error Resume Next
    With ActiveWorkbook
        .SaveAs IIf(Right(Ruta, 1) = "\", Ruta, Ruta & "\") & Archivo
        If Err.Number <> 0 Then .Close False Else .Close True
    End With
End Sub

#If Not VBA6 Then
Function Split(Cadena As String, Delimitador As String) As Variant
  Split = Evaluate("{""" & Application.Substitute(Cadena, Delimitador, """,""") & """}")
End Function
#End If
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Crear carpetas

Notapor Carlos Eduardo » 15 Sep 2006 16:35

Efectivamente; trabajo con oficce 97
Gracias muchas gracias funciono perfecto
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Carlos Eduardo
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Jun 2005 12:48
Ubicación: LIMA - PERU


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados