Dear mbak STDEV(i), Jawabannya sangat sesuai dengan yang saya harapkan. Hanya yang tanda "plus" harusnya "minus" itu saja. Mbak STDEV(i) belajar Excelnya di Bill Gate ya? Terima kasih. Regards
From: STDEV(i) <[email protected]> To: [email protected] Sent: Wednesday, April 13, 2011 10:57 AM Subject: Re: [belajar-excel] Mengubah string menjadi numerik, kemudian diubah lagi menjadi string lagi dalam macro 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 >

