• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Görev Yöneticisi

Katılım
14 Kasım 2006
Mesajlar
197
Excel Vers. ve Dili
Excel 2003 TR
Saygıdeğer üstadlar

Excel programımı normalde kapatıyorum. Ama bazı işlemlerde hata oluştuğu zaman kapatıldığında görev yöneticisinde kalıyor. Bunu Görev yöneticisinden de kapatmanın makro ile bir yolu var mı?

ilginize şimdiden teşekkür ederim.
 
Yanlış düşündüğünüz bir nokta olmalı... Kodlarınızı bilmiyorum ama Excel'i normal olarak kapatabiliyorsanız ve Excel uygulamasının tek bir kopyası ile işlerinizi yönetiyorsanız, bu problemin oluşmaması lazım...

Muhtemel bir senaryo; kodlarınızda ikinci bir kopya Excel application'ı yaratmış olmanızdır. Eğer bu kopya uygulamanın visible özelliği false ve arka planda çalışıyorsa; kapatmayı unutmuş olabilirsiniz. Kodlarınızda "CreateObject" diye bir kelime geçiyorsa; bu kodda eksik bir nokta olduğunu söyleyebilirim.

Yine de, varsayılan excel kopyasını kapatan bir kodu ben size gönderiyorum. Ama bu kodlar; Application.Quit komutunun yaptığı işten fazlasını yapmaz. Orjinal Excel oturumunu kapatır.

Beklenmedik bir hata oluştuğunda; bu makroyu nasıl çalıştırırsınız bilemem. Ama aşağıdaki kodlar; Excel'i görev yöneticinden kapatır.

Aşağıdakileri standart bir modul sayfasına kopyalayınız.

Kod:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
        (ByVal lpClassName As String, _
         ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
        (ByVal hwnd As Long, _
         ByVal wMsg As Long, _
         ByVal wParam As Long, _
         lParam As Any) As Long
Const WM_CLOSE = &H10
[COLOR=darkgreen]'-----------------------------[/COLOR]
Sub ExceliKapat()
    Dim WinWnd As Long
    Dim lpClassName As String
    WinWnd = FindWindow(vbNullString, Application.Caption)
    If WinWnd = 0 Then Exit Sub
    PostMessage WinWnd, WM_CLOSE, 0&, 0&
End Sub


...
 
Teşekkürler sayın Ferhat Pazarçevirdi.
 
Geri
Üst