Comprobar si hay una carpeta con VBA
Soy un poco novato y necesito tu ayuda con el siguiente problema:
Estoy creando varias macros en las que necesito abrir unos documentos que se encuentran en una carpeta del disco duro y tras realizar varios cambios en los mismos necesito guardarlos en otro directorio situado en el escritorio, todo, el problema se me presenta cuando ya hay una carpeta con el mismo nombre en el escritorio, lo he intentado de varias formas pero me da error, la última forma que estoy haciéndolo es así:
Sub Crear_Hoja()
Documents.Open FileName:="C:\MIS ARCHIVOS\AT\PERSONAS.doc" ' abro el archivo
Windows("PERSONAS").Activate ' activo el documento
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists("C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS") Then
ActiveDocument.SaveAs FileName:="C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS\" & "HOJA PERSONAS DE" _
& TextApe1Det & ".doc" '' Si existe la carpeta EJEMPLOS DE ESCRITOS en el escritorio me lo guarda en esa carpeta y con el nombre que le especifico de los datos que saco de un formulario
Else
MkDir ("C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS") ' si no existe la carpeta pues la crea
ActiveDocument.SaveAs FileName:="C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS\" & "HOJA PERSONAS DE" _
& TextApe1Det & ".doc"
End If
End Sub
El problema es que me da error cuando hay una carpeta con el mismo nombre en el escritorio, pero lo que verdaderamente necesitaría es que si hay una carpeta igual la guarde en un directorio temporal del disco duro y me cree una nueva carpeta llamada EJEMPLOS DE ESCRITO y en ella se guarde el documento "Hoja de Personas de" & TextApe1Det & ".doc"
Estoy creando varias macros en las que necesito abrir unos documentos que se encuentran en una carpeta del disco duro y tras realizar varios cambios en los mismos necesito guardarlos en otro directorio situado en el escritorio, todo, el problema se me presenta cuando ya hay una carpeta con el mismo nombre en el escritorio, lo he intentado de varias formas pero me da error, la última forma que estoy haciéndolo es así:
Sub Crear_Hoja()
Documents.Open FileName:="C:\MIS ARCHIVOS\AT\PERSONAS.doc" ' abro el archivo
Windows("PERSONAS").Activate ' activo el documento
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists("C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS") Then
ActiveDocument.SaveAs FileName:="C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS\" & "HOJA PERSONAS DE" _
& TextApe1Det & ".doc" '' Si existe la carpeta EJEMPLOS DE ESCRITOS en el escritorio me lo guarda en esa carpeta y con el nombre que le especifico de los datos que saco de un formulario
Else
MkDir ("C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS") ' si no existe la carpeta pues la crea
ActiveDocument.SaveAs FileName:="C:\Documents and Settings\trex\Escritorio\EJEMPLOS DE ESCRITOS\" & "HOJA PERSONAS DE" _
& TextApe1Det & ".doc"
End If
End Sub
El problema es que me da error cuando hay una carpeta con el mismo nombre en el escritorio, pero lo que verdaderamente necesitaría es que si hay una carpeta igual la guarde en un directorio temporal del disco duro y me cree una nueva carpeta llamada EJEMPLOS DE ESCRITO y en ella se guarde el documento "Hoja de Personas de" & TextApe1Det & ".doc"
1 respuesta
Respuesta de Elsa Matilde
2