Anda di halaman 1dari 15

CARA MEMBUAT TOMBOL

SIMPAN
quote
Macro & VBA, Hits: 38703, Comments: 17, Bookmarked: 0, Followers: 5
Status

 Solved
saya ingin menyimpan data yang di buat di file a.xls dan hasilnya di simpan di file
b.xls tanpa menimpah hasil penyimpanan sebelumnya, jadi di file b itu hasilnya terus
berurutan,  di file a.xls itu memakai tombol "simpan" tp bentuknya bukan seperti form
pengisian. bisa ga ya? terimakasih
Last Modified: Thursday, January 23, 2020

dewinurz
Tuesday, September 27, 2011
0% of 0 votes
Tampilan data yang di file a.xls seperti apa?
Apakah? misal:
Kolom Kolom
A B
Nama ngarasan
Kelas 1a
Usia 5
Dan data dia atas langsung ditulis pada cell-cell excelnya?
Jika Ya, maka Kolom dan Baris yang dipakai harus FIX (TETAP) gak boleh berubah-
berubah.
Dan ditombol simpan, bisa kita tulis code:
Workbooks("b.xls").Worksheet("data").Cells(x,y).value = me.cells(2,2).value
Perintah diatas, mengisi file b.xls di sheet tertentu pada cell tertentu sesuai dengan data
pada cell (2,2) di file a.xls.
Tentu saja, harus ada baris code untuk membuka file b.xls dan mencari baris terakhir di
file tersebut.
salam

ngarasan 
28 Sep 2011
1
terimakasih tanggapannya..iya betul tampilan data seperti yg di contohkan, data
langsung di tulis pada cell nya, jelasnya begini.. misalkan sumber data dari 2 org,
masing2 org mendapatkan data dengan cara mengcopy paste bukan di ketik di
cell2,data yg dicopas jumlah kolom nya tetap tapi jumlah barisnya selalu berbeda, dan 
data dari 2 org itu bisa terkumpul dalam 1 file pusat, makanya saya ingin setiap org
setelah me copy paste data yg didapat mrk tinggal pencet tombol "simpan" dan data itu
terkumpul di file data base, tanpa menimpah hasil penyimpanan sebelumnya.. begitu
kira2, maaf jika bahasa saya kurang jelas maklum masih awam :)
kolom a kolom b
nama     kelas
agus        2a
deni         2b

dewinurz
02 Oct 2011
0
Halo Mas Yadi..
Semoga langkah-langkah ini membantu..
Requirement:
1. Sebuah file xlsx untuk input data, beri nama apa saja (misal a.xlsx). Pada file ini, cell
B1, B2 dan B3 saya jadikan tempat input data.
2. Sebuah Command Button ActiveX Control (Bukan Form Control ya..). Misal nama:
CommandButton1.
3. Sebuah file xlsx untuk menyimpan data, beri nama apa saja (misalkan: Book1.xlsx)
4. Simpan file Book1.xlsx di Drive: C:\ (Biarkan berada di root directory saja, biar
gampang.). Lihat gambar:

5. Pada CommandButton1 Click Event, tulis baris program berikut:


Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If IsFileOpen("c:\book1.xlsx") Then
MsgBox "Maaf, file book1.xlsx sedang dibuka, silahkan tutup file terlebih
dahulu.."
Exit Sub
End If

Workbooks.Open FileName:="c:\book1.xlsx"

With Worksheets("Sheet1")
BarisTerakhir = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To 3
.Cells(BarisTerakhir + 1, i).Value = Me.Cells(2, i).Value
Next i
End With

Workbooks("book1.xlsx").Save
Workbooks("book1.xlsx").Close

Application.ScreenUpdating = True
End Sub

6. Jangan lupa, copy function berikut dibawah commandbutton1 click event. Function ini
berfungsi untuk memeriksa, apakah file telah dibuka atau belum.
Function IsFileOpen(FileName As String)
Dim iFilenum As Long
Dim iErr As Long

On Error Resume Next


iFilenum = FreeFile()
Open FileName For Input Lock Read As #iFilenum
Close iFilenum
iErr = Err
On Error GoTo 0

Select Case iErr


Case 0: IsFileOpen = False
Case 70: IsFileOpen = True
Case Else: Error iErr
End Select

End Function

