Jumat, 18 Februari 2011

Menjawab pertanyaan Saudara Huda melalui email tentang macro VBA yang otomatis dijalankan saat sebuah sel berubah nilainya. Berikut gambarannya:


Yang dishading hijau adalah sel-sel yang sudah ada formulanya di mana jika sel A1 berubah nilainya, maka isi tabel tersebut langsung berubah. Jadi bagaimana caranya jika sel A1 dirubah nilainya menjadi 1, 2, atau 3 dan otomatis baris yang nilainya kosong (baris 26 s/d 33) langsung ter-hidden?

Berikut caranya:

  1. Di Excel silahkan buka Visual Basic Editor pada menu Tools > Macro > Visual basic Editor (Alt + F11).
  2. Klik ganda pada sheetnya lalu masukkan code VBAnya:

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$1" Then
         Worksheet_Calculate                    'macro yang akan dijalankan saat sel A1 berubah
    End If
    End Sub


  3. Pilih Insert > Module dan tuliskan code VBA berikut:

    Sub Worksheet_Calculate()
        Dim Rng As Integer
        Range("BASTB!H24:H33").Select        
    'Menentukan baris mana saja yang akan di hide
        Selection.EntireRow.Hidden = False      'Baris akan di unhide
        Rng = Selection.Rows.Count
        ActiveCell.Offset(0, 0).Select
        Application.ScreenUpdating = True
        For i = 1 To Rng
        If ActiveCell.Value = "-" Then                'Tanda "-" bisa diganti dengan 0 atau "teks apa saja"
        Selection.EntireRow.Hidden = True        'Baris akan di hide
        ActiveCell.Offset(1, 0).Select
        Else
        ActiveCell.Offset(1, 0).Select
        End If
        Next i

    'Jika ada baris lain yang akan dihide, maka tambahkan lagi codingnya

        Range("BASTB!H41:H50").Select        'Menentukan baris mana saja yang akan di hide
        Selection.EntireRow.Hidden = False      'Baris akan di unhide
        Rng = Selection.Rows.Count
        ActiveCell.Offset(0, 0).Select
        Application.ScreenUpdating = True
        For i = 1 To Rng
        If ActiveCell.Value = "-" Then                 'Tanda "-" bisa diganti dengan 0 atau "teks apa saja"
        Selection.EntireRow.Hidden = True        'Baris akan di hide
        ActiveCell.Offset(1, 0).Select
        Else
        ActiveCell.Offset(1, 0).Select
        End If
        Next i

    'Akhiri dengan menambahkan coding di bawah ini
        Range("BASTB!A1").Select          'menempatkan sel kembali ke A1
    End Sub

  4. Jika ada beberapa baris yang akan dihide, maka ulangi code Simpan file tersebut dan silahkan coba

0 komentar:

Posting Komentar

Backlinks to my website? ping fast  my blog, website, or RSS feed for Free Tips dan Trik Sukses Bisnis OnlineindotradingUAW BMKGNTTfree indotradingcms | indotradingsakpa
Search Engine
www.e-referrer.com