Page 1 sur 1

[R] Fermer une fenêtre d'extension Excel '*.xlsx - Excel' ouverte

Posté : mar. 17 nov. 2020 13:03
par Boulanza
Bonjour,
Je cherche un script et ou fonction qui peut fermer une fenêtre d'extension Excel '*.xlsx - Excel' ouverte. Voir exemple code ci-dessous:
;~ WinClose("*.xlsx - Excel")
WinSetState("*.xlsx - Excel", "", @SW_HIDE)
Exit

Merci pour votre aide.
Cordialement.

Re: [..] Fermer une fenêtre d'extension Excel '*.xlsx - Excel' ouverte

Posté : mer. 18 nov. 2020 18:16
par walkson
Bonjour,
Même en récupérant les handles des fenêtres Excel (par exemple: Global $Data = _WinAPI_EnumProcessWindows(ProcessExists('Excel.exe'))) WinClose() ou WinKill() ferme tous les classeurs Excel. Il faut passer par les fonctions _Excel_***
#include <Array.au3>
#include <Excel.au3>

Local $aWorkBooks = _Excel_BookList()
_ArrayDisplay($aWorkBooks)
For $i = 0 To UBound($aWorkBooks) - 1
   $array = StringRegExp($aWorkBooks[$i][1],"(?i)(\.)(\w{3,4})$",3);extension en ligne 1
      If IsArray($array) Then
         _ArrayDisplay($array,$aWorkBooks[$i][1])
         If $array[1] = "xlsx" Then
            MsgBox(32,$aWorkBooks[$i][1],"xlsx trouvé")
            Local $oExcel1 = _Excel_Open()
            Local $sWorkbook1 = $aWorkBooks[$i][2] &"\"& $aWorkBooks[$i][1]
            Local $oWorkbook1 = _Excel_BookOpen($oExcel1, $sWorkbook1)

            If UBound($aWorkBooks) > 1 Then ;si plusieurs classeurs
               _Excel_BookClose($oWorkbook1, False) ;ferme le book
            Else
               _Excel_Close($oExcel1,False,True) ;sinon ferme excel
            EndIf

         EndIf
      EndIf
Next
 
à noter qu'ici, on ferme sans sauvegarde et que ce peut être paramétré

Re: [..] Fermer une fenêtre d'extension Excel '*.xlsx - Excel' ouverte

Posté : jeu. 19 nov. 2020 17:27
par Boulanza
Merci Monsieur Walkson, c'est parfait... :bisou: