Microsoft office excel is waiting for another application to complete an ole action

  1. 6 bulan yang lalu

    Masalah yang saya alami adalah ketika saya jalankan Macro, terkadang dalam tengah jalan macro(belum selesai), Macro berhenti, dan saya cek di task Manager, Internet Explorernya Cpu Usage yang tadi 30% jadi 0%, dan setelah itu beberapa detik akan muncul dialog box, berisi "microsoft office excel is waiting for another application to complete an ole action". Dialog ini akan terus Pop up ketika di tekan Ok, jadi untuk menghentikannya adalah dengan cara end task Proses Internet Explorer.

    Fungsi Macro:

    • Extract data Harga dari Link di Kolom "A"
    • Extract status Stok dari Link di Kolom "A"

    Sudah memcoba:

    • Centang dan tidak centang ignore other applications that use Dynamic Data Exchange (DDE) di setting
    • Matikan Add in

    Saya sudah browsing forum dan pakai trik2/cara2 yang di sarankan , tetap tidak teratasi, Apakah Senior2 di ORG bisa bantu saya lihatkan masalah/kesalahan Script Macro di bagaian mana atau perlu settingan windows/program excel , berikut saya lampirkan beberapa Screenshotnya.
    Bantuan dan tanggapan sangat saya harapkan untuk memecahkan masalah ini yang sudah menghantui saya sepanjang malam, hehe

    Terima Kasih
    Awe

  2. Caton

    Apr 7 Terverifikasi Indonesia + 11.512 Poin

    @Awe...

    Masalah utamanya sudah diinformasikan melalui kalimat "... waiting for another application to complete an ole action ...". Dari beberapa kali percobaan yang saya lakukan, sepertinya masalah ini terjadi karena objek IE masih dalam status menunggu dokumen (Web Page) selesai diloading. Kondisi ini mungkin saja terjadi saat koneksi terputus permanen maupun sementara. Akibatnya, terus terjadi pengulangan pada baris script berikut:

    Do
        DoEvents
    Loop Until IE.readyState = READYSTATE_COMPLETE

    Oleh karena kecepatan proses pengulangan DO ... LOOP yang terjadi secara terus menerus, sementara objek IE juga masih dalam status menunggu, alhasil kondisi READYSTATE_COMPLETE tidak kunjung terpenuhi. Londisi IE.readyState terakhir yang saya periksa adalah READYSTATE_INTERACTIVE atau bernilai 3. Kondisi ini disebutkan dalam MSDN READYSTATE Enumeration:

    READYSTATE_INTERACTIVE
    Object is interactive, but not all of its data is available.

    Setidaknya, saat kondisi koneksi internet normal, script yang mas @Awe buat berjalan normal, rata-rata selesai dalam waktu sekitar 5 menit.

    Solusi dari masalah di atas? Saya tidak punya solusi tepatnya. Hanya sekedar saran saja:

    [1]. Tambahkan deklarasi berikut sebelum prosedur Sub Data():

    #If VBA7 Then
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
    #Else
        Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #End If

    [2]. Modifikasi kembali script pengulangan di atas menjadi:

    Do
        DoEvents
        Sleep 250
    Loop Until IE.readyState = READYSTATE_COMPLETE

    Pada script di atas, akan ada penundaan proses selama 250 milidetik guna memberikan kesempatan kepada objek IE untuk dapat mengembalikan status terakhir.

    [3]. Oleh karena secara tidak langsung memang telah terjadi delay dalam proses, menurut saya pribadi script Application.ScreenUpdating tidak berpengaruh besar dari sisi kecepatan proses, sehingga dapat dihapus.

    Demikian yang saya ketahui.

 

atau Mendaftar untuk ikut berdiskusi!