Action:
1. Masukan data (mau ditulis langsung ataupun Copy Paste, gak ada masalah. Yang
penting, tulis / Copy Paste pada Cell B1, B2 dan B3. Anda bisa ubah-ubah letak cell
inputan. Yang penting, edit juga baris programnya..
Berikut gambar inputan file saya:
2. Ketika saya click CommandButton1 (SIMPAN), maka data yang tertulis akan
disimpan ke file Book1.xlsx yang berada di C:\.
3. Jika file Book1.xlsx dibuka, maka datanya adalah seperti gambar berikut:

Jangan lupa tutup lagi.


4. Sekarang, saya coba ganti data yang akan disimpan. Saya ganti menjadi: acan,
bandung, 20.
Maka, jika dibuka lagi file Book1.xlsx, data tersebut akan disimpan dibawah data
sebelumnya. Lihat gambar:
5. Jika kita mencoba menyimpan data dalam kondisi file Book1.xlsx terbuka, maka akan
muncul pesan seperti gambar:

Code Explanation:
1.Baris program berikut:
Application.ScreenUpdating = False

Application.ScreenUpdating = True

adalah untuk mematikan screen update. Jika tidak dimatikan, maka Excel akan
memunculkan window-window pesan yang membutuhkan interaksi user. 
Sebelum Close, pastikan Screen Update sudah di hidupkan lagi.
2. Baris berikut:
If IsFileOpen("c:\book1.xlsx") Then
MsgBox "Maaf, file book1.xlsx sedang dibuka, silahkan tutup file terlebih
dahulu.."
Exit Sub
End If
Berfungsi untuk memanggil Function IsFileOpen yang tadi kita copy. Function ini
bertugas mengecek, apakah file "c:\book1.xlsx" sudah terbuka atau belum. Jika sudah
terbuka, maka Function akan bernilai TRUE.
Dan jika Function ini bernilai TRUE, maka keluar dari sub atau batal (EXIT SUB).
3. Baris program berikut, 
Workbooks.Open FileName:="c:\book1.xlsx"
Workbooks("book1.xlsx").Save
Workbooks("book1.xlsx").Close

Berturut-turut berguna untuk: membuka file Book1.xlsx, menyimpannya, dan


menutupnya.
4. Baris berikut:
With Worksheets("Sheet1")
BarisTerakhir = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To 3
.Cells(BarisTerakhir + 1, i).Value = Me.Cells(2, i).Value
Next i
End With

berfungsi untuk memindahkan data dari file inputan, ke file Book1.xlsx. Karena data
pada contoh memiliki 3 kolom, maka for - next -nya dari 1 sampai 3.
Oke Mas Yadi..
Kalo ada yang membingungkan, silahkan ditanyakan..
Salam...

ngarasan 
03 Oct 2011
0
wah hebat mas... terimakasih banyak, cuma gmn caranya biar ga cm baris ke 2 aja yg
di simpan? karena sy ingin jumlah baris yg bisa di simpan ga terbatas, karena jumlah
data yang akan disimpan ga selalu sama..:)  maklum awam tp keinginan gede... saya
coba ganti me.cells (2,i).value nya malah baris lain yg di simpan
terimakasih.
dewinurz
04 Oct 2011
-1
Ah iya.. Maaf saya kelupaan..
Kalo jumlah baris inputannya berbeda-beda, coba pakai code ini untuk
CommandButton1 click event-nya:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If IsFileOpen("c:\book1.xlsx") Then
MsgBox "Maaf, file book1.xlsx sedang dibuka, silahkan tutup file terlebih
dahulu.."
Exit Sub
End If

Workbooks.Open FileName:="c:\book1.xlsx"

With Worksheets("Sheet1")
BarisTerakhirInput = Me.Cells(.Rows.Count, 1).End(xlUp).Row
For j = 2 To BarisTerakhirInput
BarisTerakhir = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To 3
.Cells(BarisTerakhir + 1, i).Value = Me.Cells(j, i).Value
Next i
Next j
End With

Workbooks("book1.xlsx").Save
Workbooks("book1.xlsx").Close

Application.ScreenUpdating = True
End Sub

Semoga sekarang sesuai permintaan..


salam

ngarasan 
04 Oct 2011
1
Oya. ngomong-ngomong, biasanya data-nya sampai berapa baris?
Code diatas belum saya coba menggunakan data yang sangat banyak. Khawatirnya,
prosesnya akan lambat jika menggunakan data yang banyak.
Kalo datanya lumayan banyak, sepertinya pakai metode copy paste (di program VBA-
nya).
Tapi, mungkin bisa dicoba dulu..
salam

ngarasan 
04 Oct 2011
1
wah terimakasih banyak ini sudah cukup.. kalo ada yang ingin saya tanyain jangan
kapok ya mas...hehe :D sukses selalu mas..

dewinurz
05 Oct 2011
1
ada sedikit ganjelan mas.. bisa ga pas kita pencet tombol simpan, data di sheet tempat
input data otomatis kehapus, biar ga dobel data di file penyimpanannya... karena pas di
coba kadang lupa udah dipencet atau belum tombol simpannya... makasih.
dewinurz
05 Oct 2011
1
Berarti, silahkan tambahkan baris berikut pada sommandbutton1 click event:
Range(Cells(2, 1), Cells(BarisTerakhirInput, 3)).ClearContents

