Coba udf Sheet berikut :
   *UDF Sheet :
(syntax)
*


 =Sheet( [nomor_index]  ,  [hasil_berupa_index] )  [nomor_index] ::
bersifat optional yang dapat diisi dengan bilangan bulat :

< 0 untuk mendapatkan jumlah sheet dalam workbook

0 array vertikal 1 dimensi tentang urutan sheet tergantung opsi
[hasil_berupa_index]

N jika N antara 1 dan jumlah sheet dalam workbook, maka menghasilkan nama
sheet di index ke-N


jika N lebih dari jumlah sheet dalam workbook, maka menghasilkan NullString
("")  [hasil_berupa_index] :: bersifat optional yang dapat diisi dengan
nilai Boolean (TRUE/FALSE) :

TRUE akan membuat array hasil (ketika [nomor_index] diisi 0) berisi
nomor-nomor index sheet

FALSE akan membuat array hasil (ketika [nomor_index] diisi 0) berisi
nama-nama sheet




 *Peringatan !!!*



 - UDF Sheet bersifat volatile. Gunakan dengan bijak agar tidak memberatkan
kalkulasi Excel  - UDF Sheet tidak merespon adanya pembuatan sheet baru
secara langsung, tetapi array hasil akan ter-update karena sifat
volatile-nya ketika ada nilai cell berubah nilanya  - Cara lain untuk
membuat UDF Sheet merespon adanya pembuatan sheet baru adalah dengan
memanfaatkan event workbook new sheet, yang diisi dengan perintah untuk
mengkalkulasi aplikasi atau sheet tertentu yang menggunakan UDF Sheet.  -
Contoh baris perintah kalkulasi aplikasi :

Application.Calculate  - Contoh baris perintah kalkulasi sheet ke-1 :

Thisworkbook.Sheets(1).Calculate
*Contoh :*
1. Jumlah sheet :
=sheet(-1)

2. nama sheet ke-4 dalam sheet tab :
=sheet(4)

3. array nomor-nomor index sheet :
=sheet(0,true)

4. array nama-nama sheet :
=sheet(0)
atau
=sheet(0,false)

*Script UDF Sheet :*
Public Function Sheet(Optional lIdx As Long = -1, Optional bAsIdxNum As
Boolean = False) As Variant
    Dim vSht() As Variant
    Dim lShtCount As Long, lSht As Long

    Application.Volatile
    With ThisWorkbook
        lShtCount = .Sheets.Count
        Select Case lIdx
        Case 0
            ReDim vSht(1 To lShtCount) As Variant
            For lSht = 1 To lShtCount
                vSht(lSht) = IIf(bAsIdxNum, lSht, .Sheets(lSht).Name)
            Next lSht
            Sheet = WorksheetFunction.Transpose(vSht)
        Case Is < 0
            Sheet = lShtCount
        Case Is > lShtCount
            Sheet = vbNullString
        Case Else
            Sheet = .Sheets(lIdx).Name
        End Select
    End With
End Function

*File :*
re-Update sheet.xlsm (terlampir)

Wassalam,
Kid.

2012/8/30 Abang Tukang tanya <[email protected]>

> **
>
>
> Selamat Malam,
>
>
> Maaf menggangu teman-teman untuk tidur malamnya, saya mau tanya bagaimana
> cara mengubah otomatis suatu range jika saya merubah
> sheetnya, sehingga ketika saya merubah sheetnya dengan saya beri nama
> misal "A5" maka otomatis pada range yang ditunjuk akan terisi A5.
>
>
> Mohon bantuannya
>
>
> Regards,
>
>
>
> Abang tukang tanya
>
>  
>

Attachment: re-Update sheet.xlsm
Description: Binary data

Kirim email ke