Monday, July 11, 2011

Open Another Workbook using VBA Excel 2007

Hello, uda lama ni ga nulis apa2 di blog.. haha.. Yup, kali ni gw mau bahas tentang VBA Excel 2007, coz akhir2 ini gw banyak belajar tentang ini di kantor gw.. haha.. So, gw share aja hal2 gw pelajari yaa..
Kali ini kita ngebahas tentang 'Open Another Workbook' dulu yuk.. Jadi, mungkin kalian lagi pengen sesuatu yang otomatis, dalam hal ini open workbook lain dengan menggunakan macro..

Bila kita mau membuka workbook lain yang kita uda tau Filename-nya apa, kita bisa menggunakan:

Sub Open_File()
' Uses DIR rather than FileSearch which was dropped in Excel 2007
Dim myFolder As String
Dim myFile As String
' look for file
myFolder = "C:\Documents and Settings\user\Desktop\"
myFile = Dir("C:\Documents and Settings\user\Desktop\Testing.xls")
' open file if found
If myFile <> "" Then
    Workbooks.Open (myFolder & myFile)
Else
    MsgBox "No file found!", vbInformation
End If
End Sub


Kenapa ga langsung menggunakan Workbooks.Open (myFile) ? Coz Dir("C:\Documents and Settings\user\Desktop\Testing.xls") hanya akan muncul Testing.xls, untuk path folder tempat file itu berada ga akan muncul, sehingga kita perlu untuk menambahkan statement yang disimpan di variable myFolder.
Atau kita juga bisa langsung menggunakan statement:

Sub Open_File()
workbooks.open("C:\Documents and Settings\user\Desktop\Testing.xls")
End Sub

Trus klo ternyata mau open workbook yang filename-nya dynamic, misal filename-nya Report_<yyyymmdd>.xls, gmn? Kita bisa men-concat dengan function Format.

Sub Open_File_FormatDate()
' Uses DIR rather than FileSearch which was dropped in Excel 2007
Dim myFolder As String
Dim myFile As String
' look for file
myFolder = "C:\Documents and Settings\user\Desktop\Report_Harian\"
myFile = Dir("C:\Documents and Settings\user\Desktop\Report_Harian\Report_"&Format(Date,"yyyymmdd")&".xlsx")
' open file if found
If myFile <> "" Then
    Workbooks.Open (myFolder & myFile)
Else
    MsgBox "No file found!", vbInformation
End If
End Sub


Tapi kalo kasusnya mau open workbook yang kita kasih clue-nya sebagian dari filename-nya, gmn? Misal mencari file yang part of filename-nya "DATA_"

Sub Open_File_PartOfFilename()
' Uses DIR rather than FileSearch which was dropped in Excel 2007
Dim myFolder As String
Dim myFile As String
' look for file
myFolder = "C:\Documents and Settings\user\Desktop\Report_Harian\"
myFile = Dir("C:\Documents and Settings\user\Desktop\Report_Harian\DATA_*.xls*")
' open file if found
If myFile <> "" Then
    Workbooks.Open (myFolder & myFile)
Else
    'MsgBox "No file found!", vbInformation
End If
End Sub


Penjelasan lebih lanjut:











Yah, ni sebagian yang bisa gw share sekarang.. Semoga bermanfaat dan sorry kalo misalnya ada kesalahan2 karena gw sendiri juga masih belajar.. haha..