x = Format(CInt(Mid(Sheets(2).Name, 3, 2)) + 1, "00") sebetulnya sangat riskan (Rawan salah & Rawan nguawurr) membcarakan makro tanpa melihat object yg di-makro-in...
*CInt* fungsi untuk mengkonversi *STRING berisi Angka* menjadi BILANGAN asal masih di skope Integer (+/- 32 ribuan) bisa dicoba dengan fungsi lain misal Val, CLng, *Format* adalah fungsi yg setara dengan fungsi TEXT di worksheet dlm kasus di atas mentext kan bilangan menjadi bentuk dua karakter dengan leading zero tetapi data hasilnya bertype String 2011/4/13 Herry Sutjipto <[email protected]> > > > Baik mbak STDEV(i) and Alll, > > Sekarang kembali ke persoalan lama, terlampir saya sertakan Macro made by > mbak STDEV(i) yang sudah sedikit saya modifikasi, sbb: > > Sub DaftarSheet() > '------------------------ > ' siti Vi / jan 2010 > '------------------------ > ' Mendaftar nama sheet dalam workbook > ' > Dim lSheet As Long > Dim iRow As Long > Dim Bln As String > > iRow = 6 > Bln = Mid(Sheets(2).Name, 3, 2) > If Val(Bln) > 0 And Val(Bln) < 13 Then > Bln = Format(DateSerial(2010, CInt(Bln), 1), _ > "[$-421]MMMM") & " 20" & Mid(Sheets(2).Name, 5, 2) > > Else > Bln = "Error nama sheet: " & Sheets(2).Name > Range("A1") = Bln > Exit Sub > End If > Range("A1") = "RESUME REALISASI PEMANFAATAN DANA BULAN " + UCase(Bln) > Range("L5") = "='[BS 2011 " + Mid(Sheets(2).Name, 3, 2) + > ".xls]Resume'!$Q$37" > Range("R5") = "='[BS 2011 " + Mid(Sheets(2).Name, 3, 2) + > ".xls]Resume'!$R$37" > > 'bersihkan lokasi penulisan > Range("B6:B36").ClearContents > 'loop diseluruh worksheet di workbook > For lSheet = 2 To Sheets.Count 'loop dari index 2 ke jumlah > seluruh sheet > Range("B" & iRow) = Sheets(lSheet).Name 'tulis nama sheet > iRow = iRow + 1 > Next lSheet 'loop lSheet > End Sub > > Isi dari Mid(Sheets(2).Name, 3, 2) adalah string. > Bagaimana mengurangi nilai Mid(Sheets(2).Name,3,2) dengan 1, kemudian > dijadikan string lagi tetap dua digit, supaya statement tetap benar dan > rumusnya tidak error? > > Terima kasih. > Herry Sutjipto > >

