Foros del Web » Soporte técnico » Ofimática »

crear o borrar una carpeta desde excel 2003

Estas en el tema de crear o borrar una carpeta desde excel 2003 en el foro de Ofimática en Foros del Web. mi problemática es la siguiente: tengo que copiar unos archivos de distintas extensiones en otra carpeta para mandar dicha carpeta a unos clientes. Eso lo ...
  #1 (permalink)  
Antiguo 04/04/2006, 03:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 19 años
Puntos: 1
crear o borrar una carpeta desde excel 2003

mi problemática es la siguiente:
tengo que copiar unos archivos de distintas extensiones en otra carpeta para mandar dicha carpeta a unos clientes. Eso lo hago sin problema desde excel. El asunto es que no todos los clientes tienen que tener todos los archivos y cuando paso de la primera descarga los archivos que he copiado en la anterior continúan allí. Si tienen el mismo nombre los sobreescribo sin problema, pero si su nombre es diferente no puedo eliminarlos porque no sé, en ese instante, como se llaman.

Se me ocurren dos cosas que me puedan ayudar:
1 - Poder leer los nombres de todos los archivos que estén en la carpeta en cuestión y eliminarlos.
2 - Crear una carpeta nueva con el mismo nombre y pisarla.
Las dos maneras las tengo que hacer desde excel y de ambas consigo tener la carpeta limpia de todo posible resto anterior.

Os podeis preguntar por qué no limpio la carpeta antes de empezar la copia. Ya he tenido en cuenta esta opción, pero mi programa lo va a utilizar bastante gente y que puede que no tenga en cuenta ese detalle de eliminar los archivos antes. La solución que se me ha ocurrido es avisarles con algun mensaje, pero si puedo evitar depender de algo externo al programa mejor. No vaya a ser que lo hagan mal y luego ya sabemos para quien son las culpas .
Agradezco vuestra ayuda.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #2 (permalink)  
Antiguo 04/04/2006, 05:35
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses
Puntos: 144
Hola potypoty. No me he enterado muy bien, de lo que quieres hacer, pero te dejo esto que he hecho rápidamente (estoy bastante pillado de curro), para que le eches un vistazo. En la columna A tendrás las subcarpetas que cuelgan de la carpeta "Mis documentos", y en la columna B, los ficheros. Ya sé que no es eso lo que buscas concretamente, pero el ejemplo te va a servir, tanto para lo que buscas, como para cosillas futuras (o eso creo):

Código:
Sub listado_ficheros()
Application.ScreenUpdating = False
'Definimos la carpeta en la que queremos meternos
Ruta = "c:\Mis documentos"
'Creamos el objeto FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Carpetas = FSO.GetFolder(Ruta)
Set ArchivosDelDirectorio = Carpetas.Files
Set Subcarpetas = Carpetas.SubFolders
Range("A1") = "CARPETAS"
Range("A2").Select
For Each Elementos In Subcarpetas
    NombreDeLaSubcarpeta = Elementos.Name
    ActiveCell = NombreDeLaSubcarpeta
    ActiveCell.Offset(1, 0).Activate
Next
Range("B1") = "ARCHIVOS"
Range("B2").Select
For Each Elementos In ArchivosDelDirectorio
    NombreDeLosArchivos = Elementos.Name
    ActiveCell = NombreDeLosArchivos
    ActiveCell.Offset(1, 0).Activate
Next
Set FSO = Nothing
Set Carpetas = Nothing
Set ArchivosDelDirectorio = Nothing
Set Subcarpetas = Nothing
Application.ScreenUpdating = true
End Sub
  #3 (permalink)  
Antiguo 04/04/2006, 07:05
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 19 años
Puntos: 1
De acuerdo

te lo agradezco mucho. Efectivamente no era lo que buscaba, pero si me ha dado unas ideas que me vienen muy bien y que podré utilizar seguro. Hemos cambiado un poco el método que inicialmente intentaba explicaros, pero con esto que me has dado podré hacer pruebas para conseguir que sea más fácil de lo que quieren modificar ahora.

Muchas gracias y ya te comentaré.

P.D: En el futuro si andas muy pillado no te preocupes por contestarme. De una u otra forma ya lo iré sacando.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #4 (permalink)  
Antiguo 04/04/2006, 07:36
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses
Puntos: 144
Cita:
Iniciado por potypoty
1 - Poder leer los nombres de todos los archivos que estén en la carpeta en cuestión y eliminarlos.
Vamos a añadir unas líneas (lo que hay en rojo), a la vista de eso. Ojo, es peligroso jugar con esas líneas que acabo de añadir, a no ser que se tengan las cosas claras.

Código:
Sub listado_ficheros()
Application.ScreenUpdating = False
'Definimos la carpeta en la que meternos
ruta = "C:\Mis documentos"
'Creamos el objeto FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Carpetas = FSO.GetFolder(ruta)
Set ArchivosDelDirectorio = Carpetas.Files
Set Subcarpetas = Carpetas.SubFolders
Range("A1") = "CARPETAS"
Range("A2").Select
For Each Elementos In Subcarpetas
    NombreDeLaSubcarpeta = Elementos.Name
    ActiveCell = NombreDeLaSubcarpeta
    ActiveCell.Offset(1, 0).Activate
Next
Range("B1") = "ARCHIVOS"
Range("B2").Select
For Each Elementos In ArchivosDelDirectorio
    NombreDeLosArchivos = Elementos.Name
    ActiveCell = NombreDeLosArchivos
    ActiveCell.Offset(1, 0).Activate
    '******* EDITADO ********
    'Si tenemos el fichero "pepe.xls", lo borramos
    '(podrías poner un msgbox, si quieres)
    FicheroABorrar = "pepe.xls"
    If FSO.FileExists(ruta & "\" & FicheroABorrar) Then
        'Borramos el fichero (ojo, que es peligroso: vamos a borrarrrrrrr)
        FSO.DeleteFile (ruta & "\" & FicheroABorrar)
    End If
    '************************
Next
Set FSO = Nothing
Set Carpetas = Nothing
Set ArchivosDelDirectorio = Nothing
Set Subcarpetas = Nothing
Application.ScreenUpdating = true
End Sub
Salu2

Editado:
Ayer se me olvidó comentar algo muy importante: los ficheros borrados utilizando este método, no son recuperables, pues no van a la papelera de reciclaje. De ahí que se deba utilizar con cautela.

Última edición por 3pies; 05/04/2006 a las 02:15
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:54.