Entradas

Mostrando entradas de julio, 2021

Macro para esperar a que un programa deje de ejecutarse

  He adaptado esta macro para cerrar procesos usando VBA, para que una macro espere a que un proceso termine.  https://excelsignum.com/2017/04/09/cerrar-un-programa-desde-excel-con-vba/ En el ejemplo, he puesto el word, pero se podría usar para cualquier programa. Sub Espera_Cerrar_Programa() 'Declaramos variables Dim cObj As Object Dim Programa As Object Dim Proceso As Object Inicio: 'Rellenar ProgramaEjecutado NombrePrograma = winword.exe ProgramaEjecutado = 0 'Realizamos una consulta SQL para verificar si el programa está activo, en proceso. Set cObj = GetObject("winmgmts://.") Set Proceso = cObj.ExecQuery("SELECT * FROM " & "Win32_Process WHERE Name = '" & NombrePrograma & "'") 'Con un For recorremos la consulta para ver si el programa esta ejecutado For Each Programa In Proceso On Error Resume Next     Application.Wait (Now + TimeValue("00:00:02"))     ProgramaEjecutado = 1 On Error GoTo 0 Next ...

Eliminar Hoja si existe usando VBA

Código para eliminar una Hoja si ya existe. Solamente habría que cambiar "Hoja1" por el nombre de la hoja que se desee eliminar. NombreHoja = "Hoja1" For Num = 1 To ActiveWorkbook.Sheets.Count If Sheets(Num).Name = NombreHoja Then Application.DisplayAlerts = False Next Num If Application.DisplayAlerts = False Then Sheets(NombreHoja).Delete Application.DisplayAlerts = True