mas Zainul,

Mungkin nama properti (attribut) nya yang berbeda.
Contohnya, object Label memiliki properti Caption (bersifat read/write)
tapi tidak memiliki properti Text atau Value (keduanya juga bersifat
read/write)
Sedangkan object TextBox memiliki properti Text atau Value tapi tidak
memiliki properti Caption (ketiganya bersifat read/write).
Object Range juga tidak memiliki properti Caption, tapi memiliki properti
Value (bersifat read/write) dan Text (bersifat read only).

Sifat read/write -> programmer bisa melakukan get (ambil nilai alias read)
dan set (tulis nilai alias write).
Sifat read only -> programmer hanya bisa ambil nilai (alias read) saja.
Term read/write tersebut di atas adalah untuk design dasar si object
(bawaan dari sononya)
Jadi berbeda hal dengan konteks sebuah textbox yang bisa di-input oleh
user, tapi juga bisa di-lock agar user tidak bisa mengubah nilai.
Maksudnya, jangan sampai dikiranya bahwa properti Text milik textbox bisa
bersifat read/write maupun read only. Properti Text milik Textbox itu sifat
bawaannya hanyalah Read/Write, walau diset bagi user tidak bisa mengubah
isinya.

Regards,
Kid









On Mon, Oct 15, 2018 at 5:27 AM Zainul Ulum [email protected]
[belajar-excel] <[email protected]> wrote:

>
>
> Mas Kid,
> Terimakasih masukannya akan saya coba dan hasilnya akan share di milis.
>
> tanya lagi:
> -- apakah memang ada beberapa element html di browser yang tidak dikenali
> oleh internet explorer? saya coba oHTML_Element =
> oHTMLDoc.getElementById(sElemenID), object ketemu, tetapi tidak bisa diset
> atau diganti atribute atau propertinya.
>
> Thanks,
> -zainu
>
>
> On Sunday, 14 October 2018, 12:53:32 AM GMT+7, 'Mr. Kid'
> [email protected] [belajar-excel] <[email protected]> wrote:
>
>
>
>
> hmmm...
>
> kalau begini bisa gak ?
> (dicoba dengan sebuah prosedur sederhana ya, apa saja nama prosedurnya)
>
> dim oBrowser as object
> set obrowser=createobject("Internetexplorer.Application")
> with obrowser
>       .visible=true
>       .navigate "alamat webpage"
>       do while .readystate<>4 or .busy
>              'proses cek timeout bisa dilakukan disini
>       loop
>       msgbox "Browser sudah siap.",vbinformation
> end with
>
> Contoh kalau mau pakai timeout, lalu batalkan (tutup browser-nya sekalian)
> dim oBrowser as object   ,dblTimer as double, dblTimeOut as double
> dbltimeout=1    'misal timeout 1 detik (buat nyoba saja)
> set obrowser=createobject("Internetexplorer.Application")
> with obrowser
>       .visible=true
>       .navigate "alamat webpage"
>       dbltimer=timer
>       do while .readystate<>4 or .busy
>              'proses cek timeout bisa dilakukan disini
>              if timer-dbltimer>dbltimeout then
>                    .quit
>                    msgbox "Timeout",vbexclamation
>                    exit sub
>             endif
>       loop
>       msgbox "Browser sudah siap.",vbinformation
> end with
>
>
> Regards,
> Kid
>
>
>
>
>
> On Mon, Oct 8, 2018 at 11:59 AM Zainul Ulum [email protected]
> [belajar-excel] <[email protected]> wrote:
>
>
>
> Rekan Be-Excel,
> saya membuat coding sederhana di vba-excel untuk otomasi pengisian form di
> internet explorer dengan menggunakan object library/reference: microsoft
> interner control.
>
> Salah satu kendalanya adalah untuk memastikan bahwa object/ internet
> element dalam form di internet explorer adalah siap (ready) untuk diisi
> dari data yang saya ambil dari spead sheet excel.
>
> Berdasarkan online help yang saya baca, untuk mengecek bahwa object sudah
> terunduh sempurna adalah dengan  menggunakan nilai property readystate.
> Jika nilai readystate bernilai = 4 , maka object di internet explorer sudah
> ter-loaded dan siap untuk diisi sedangkan untuk menunggu readystate=4
> dilakukan looping sampai didapat nilai property=4 (ready).
>
> Akan tetapi dalam implementasinya, terutama jika internet connectionnya
> jelek, saat menggunakan looping (do.....loop atau while....wend) ternyata
> object belum siap atau belum ready. Untuk memaksa object menjadi ready,
> saya menambahkan tambahan waktu tunggu / waktu looping Application.Wait
> dengan tambahan nilai tunggu 1 detik ( sDelay = Format(TimeValue(sDelay)
> + TimeValue("00:00:" & Format(i, "00")), "hh:mm:ss")) , sampai object
> benar-benar siap.
>
> Kelemahan dari penambahan application.wait tersebut adalah proses
> pengisian form akan lama karena tiap loop ditambahkan waktu. tunggu.
>
> di bawah, contoh code yang telah saya buat dengan tambahan proses delay
> (application.wat).
> Mohon bantuan atau masukan dari teman-teman yang pengalaman di "web
> scrapping"
>
> Wassalam,
> -zainul
>
> '==========================================================================
> Private Function SetAttributeWithDelay(objBrowser As InternetExplorer,
> ByVal sDelay As String, _
>     ByVal sElemenID As String, ByVal sAttrKey As String, ByVal vValue As
> Variant) As Boolean
>
>     Dim oHTMLDoc As HTMLDocument
>     Dim oHTML_Element As Object
>     Dim i As Integer
>     Dim bol As Boolean
>     SetAttributeWithDelay = True
>     i = -1
>     Do
>         i = i + 1
>         sDelay = Format(TimeValue(sDelay) + TimeValue("00:00:" & Format(i,
> "00")), "hh:mm:ss")
>         Do ' Wait till the Browser is loaded
>             Application.Wait (Now + TimeValue(sDelay)) '--->NOTE: dicoba
> pakai ini berhasil tetapi proses lama
>         Loop Until objBrowser.readyState = 4 'READYSTATE_COMPLETE
>
>         'While objBrowser.readyState <> 4 Or objBrowser.Busy: DoEvents:
> Wend--->note: dicoba pakai ini tidak berhasil
>             Set oHTMLDoc = objBrowser.document
>             On Error Resume Next
>             Set oHTML_Element = oHTMLDoc.getElementById(sElemenID)
>             If Err.Number Then
>                 Err.Clear
>                 'Application.Wait (Now + TimeValue(sDelay))'--->
> note:dicoba pakai ini tidak berhasil
>                 'oHTML_Element = oHTMLDoc.getElementById(sElemenID)
>             End If
>             If i = 10 Then
>                 SetAttributeWithDelay = False
>                 Exit Function
>             End If
>     Loop Until Not oHTML_Element Is Nothing
>     Call oHTML_Element.setAttribute(sAttrKey, vValue)
> End Function
>
> 
>

Kirim email ke