Existen muchas maneras tradicionales para crear una carpeta en la ubicación que el usuario decida, pero en esta oportunidad se explicará cómo hacerlo utilizando una función que nos brinda el Editor de VBA, la cual es la Función MKDIR.
Descripción
La Función MKDIR permite crear un directorio o carpeta, el cual facilitará algunas acciones cuando uno programe al crear una Macros.
Sintaxis
La función que se debe insertar en el editor de VBA debe ser como la siguiente:
MkDir (Path As String)
Para ello, antes de digitar el nombre de la carpeta a crear, es necesario que la variable Path sea definida como String.
Por ejemplo:
Dim Path as String
Observaciones
- Previamente al uso de esta función, se debe recordar cómo definir adecuadamente los parámetros a utilizar, ya que si no se respeta dicha definición inicial, la Macros creada no funcionará.
- Si el nombre de la carpeta que se desea crear ya existe, la Macros emitirá un mensaje de error, por lo que se debe revisar previamente que no existe dicho nombre.
Ejemplo
Creación de la macro
- Crear el Sub CrearCarpeta()
- Definir las variables a utilizar.
- Dim Path as String
- Dim NombreCarpeta as String.
- Asignar el valor a la variable Path y NombreCarpeta.
- Definir la función MkDir con los parámetros adecuados.
- Utilizar el MsgBox para mostrar el mensaje de creación de la Macros.
A continuación se muestra la imagen de la Macros creada.
(Para mayor visualización de la imagen, hacer click en la misma)
Uso de la Macro
Luego de dicha programación, la Macros creada realizará los siguientes pasos:
- Ubicará la dirección que se muestra en el Path.
- Solicitará el nombre de la carpeta que se quiere crear.
- Creará la carpeta en la ubicación indicada.
- Mostrará un mensaje que la carpeta fue creada con éxito.
Si desean utilizar el presente ejemplo, pueden descargar el archivo en la siguiente dirección:
Por: Luis André Gómez Aliaga
30/06/2015 a las 11:32 am
Función muy interesante para creación de carpetas.
Me pregunto si puede usarse de manera conjunta con un actualizador de Fecha, para que sean los archivos creados del día.
16/07/2018 a las 11:46 am
Hola amigo,
Como puedo hacerle para mostrar un mensaje de error cuando alguien no escriba nada en el MessageBox?
Espero me puedas ayudar,
Gracias.
06/07/2019 a las 3:46 pm
Eso es todo lo que necesitaba!!, gracias
19/09/2019 a las 6:20 am
Buenos días.
Con Office 2013 a mi me funciona perfectamente lo siguiente:
Sub creaCarpeta()
On Error GoTo Errores
Dim carpeta As String
carpeta = "J:\2019\nombrenuevacarpeta"
If Len(Dir(carpeta, vbDirectory)) = 0 Then
MkDir carpeta
End If
Salida:
Exit Sub
Errores:
MsgBox("Se ha producido un error...")
Resume Salida
End Sub
Si en lugar de la letra de unidad, en este caso J:\, pongo un nombre de recurso compartido no funciona. ¿Se puede hacer algo para que funcione con dicho nombre de recurso compartido?
Ejemplo:
MkDir "J:\2019\nombrenuevacarpeta" ' Funciona
MkDir "nombre_recurso_compartido\2019\nombrenuevacarpeta" ' No funciona
10/03/2020 a las 10:46 am
Hola buenas.
Yo tengo un listado de expedientes que se va ampliando y desearía poder crear una carpeta con la última entrada de ese listado en una carpeta. Es eso posible?