Aide et conseils concernant AutoIt et ses outils.
Boulanza
Niveau 10
Messages : 711 Enregistré le : mer. 31 juil. 2013 15:49
Status :
Hors ligne
#1
Message
par Boulanza » mar. 17 nov. 2020 13:03
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:
Merci pour votre aide.
Cordialement.
Modifié en dernier par
Boulanza le jeu. 19 nov. 2020 21:02, modifié 1 fois.
walkson
Modérateur
Messages : 1036 Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status :
Hors ligne
#2
Message
par walkson » mer. 18 nov. 2020 18:16
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é
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Boulanza
Niveau 10
Messages : 711 Enregistré le : mer. 31 juil. 2013 15:49
Status :
Hors ligne
#3
Message
par Boulanza » jeu. 19 nov. 2020 17:27
Merci Monsieur Walkson, c'est parfait...