Bonjour à tous,
J'utilise la sympathique fonction suivante (trouvée ici même sur le site) qui permet de trouver et de fermer un programme existant depuis une macro excel :
Cela marche lorsque je fais fermer une fenêtre comme un document pdf dont je connais le titre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Function EnumCallback(ByVal app_hWnd As Long, ByVal param As Long) As Long Dim buf As String * 256 Dim Titre As String Dim Longueur As Long 'Récupère le titre de la fenêtre Longueur = GetWindowText(app_hWnd, buf, Len(buf)) Titre = Left$(buf, Longueur) 'Vérifie si le titre de la fenêtre correspond au nom recherché If InStr(Titre, AppCible) <> 0 Then 'Ferme la fenêtre SendMessage app_hWnd, WM_CLOSE, 0, 0 End If 'Poursuit l'énumération EnumCallback = 1 End Function
Mais cela ne marche plus lorsque la fenêtre que je veux faire fermer demande une confirmation de sauvegarde, cela reste en attente sur la boîte de dialogue de confirmation.
Exemple : Je veux faire fermer une fenêtre de messagerie Outlook que je ne doit pas envoyer ; j'appelle donc la fonction avec le titre de la fenêtre de la messagerie (ex: Message pour Mr...) et cela m'affiche une boite de dialogue Outlook qui me demande : voulez vous enregistrer les modifications ? et je dois répondre à la main par oui ou par non.
J'ai essayé avec SendMessage app_hWnd, WM_DESTROY, 0, 0 mais c'est pire car tout se fige.
Existe-il un SendMessage quelquechose, qui ferme sans confirmation ?
Merci beaucoup de votre aide...
J'aime beaucoup ce forum mais c'est la première fois que je pose une question car je croyais être plus débrouillard que cela... comme quoi.
Partager