OT EXCEL. Desde VFP hacer una para estar actualizando archivo EXCEL

689 views
Skip to first unread message

Jose Ramon Veliz Martinez

unread,
Dec 14, 2013, 10:20:59 AM12/14/13
to publice...@googlegroups.com
Buenos dias, alguien que me ayude por favor. Necesito crear un Macro en EXCEL que este grabando el archivo sin necesidad que el usuario le de guardar o lo mejor en todo caso si desde VFP podria hacerlo, desde la mi rutina que captura los datos de ese archivo,  ir a EXCEL que esta abierto y darle guardar datos sin cerrarlo.

Saludos

Fidel Charny

unread,
Dec 14, 2013, 10:57:30 AM12/14/13
to publice...@googlegroups.com
lcGuardarComo="Ruta y nombre de archivo"
Oexcel = CREATEOBJECT("Excel.Application")
kelibro=oexcel.workbooks.ADD()
kelibro.SaveAs(LcGuardarComo)

Jose Ramon Veliz Martinez

unread,
Dec 14, 2013, 2:39:09 PM12/14/13
to publice...@googlegroups.com
Gracias por responder, me genera error porque el archivo esta en uso y no puedo salvarlo. Si lo cierro no hay problema.

Saludos

Jorge Kiernan

unread,
Dec 16, 2013, 7:31:28 AM12/16/13
to publicesvfoxpro
¿la planilla la abris desde la aplicacion VFP ?

Ernesto

unread,
Dec 16, 2013, 9:26:58 AM12/16/13
to publice...@googlegroups.com
tenes q abrirlo desde fox sino no funciona, es decir los usuarios deben abrir el archivo desde tu aplicacion no desde elwindows

Jose Ramon Veliz Martinez

unread,
Dec 16, 2013, 11:49:19 AM12/16/13
to publice...@googlegroups.com
Buenos dias, el archivo esta abierto siempre por EXCEL. Desde VFP ejecuto la rutina que me envio Fidel y siempre sale error que esta en uso. Lo solucione de la siguiente manera, creando un macro en EXEL que salva cada 10 segundos y crea el archivo que necesito trabajar.

**// MACRO EN EXCEL
Sub guardando()
    If ejecutar Then
        guardar
        Application.OnTime Now + TimeValue("00:00:10"), "guardando", , True
    End If
End Sub

Sub parar()
    On Error Resume Next
    ejecutar = False
    guardar
    Application.OnTime Now + TimeValue("00:00:10"), "guardando", , False
End Sub

Sub iniciar()
    ejecutar = True
    guardando
End Sub

Sub guardar()
    'para sobreescribir el archivo
    Application.DisplayAlerts = False
   
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    wp = l1.Path
    l1.Save
    l1.Sheets.Copy
   
    'Para gardar en versión xls
    ActiveWorkbook.SaveAs wp & "\datos.xls", FileFormat:=xlExcel8
    ActiveWorkbook.Close
End Sub


Con esta rutina que me enviaron de un foro en EXCEL, la ejecuto y funciona a la perfeccion.

Saludos y muchas gracias
Reply all
Reply to author
Forward
0 new messages