Code lengkap jadinya:


Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If IsFileOpen("c:\book1.xlsx") Then
MsgBox "Maaf, file book1.xlsx sedang dibuka, silahkan tutup file terlebih
dahulu.."
Exit Sub
End If

Workbooks.Open Filename:="c:\book1.xlsx"

With Worksheets("Sheet1")
BarisTerakhirInput = Me.Cells(.Rows.Count, 1).End(xlUp).Row
For j = 2 To BarisTerakhirInput
BarisTerakhir = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To 3
.Cells(BarisTerakhir + 1, i).Value = Me.Cells(j, i).Value
Next i
Next j
End With

Workbooks("book1.xlsx").Save
Workbooks("book1.xlsx").Close

Me.Range(Cells(2, 1), Cells(BarisTerakhirInput, 3)).ClearContents


Application.ScreenUpdating = True
End Sub

Jadi, perintah tambahan diatas, akan men-select range A2 sampai CX. Nah, nilai X-nya
ini adalah baris terakhir dari inputan. Angka 3 pada code adalah column (C).
Semoga membantu..
Salam

ngarasan 
05 Oct 2011
1
terima kasih mas

dewinurz
07 Oct 2011
1
kalau datanya berada di sheet pertama range I40:AM41 & I42:AM43, dan mau saya
simpan disheet dua mulai dari B4 dan C4
ket
jadi data I40:AM41(area pada sheet 1 yang dimerge) masuk pada cell B4(database
yang ada disheet 2)
jadi data I42:AM43(area pada sheet 1 yang dimerge) masuk pada cell C4(database
yang ada disheet 2)
dan terus berlanjut kebawah tanpa menimpa data sebelumnya

abdulk59
01 Mar 2012
0
Halo Mas Kamal,
Mohon maaf jawaban sangat terlambat neh..
Coba pake code berikut:
Private Sub Simpan()
With Worksheets("Sheet2")
BarisTerakhirTujuanB = .Cells(.Rows.Count, 2).End(xlUp).Row
BarisTerakhirTujuanC = .Cells(.Rows.Count, 3).End(xlUp).Row

.Cells(BarisTerakhirTujuanB + 1, 2).Value = Worksheets("Sheet1").Cells(40,


9).Value
.Cells(BarisTerakhirTujuanC + 1, 3).Value = Worksheets("Sheet1").Cells(42,
9).Value
End With
End Sub

Selanjutnya, jangan lupa pada SHEET2, Cell B3 dan C3 diberi Header. Misal:
 A   B  C
1
2
3  Data B  Data C
4
5
Silahkan dicoba Mas Kamal..
salam

ngarasan 
20 Mar 2012
2
kalo file tujuannya datanya di protect gimana codenya ??
mohon penjelasannya mas. trims
franky inaku
14 Apr 2014
1
Malam Mas

Mohon arahannya dong,untuk membuat tombol save dengan VBA tapi kolom data-datanya
berbeda (dalam hal ini INVOICE) gimana ya mas.

Misal untuk data basenya :

Nama   Alamat   No faktur   Tanggal   Penjualan

Dan untuk datanya nama itu ada di sell K6 alamat ada di sell K7 no faktur ada di sell D7 tanggal
ada di sell D8 dan penjualan ada di sell L25.

Mohon ilmunya gan. maaf kalau bahasanya agak ribet hehehe

widyanra
27 Apr 2017
0
Salam
Numpang tanya mas
Apakah inisial i&j pada For i & For j bersipat baku untuk mewakili jumlah kolom dan
baris ?
Trimakasih
Agus Ohenk
21 Sep 2019
0
Terus kalu form input datanya berbentuk tabel atau range misal A2:E20 pada sheet1
mau diinput di sheet2 sekaligus dan tidah menimpah data² sebelumnya (otomatis
masuk di baris kosong berikutnya) bagaimana kodenya ?? Terimakasih ?

Agus Ohenk
21 Sep 2019
0
Salam mas,
Mau tanya, jika cell paling atas nama operatornya, terus saat diklik tombol simpan,
muncul file baru dengan nama operator yang input data bagaimana cara?
Terima kasih.

Gawe
23 Jan 2020
0
20
         

KITAB VBA EXCEL LEVEL SATU


Buat pem ula yang serius pengen belajar MACRO VBA Excel, silahkan baca
buku berikut:
EDISI 2 : Rp. 60.000
BELI VERSI CETAK KLIK DI SINI
BELI VERSI DIGITAL KLIK DI SINI
LIHAT PREVIEW KLIK DI SINI

Follow Us


PARTNER KLINIK EXCEL

Bagi anda yang ingin cepat menguasai Excel dan VBA/Macro Excel, dapatkan paket Training yang
dibutuhkan di partner Klinik Excel:

Anda akan mendapatkan proses belajar yang terstruktur, lengkap dan mempercepat anda
menguasai Excel dan VBA/Macro Excel.

Copyright © 2012 Klinik Excel


 

Anda mungkin juga menyukai