Be-Excel,
Sebenarnya ambil data table dari web bisa juga tanpa vba dengan melalui
steps sbb (Saya menggunakan Excel 2007):
1. dari menu [Data], pada groups [External Data], pilih [From Web]
2. Masukkan alamat webnya. Missal akan mengambil data kurs mingguan di web
pajak, masukkan http://www.depkeu.go.id/ind/currency/
3. Kemudian pilih panah kuning untuk memilih bagian yang akan diimport ke
excel. "Berkat Mr. Kid saya jadi tahu cara memilih table yang diinginkan"
   Misal dipilih table nomer 4 & 5. Tabel 4 berisi informasi tanggal
pengumuman, Tabel 5 berisi currency ratenya.
4. Click tombol import
5. selesai.
6. Sebenarnya untuk update hariannya tinggal di click kanan table di excel
kemudian pilih refresh.
Dengan cara di atas, query & connection masih tersimpan dalam workbook.

Saya menggunakan vba karena ingin mendapatkan table yang tidak menyimpan
query & connectionnya.
Berikut vba-code yang sudah dikoreksi berdasarkan masukan dari Mr. Kid:

'===start vba=====
Const ALAMAT_WEB As String = "http://www.depkeu.go.id/ind/currency/";

Sub AmbilTableKursPajakMingguan()
    Dim rgTarget As Range, aWebQry As QueryTable, sht As Worksheet
    Set sht = ActiveSheet
    
    Application.ScreenUpdating = False
    With sht.UsedRange
        If .Rows.Count > 0 Then
        .Columns.Delete 'hapus hasil query sebelumnya
        End If
    End With

    Set rgTarget = sht.Range("$A$1")
    Set aWebQry = ActiveSheet.QueryTables.Add(Connection:= _
        "URL;" & ALAMAT_WEB, _
        Destination:=rgTarget)
    
    With aWebQry
        .Name = "KursPajakMingguan"
        .AdjustColumnWidth = False
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "4,5"
        .WebFormatting = xlWebFormattingNone
        .Refresh BackgroundQuery:=False
    End With
    RapihkanTable sht
    Application.ScreenUpdating = True
End Sub

Private Sub RapihkanTable(sht As Worksheet)
   'rapihkan judul
    With sht.Range("A2:F4")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
        .MergeCells = True
        .Range("A6").CurrentRegion.Columns.AutoFit
    End With
'menghapus connection yang ada
    Dim cn As Object
    For Each cn In sht.Parent.Connections 
        cn.Delete
    Next

End Sub
'====end vba====



From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of Rian Wijaya
Sent: Tuesday, March 26, 2013 8:00 PM
To: belajar-excel@yahoogroups.com
Subject: RE: [belajar-excel] Ambil Tabel dari web ke excel dengan VBA

  
Dear pa zainul...
Benar kata pa indra .... saya juga mau... :) 
Terimaksih
On Mar 26, 2013 6:37 PM, "Indra" <vendeta...@yahoo.co.id> wrote:
  
Fix Scriptnya donk Pak Zainul kalo boleh :D sebagai bahan pembelajaran untuk
saya dan teman” B-XL yang lain… Matur tengkyu
 
 
Salam,
 
 
ChordJR
 
 
 
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of zainul_ulum[at]yahoo[dot]com
Sent: Tuesday, March 26, 2013 6:12 PM
To: belajar-excel@yahoogroups.com
Subject: RE: [belajar-excel] Ambil Tabel dari web ke excel dengan VBA
 
  
Maturnuwun mas Kid,
Sarannya sudah dicoba dan berhasil.
 
Wassalam
-zainul-
 
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of Mr. Kid
Sent: Tuesday, March 26, 2013 5:44 PM
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Ambil Tabel dari web ke excel dengan VBA
 
  
Pak Zainul,

Coba lakukan web query. Pada object inet yang muncul dan setelah menuju url
yang diinginkan, coba hitung tanda panah kuning kecil yang muncul.
Urutan hitungnya dari kiri atas arah horisontal duluan baru ke bawahnya.
Setelah menemukan indeks tabel yang akan diambil (misal indeks tabel nomor
7), maka atur properti WebTables agar diisi dengan indeks tersebut.
nomor indeks bertipe string ya, seperti "7" dsb.

Wassalam,
Kid.



Kirim email ke