Necesito un macro para crear una carpeta desde excel

Necesito un macro para crear una carpeta desde excel, pero cuando valla a guardar por segunda vez no cree otra carpeta si no que guarde en la que ya se ha creado

1 respuesta

Respuesta
1

¿Quieres qué la macro te pregunte el nombre de la carpeta o la macro tiene que tomar el nombre de alguna celda y crear la carpeta?

Si la carpeta ya existe, ya no crea la carpeta, pero dices: "¿si no que guarde en la que ya se ha creado"? ¿Y qué va a guardar?

Hola

el nombre de la carpeta puede ser contrato, este es el código que tengo funciona bien solo que todo queda guardado en c y quisiera que quedara en una carpeta para mayor orden puesto que es usado en varias computadoras

Private Sub cmdimprimir_Click()
Dim I As Integer
Dim N As Integer
Dim Ruta As String
Dim Titulo As String
Dim Nuevo_nombre As String
Nuevo_nombre = Range("E3")
I = Range("AA2")
N = 1
For I = 1 To N
Range("AA2") = Range("AA2") + 1
Sheets("Contrato").Visible = True
On Error Resume Next
With CreateObject("shell.application")
Ruta = ("C:\")
End With: On Error GoTo 0
If Ruta = "" Then Exit Sub _
Else: Nuevo_nombre = Sheets("Contrato").Range("E3") & " " & Sheets("Contrato").Range("C40") & " " & Sheets("Contrato").Range("C6")
If Nuevo_nombre = "" Then Exit Sub _
Else Nuevo_nombre = Ruta & "\" & Nuevo_nombre & ".pdf"
Worksheets("Contrato").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=Nuevo_nombre, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
Worksheets("Contrato").PrintOut Copies:=2
Sheets("Contrato").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Datos").Select
Next I
End Sub

Cambia esto:

With CreateObject("shell.application")
Ruta = ("C:\")
End With: On Error GoTo 0

Por esto:

carpeta = "contrato"
inicial = "C:\"
ChDir inicial
If Dir(carpeta, vbDirectory) = "" Then
MkDir carpeta
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas