Macro que permita guardar un Doc. Sin que reemplace a otro anterior (validación) y se genere correlativo

***Primero quiero felicitarte por el gran apoyo que brindas, eres lo máximo.***

Segundo: El problema que tengo es el siguiente.

1. En una carpeta llamada "Cartas" tengo varios documentos de word llamados por ejemplo (Carta-500-2016, Carta-501-2016, Carta-502-2016). Y fuera de esta carpeta tengo un doc. Llamado CartaModelo

2. Lo que quiero es un botón que al darle click me abra el doc. "CartaModelo"y que automáticamente lo guarde dentro de la carpeta "Cartas" con el nombre que le sigue, es decir "Carta-503-2016".

3. Y así este sucesivamente que ese botón me genere una nueva carta con su correlativo correspondiente verificando que no exista un doc. Anterior en esa carpeta para que no lo reemplace.

4. Finalmente que me sólo me deje la carta generada para poder trabajarla.

Hasta el momento sólo he podido crear el botón que me permite abrir el doc. "CartaModelo" desde su ubicación.

A la espera de tu colobración.

1 Respuesta

Respuesta
1

H o l a:

¿El botón lo tienes en un archivo de word? ¿Es el mismo archivo "carta modelo" o es otro archivo? ¿O el botón lo tienes en un archivo de excel?

El botón lo tengo en una macro de excel.

En sí lo que quiero es el código en visual basic para luego crear un ejecutable que trabaje con ese código

H o l a:

Te anexo la macro para abrir la carta con el siguiente consecutivo:

Sub CopiaCarta()
'Por.Dante Amor
    rutacartas = "C:\Users\Cartas\"
    rutamodelo = "C:\Users\rafa\"
    modelo = "CartaModelo.docx"
    '
    año = Year(Date)
    arch = Dir(rutacartas & "*" & año & ".docx")
    nmax = 0
    Do While arch <> ""
        n = Val(Mid(arch, 7, 3))
        If n > nmax Then nmax = n
        arch = Dir()
    Loop
    '
    nombre = "Carta-" & Format(nmax + 1, "000") & "-" & año & ".docx"
    FileCopy rutamodelo & modelo, rutacartas & nombre
    '
    Set wordapp = CreateObject("word.application")
    wordapp.Visible = True
    wordapp.Documents.Open rutacartas & nombre
End Sub


Revisa en la macro lo siguiente:

rutacartas = "C:\Users\Cartas\"
rutamodelo = "C:\Users\rafa\"
modelo = "CartaModelo.docx"

Según tus ejemplos los nombres tienes estos datos:

"carta-"

Un número de 3 dígitos

"-año.xlsm"


Lo que hace la macro es encontrar el siguiente consecutivo del año actual.

Te copia el archivo modelo con el nuevo nombre y abre el archivo con el nuevo nombre.


' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas