Error al agregar fecha con macro al nombre

Me da error cuando ejecuto una macro en la sig parte

nbre = Format(Now, "dd-mm-yy hh.mm.ss")

Lo quiero usar para agregar la fecha al nombre del archivo, que quede algo así:

DISPONIBLE 15-06-01.XLSX

¿Cómo debo hacerlo? ¿O por qué da error error este renglón?

3 respuestas

Respuesta
1

En excel de PC funciona perfectamente todo lo que han sugerido, pero en mac no... lo solucione de esta forma

'graba el archivo en xlsx con la fecha en el nombre
   'Asignar fechas a dichas variables
dia = Day(Date)
mes = Month(Date)
If dia < 10 Then
dia = "0" & dia
End If
If mes < 10 Then
mes = "0" & mes
End If
ruta = ThisWorkbook.Path
NOMBREHOJA = "DISPONIBLE "
filepath = ruta & ":" & NOMBREHOJA & mes & "-" & dia & " .xlsx"
ActiveWorkbook.SaveAs Filename:=filepath, FileFormat:=52º

tal vez no sea la mejor forma la de armar el día y mes con 2 dígitos (01, 02, 03...)

Respuesta
1

Si no necesitas la hora quitala de la instrucción Format:

nbre = Format(Now, "dd-mm-yy")

Y si la necesitas no uses los puntos como separador porque el punto separa el nombre de la extension:

nbre = Format(Now, "dd-mm-yy hhmmss")

Sdos

Elsa

Si además de la fecha necesita algún texto puede ser así:

nbre = "Disponible " & Format(Now, "dd-mm-yy hh.mm.ss")

Sdos!

Te recuerdo que la consulta sigue abierta. Considera que te he respondido en fecha y correctamente.. por favor valora la respuesta para darla por cerrada.

Sdos!

No habías aclarado que era para Mac. Creo que de todos modos merecemos valores nuestro tiempo dedicado a resolver tu consulta.

Sdos!

Respuesta
1

¿Y qué mensaje de error te aparece?

Puedes poner la macro completa

La macro me funciona con la fecha "dd-mm-yy hh.mm.ss"

Sub archivo()
    nbre = Format(Now, "dd-mm-yy hh.mm.ss")
    Sheets("Hoja6").Copy
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\disponible " & nbre & ".xlsx"
End Sub

Por eso necesito que me digas cuál es el mensaje de error.

Lo raro es que te apare el error en una variable.

Si te aparece este mensaje de error:

"No se ha definido la variable"

Es porque estás utilizando esto en tu macro:

Option Explicit

Puedes solucionarlo, quitando esta instrucción Option Explicit, o bien, antes de la línea

Declarar la variable:

    Dim nbre As String
    nbre = Format(Now, "dd-mm-yy hh.mm.ss")

Saludos.Dante Amor

Si es lo que necesitas.

El error es:

Error en tiempo de ejecución '2147483640 (80000008)' error de automatización

Y la macro completa es:

Sub guardarfecha()

Dim datofecha As Date

datofecha = Format(Now, "dd-mm-yy")

FilePath = "DISPONIBLE - " & datofecha & " .xlsx"

ThisWorkbook.SaveAs FilePath

End Sub

En realidad quisiera que se guarde así:

DISPONIBLE - 12-31.XLSX

La macro quedaría así:

Sub guardarfecha()
'Act.Por.Dante Amor
    datofecha = Format(Now, "dd-mm")
    FilePath = "DISPONIBLE - " & datofecha & " .xlsx"
    ThisWorkbook.SaveCopyAs FilePath
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola Dante gracias por tu sugerencia, pero me da error cuando ejecuta esta línea:

datofecha = Format(Now, "dd-mm")

el error es el sig:

Error en tiempo de ejecución '2147483640 (80000008)' error de automatización

¿Sabes qué puede ser? Gracias

¿Esa es toda la macro que tienes?

Sub guardarfecha()'Act.Por.Dante Amor    datofecha = Format(Now, "dd-mm")    FilePath = "DISPONIBLE - " & datofecha & " .xlsx"    ThisWorkbook.SaveCopyAs FilePathEnd Sub

Le modificaste algo a la macro?

¿Qué versión de excel tienes?

No creo que sea problema de la macro, todos los casos me funcionan, yo creo que es de tu versión de excel o de la instalación que tienes.

es el excel 2011 para mac. Version 14.0.0

Si, es muy raro, ya que he buscado y todos los ejemplos son mas o menos como el que me pasaste...

Lo estaba haciendo en mac y me daba error, lo probé en una PC y funciono, aunque después no puedo abrir ese archivo porque dice que tiene un error

En PC funciona con la version 2003... pero si quiero grabarlo en .xlsx cuando quiero abrirlo me dice que no reconoce el formato o hay error en el libro

Pequeño detalle, la versión de VBA para Mac es diferente a la de Excel para PC,

No tengo Mac para probar, no sé si el error sea por la instrucción Now

Cambia a esto:

datofecha = Format(date, "dd-mm")

Recuerda valorar la respuesta.

Dante, gracias pero no, sigue dando el mismo error... de todas formas sabes como puedo guardarlo en .xlsx?

Como te comenté no tengo Mac, no puedo hacer pruebas.

Lo que te envié es para una PC y ahí funciona bien, entiendo que no es funcional para ti, ya que tienes una Mac.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas