kirimpertanyaan

 

Belajar dan konsultasi masalah Excel      

Macro & VBA, Hits: 1519, Comments: 5, Bookmarked: 0, Followers: 0

Hello,

Kalo cara mengakses fasilitas dan feature dari excell lewat VBA gimana  yah ?

Misal : mengimport file txt jadi sheet di excell lewat VBA, trus pake function di excell lewat VBA ? juga mangil feature dan kemampuan excell yang lain lewat VBA (misal solver) ...

Thanks

Last Modified: Thursday, December 27, 2012


v1tr4
Thursday, October 13, 2011
0% of 0 votes

Halo Mas..

Hehehe.. ini satu request tapi isinya semua pertanyaan di excel jadi satu..

1. Bagaimana mengimport file txt?

Ini tergantung jenis txt-nya. Ada file txt yang formatted (CSV dll) yang artinya, file txt-nya sudah teratur.

Namun ada juga file txt yang acak.. antara line memiliki format yang berbeda-beda. Nah, kedua jenis txt ini membutuhkan cara yang berbeda untuk mengimportnya.

Tentu saja, yang formatted (csv misalnya) akan lebih mudah. Jadi, file txt-nya seperti apa nih?

2. 

 Application.WorksheetFunction. [jenis function yang mau digunakan]". Pertanyaannya, function apa yang mau dipanggil? Nanti kita buatkan contohnya. Kan gak mungkin semua jenis function kita contohkan disini..

3. Untuk Solver.

Ada banyak perintah solver yang bisa dipanggil dengan VBA. Misal SolverAdd, SolverLoad, dsb..

Nah, biar lebih jelas, mungkin bisa dikasih contoh soal kasus solvernya dan kita coba buatkan contoh programnya...

Maaf kalo jawabannya masih ngambang.. Karena akan lebih mudah jika menggunakan contoh..

salam


ngarasan
13 Oct 2011
0

Rahmad Sumber Ngarasan

Halo Mas..

Hehehe.. ini satu request tapi isinya semua pertanyaan di excel jadi satu..

1. Bagaimana mengimport file txt?

Ans : Misal contoh file txt isinya kayak gini :

H'00002F50         00000000 00000000 00000000 00044000                   

H'00002F60         00000000 00044000 00000000 00000000                   

H'00002F70         00000000 00044000 00000000 00044000                   

H'00002F80         00000000 00044000 00000000 00044000                   

H'00002F90         00000000 00000000 00000000 00044000

Kita ingin buat macro VBA untuk ambil data dari sana misal dari line 1 diambil data  2F50 dan data 00044000 nya ... gimana comand buat buka file, trus ambil data tsb dari file txt itu ?

2. 

 Application.WorksheetFunction. [jenis function yang mau digunakan]". Pertanyaannya, function apa yang mau dipanggil? Nanti kita buatkan contohnya. Kan gak mungkin semua jenis function kita contohkan disini..

Ans : Misal function TIME(), atau NOW(), SUM(), itu kan kalo di worksheet kita tinggal ketik di formula bar aja, kalo dari VBA gimana ?

3. Untuk Solver.

Ada banyak perintah solver yang bisa dipanggil dengan VBA. Misal SolverAdd, SolverLoad, dsb..

Nah, biar lebih jelas, mungkin bisa dikasih contoh soal kasus solvernya dan kita coba buatkan contoh programnya...

 Ans : Yang aku tahu baru solver buat memilih nilai untuk hasil optimal dari variable yang diberikan ... gimana VBA memanfaatkanya ?

Maaf kalo jawabannya masih ngambang.. Karena akan lebih mudah jika menggunakan contoh..

Ans : Hehehe, aku seh juga masih belajar aja, autodidak karena emang ga pernah kursus atau diajari, jadi trima kasih bantuanya .... 

salam


v1tr4
14 Oct 2011
0

Halo Mas Fitra,

Kita jawab satu-satu ya..

Pertanyaan 1 : Cara mengambil data dari file txt

1. Saya memiliki sebuah file txt seperti pada gambar berikut:

Pertanyaan Fitra 001

2.Asumsinya, saya punya workbook yang berisi 2 worksheets, yaitu: Sheet1 dan Sheet2.

3. Pada Sheet1, saya tambahkan sebuah ActiveX Control - Command Button (CommandButton1).

Pertanyaan Fitra 002

4. Selanjutnya, pada Click Event CommandButton1 tersebut, saya tulis code sbb:

Private Sub CommandButton1_Click()Dim fs, f
Dim TextTerpilih1, TextTerpilih2 As String
'Munculkan dialog box untuk milih file
FiletoOpen = Application _
.GetOpenFilename("Get Text Files (*.txt), *.txt", , "Select", , False)
'Jika tak jadi milih, maka keluar dari prosedur ini.
If VarType(FiletoOpen) = vbBoolean Then
Exit Sub
End If

'Gunakan fileSystemObject
Set fs = CreateObject("Scripting.FileSystemObject")

'Buka file text dengan OpenTextFile
Set txtFile = fs.OpenTextFile(FiletoOpen, 1, -2)
'Inisiasi baris untuk menulis hasil
Baris = 0
'Looping untuk membaca semua baris.
'Perintah ini akan looping sampai baris terakhir
Do While Not (txtFile.atendofstream)
'Menambah baris untuk menulis hasil
Baris = Baris + 1

'masukkan baris text yang ingin dibaca ke variabel txtline
txtline = txtFile.ReadLine

'Karena file textnya sangat teratur, maka bisa menggunakan perintah MID
TextTerpilih1 = Mid(txtline, 7, 4)
TextTerpilih2 = Mid(txtline, 47, 8)

'Tulis hasil ke Sheet2
Worksheets("Sheet2").Cells(Baris, 1).Value = TextTerpilih1
Worksheets("Sheet2").Cells(Baris, 2).Value = TextTerpilih2

Loop

'Tutup file text.
txtFile.Close
End Sub

Penjelasan code-code sudah ada pada "remark"-nya yah..

5. Jika kita coba click CommandButton1, maka akan muncul Dialog Box untuk memilih File TXT dan selanjutnya mengambil data yang dikehendaki yaitu dengan Funtion MID.

Pertanyaan Fitra 009

6. Hasilnya kemudian ditulis pada Sheet2 seperti gambar berikut:

Pertanyaan Fitra 003


ngarasan
14 Oct 2011
0

Pertanyaan 2 : Function Excel pada VBA (NOW, TIME dan SUM).

1. Sekali lagi, asumsinya, saya punya Workbook dan pada Sheet1 saya tambahkan CommandButton2.

2. Selain itu, pada Cell "B3" dan "C3" saya siapka angka untuk contoh function "SUM" nanti.

Pertanyaan Fitra 004

3. Pada click Event CommandButton2, saya tulis code sebagai berikut:

Private Sub CommandButton2_Click()'set untuk mempersingkat baris program aja
Set Ws = Worksheets("Sheet1")

'fungsi NOW, tak memerlukan memanggil function Excel yang biasa,
'tapi memang sudah ada function NOW di VBA
'jadi cukup dengan memanggil funtion VBA Now()
'panggil fungsi Now dan hasilnya ditulis di cell A1
Tanggalsekarang = Now()
Ws.Cells(1, 1).Value = Tanggalsekarang
'fungsi TIME, juga tak memerlukan memanggil function Excel yang biasa,
'tapi memang sudah ada function TIME di VBA
'jadi cukup dengan memanggil funtion VBA Time()
'panggil fungsi Time dan hasilnya ditulis di cell A2
Waktusekarang = Time()
Ws.Cells(2, 1).Value = Waktusekarang
'Nah, begini contoh penggunaan memanggil function Excel.
'Misalkan SUM.
'Ini untuk menjumlahkan Cell B3 dan Cell C3, hasilnya ditulis di A3.
HasilSum = Application.WorksheetFunction.Sum(Ws.Range("B3:C3"))
Ws.Cells(3, 1).Value = HasilSum

End Sub

Liat "Remark" di code diatas. Ternyata, function NOW dan TIME, sudah ada di VBA, jadi gak perlu panggil dari Excel Biasanya..

4. Coba Click pada CommandButton2, maka muncul Cell A2, A2 dan A3 hasil dari code di atas.

Pertanyaan Fitra 005


ngarasan
14 Oct 2011
0

Pertanyaan 3 : SOLVER dengan VBA

Untuk menjawab pertanyaan ini, Mas Fitra sebaiknya membaca Article berikut:

Analisa Data dengan Add-in SOLVER

Karena saya akan menggunakan contoh kasus persis sama dengan yang ada di Article tersebut. Biar gak bingung aja.. Dan, saya anggap Mas Fitra sudah memahami SOLVER.

Oke, kasus pada Article diatas yang akan saya ambil adalah kasus Juragan Angkot Pak Gimin.

Berikut adalah data-data Solver-nya. Saya tulis pada Sheet1. Lebih jelasnya, silahkan lihat link article di atas

Pertanyaan Fitra 006

Nah, dengan menggunakan VBA, saya ingin menganalisa kasus tersebut dengan menggunakan Solver. Untuk itu, maka yang perlu dilakukan adalah:

1. Membuat ActiveXControl CommandButton3

Pertanyaan Fitra 007

2. Kemudian pada Click Event-nya saya tulis code berikut:

Private Sub CommandButton3_Click()
'Untuk mengactivekan Sheet1
Worksheets("Sheet1").Activate
'Mereset Solver..
SolverReset
SolverOptions Precision:=0.001

'Menentukan Target Cell dan Cell-cell yang boleh diubah oleh solver
SolverOK SetCell:=Range("$F$8"), _
MaxMinVal:=2, _
ByChange:=Range("$F$3:$H$3")

'Menambahkan contraint. Relation:=4 artinya data harus INTEGER.
SolverAdd CellRef:=Range("$F$3:$H$3"), _
Relation:=4

'Menambahkan contraint. Relation:=1 artinya "Lebih kecil sama dengan"
SolverAdd CellRef:=Range("$I$3"), _
Relation:=1, _
FormulaText:=150

'Menentukan apakah VBA langsung meghitung (TRUE), atau
'Harus di klik SOLVE oleh user (FALSE)
SolverSolve UserFinish:=True

'Hasil Solver ditulis pada cell E16.
SolverSave SaveArea:=Range("E16")
End Sub

3. Jika kita click, maka Solver akan berkerja dan mengeluarkan hasil sebagai berikut:

Pertanyaan Fitra 008

Nah Mas Fitra..

Semoga bisa menjawab pertanyaan Mas Fitra...

salam

ngarasan


ngarasan
14 Oct 2011
0

User Online

We have 66 guests and no members online

Kitab VBA Excel Level Satu


523952 342835842418972 309765083 nUntuk yang ingin belajar dari NOL.

SMS: 0878 0878 2141

Newsletter

Daftarkan email anda untuk mendapatkan update dari Klinik Excel
UA-20522645-1