No me funcionan mis macros.
Publicado por Pablo (20 intervenciones) el 15/03/2012 09:38:04
Tengo el siguiente código que alguno de vosotros me ayudó a poner en marcha:
Dim fs As Object
Dim Userprofile As String
Dim RutaArchivo As String
Dim NombreArchivo As String
On Error Resume Next
Err.Clear
'Declaraciones y puestas en marcha.
Set fs = CreateObject("Scripting.FileSystemObject")
Userprofile = VBA.Environ("USERPROFILE") 'cuando se usen funciones del sistema es mejor empezar por VBA
RutaArchivo = Userprofile & "\Mis Documentos\Notas\"
NombreArchivo = Range("v4").Value
'Si no existe el directorio, lo creas.
If Not fs.FolderExists(RutaArchivo) Then
fs.createfolder (RutaArchivo)
End If
'Si ya existe el fichero, lo guardas. Si no existe lo creas nuevo.
If fs.fileExists(RutaArchivo & NombreArchivo & ".xls") Then
ActiveWorkbook.Save
Else
ActiveWorkbook.SaveAs Filename:=RutaArchivo & NombreArchivo & ".xls" _
, FileFormat:=xlNormal, CreateBackup:=False
Application.DisplayAlerts = False
End If
'Reseteo
Set fs = Nothing
End Sub
El código consiste en dar el nombre al archivo procedente de una celda de la hoja excel. Esa celda se rellena con determinada información que se le pide al usuario.
Y este código me funcionaba perfectamente.
Pero ya no funciona. Ahora me guarda el archivo con el nombre de la plantilla pasando de xlt a xls y añadiendo un número en caso de que exista. Vamos, como hace excel con cualquier plantilla.
He notado, que el código sigue funcionando en algunos equipos de la organización, también con Office 2003, aunque con Windows XP y no W7 como el mio.
¿Alguna sugerencia?
Dim fs As Object
Dim Userprofile As String
Dim RutaArchivo As String
Dim NombreArchivo As String
On Error Resume Next
Err.Clear
'Declaraciones y puestas en marcha.
Set fs = CreateObject("Scripting.FileSystemObject")
Userprofile = VBA.Environ("USERPROFILE") 'cuando se usen funciones del sistema es mejor empezar por VBA
RutaArchivo = Userprofile & "\Mis Documentos\Notas\"
NombreArchivo = Range("v4").Value
'Si no existe el directorio, lo creas.
If Not fs.FolderExists(RutaArchivo) Then
fs.createfolder (RutaArchivo)
End If
'Si ya existe el fichero, lo guardas. Si no existe lo creas nuevo.
If fs.fileExists(RutaArchivo & NombreArchivo & ".xls") Then
ActiveWorkbook.Save
Else
ActiveWorkbook.SaveAs Filename:=RutaArchivo & NombreArchivo & ".xls" _
, FileFormat:=xlNormal, CreateBackup:=False
Application.DisplayAlerts = False
End If
'Reseteo
Set fs = Nothing
End Sub
El código consiste en dar el nombre al archivo procedente de una celda de la hoja excel. Esa celda se rellena con determinada información que se le pide al usuario.
Y este código me funcionaba perfectamente.
Pero ya no funciona. Ahora me guarda el archivo con el nombre de la plantilla pasando de xlt a xls y añadiendo un número en caso de que exista. Vamos, como hace excel con cualquier plantilla.
He notado, que el código sigue funcionando en algunos equipos de la organización, también con Office 2003, aunque con Windows XP y no W7 como el mio.
¿Alguna sugerencia?
Valora esta pregunta
0