Messages In This Digest (25 Messages)
- 1a.
- Re: Update Tabel dari sheet lain... From: zainul ulum <
> - 1b.
- Re: Update Tabel dari sheet lain... From: Haps
- 1c.
- Re: Update Tabel dari sheet lain... From: Kid Mr.
- 1d.
- Re: Update Tabel dari sheet lain... From: zainul ulum <
> - 1e.
- Re: Update Tabel dari sheet lain... From: Kid Mr.
- 1f.
- Re: Update Tabel dari sheet lain... From: zainul ulum <
> - 1g.
- Re: Update Tabel dari sheet lain... From: jkssxls Sudarsono
- 1h.
- Re: Update Tabel dari sheet lain... From: jkssxls Sudarsono
- 1i.
- Re: Update Tabel dari sheet lain... From: jkssxls Sudarsono
- 1j.
- Re: Update Tabel dari sheet lain... From: Haps
- 1k.
- Re: Update Tabel dari sheet lain... From: jkssxls Sudarsono
- 1l.
- Re: Update Tabel dari sheet lain... From: Kid Mr.
- 1m.
- Re: Update Tabel dari sheet lain... From: jkssxls Sudarsono
- 1n.
- Re: Update Tabel dari sheet lain... From: jkssxls Sudarsono
- 1o.
- Re: Update Tabel dari sheet lain... From: Kid Mr.
- 2a.
- Form untuk input data From: Senja Laura
- 2b.
- Re: Form untuk input data From: Kid Mr.
- 2c.
- Re: Form untuk input data From: Senja Laura
- 3a.
- Menjumlahkan yang berisi angka saja From: Senja Laura
- 3b.
- Re: Menjumlahkan yang berisi angka saja From: Franciscus SOG
- 3c.
- Re: Menjumlahkan yang berisi angka saja From: Senja Laura
- 4.
- Membuat Rekap Data From: Cang Ato
- 5a.
- Isi sel jadi isi tabel From: sarma diaz
- 5b.
- Re: Isi sel jadi isi tabel From: Kid Mr.
- 6.
- saldo akhir pindah ke saldo awal From: Darto Chandra
Messages
- 1a.
-
Re: Update Tabel dari sheet lain...
Posted by: "zainul ulum <
>" zainul_ulum@yahoo.com zainul_ulum Wed Sep 28, 2011 9:46 am (PDT)
Mbak Siti dan pak Hendrik,
Menambah wawasan saya.
Sebelumnya code yang aku buat alurnya adalah:
1. cari id di [sheet1] yang mempunyai id nya sama dengan [sheet2]
2. jika ditemukan id tersebut, row di [sheet1] dihapus
3. copy data [sheet2] ke [sheet1]
Procedure yang aku buat untuk mencari id dan menghapus record adalah:
Public Sub DeleteRecordInDatabaseWhichHasSame( findWhat As String, _
atColumn As Integer, onSheet As Worksheet)
Dim c As Range
With onSheet.UsedRange.Columns(atColumn )
Set c = .Find(findWhat, LookIn:=xlValues, SearchOrder:=xlByColumns)
If Not c Is Nothing Then
c.EntireRow.Delete shift:=xlUp
Exit Sub
End If
End With
End Sub
Sedangkan untuk copy data menggunakan method range.copy destination seperti di code pak Hendrik.
Terimakasih banyak atas masukannya.
-zainul-
From: belajar-excel@yahoogroups. [mailto:belajar-excel@com yahoogroups. ] On Behalf Of hendrik karnadicom
Sent: Wednesday, September 28, 2011 10:39 PM
To: belajar-excel@yahoogroups. com
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Pak Zainal,
Ada sedikit kesalahan teknis dalam No ID pada Sheet Update, tertulis 1 untuk C seharusnya 3
Berikut adalah lampiran file sebelum dan sesudah Update.
Salam,
Hendrik Karnadi
_____
From: "zainul ulum <<yahoo>>" <zainul_ulum@yahoo.com >
To: belajar-excel@yahoogroups. com
Sent: Wednesday, 28 September 2011 9:53 AM
Subject: [belajar-excel] Update Tabel dari sheet lain...
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1b.
-
Re: Update Tabel dari sheet lain...
Posted by: "Haps" hapsari.stlizbeth@gmail.com liz_hap
Wed Sep 28, 2011 2:30 pm (PDT)
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2
dimensi) 3 kolom
Kemudian Fungsi tsb *dimanfaatkan untuk mengUpdate tabel* data dengan
prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi
kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011
'-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0)
Set DatRng = DatRng.Resize(DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0)
Set NewRng = NewRng.Resize(NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = *JOIN(DatRng, NewRng)*
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2)
DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r)
DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate
MsgBox "Selesai", vbInformation, ThisWorkbook.Name
End Sub
cmiiw
w
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
> dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
>
> dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar
> hanya dimunculkan 1 kali
> jika perlu hasil JOIN bisa diurutkan (sorted)
>
> sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk
> keperluan
> "sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
>
> saya yakin mas zainul ulum bisa memodifikasi makro tsb agar
> dapat mengerjakan keperluan
> yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih
> cuocokk....
>
> ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
>
> '---text / VBA codeing UDF Join
>
> Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
> Optional Urutkan As Boolean = False)
> '-----
> End Function
>
>
>
> 2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
>
>> Be-exceler,
>> Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
>> Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
>>
>> Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
>> berdasarkan perubahan di [Sheet 2]?
>>
>> Terimakasih,
>> -zainul-
>>
>>
- 1c.
-
Re: Update Tabel dari sheet lain...
Posted by: "Kid Mr." mr.nmkid@gmail.com nmkid.family@ymail.com
Wed Sep 28, 2011 5:28 pm (PDT)
Mas Zain,
File terlampir mencoba memanfaatkan fitur remove duplicate.
Karakteristik remove duplicate adalah mempertahankan data pertama yang
ditemukan.
Jadi prosesnya didahului dengan copas seluruh data peng-update ke sheet data
di awal record sheet data (insert copied cells)
Bunyinya si prosedur begini :
Public Sub UpdateData()
Dim rngInput As Range, rngData As Range
Dim lRowsInput As Long
'init
Set rngData = Sheets("data").Range(" a1")
Set rngInput = Sheets("update").Range(" a1").CurrentRegi on
lRowsInput = rngInput.Rows.Count - 1
'error trap :: no data
If lRowsInput = 0 Then
MsgBox "Tidak ada data."
Exit Sub
End If
'proses update
rngData.Offset(1).Resize( lRowsInput) .EntireRow. Insert
'siapkan baris paste
rngInput.Offset(1).Resize( lRowsInput) .Copy rngData.Offset( 1)
'copas
rngData.CurrentRegion.RemoveDuplica tes Array(1, 2), xlYes
'remove duplicate
rngData.CurrentRegion.Sort rngData, xlAscending, Header:=xlYes
'sort (bila perlu)
End Sub
Wassalam.
Kid.
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
> **
>
>
> Be-exceler,
> Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
> Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
>
> Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
> berdasarkan perubahan di [Sheet 2]?
>
> Terimakasih,
> -zainul-
>
>
>
>
- 1d.
-
Re: Update Tabel dari sheet lain...
Posted by: "zainul ulum <
>" zainul_ulum@yahoo.com zainul_ulum Wed Sep 28, 2011 7:15 pm (PDT)
Makasih mas Kid,
RemoveDuplicates apakah ada di excel 2003?
Salam
-zainul-
From: belajar-excel@yahoogroups. [mailto:belajar-excel@com yahoogroups. ]com
On Behalf Of Kid Mr.
Sent: Thursday, September 29, 2011 7:28 AM
To: belajar-excel@yahoogroups. com
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Mas Zain,
File terlampir mencoba memanfaatkan fitur remove duplicate.
Karakteristik remove duplicate adalah mempertahankan data pertama yang
ditemukan.
Jadi prosesnya didahului dengan copas seluruh data peng-update ke sheet data
di awal record sheet data (insert copied cells)
Bunyinya si prosedur begini :
Public Sub UpdateData()
Dim rngInput As Range, rngData As Range
Dim lRowsInput As Long
'init
Set rngData = Sheets("data").Range(" a1")
Set rngInput = Sheets("update").Range(" a1").CurrentRegi on
lRowsInput = rngInput.Rows.Count - 1
'error trap :: no data
If lRowsInput = 0 Then
MsgBox "Tidak ada data."
Exit Sub
End If
'proses update
rngData.Offset(1).Resize( lRowsInput) .EntireRow. Insert
'siapkan baris paste
rngInput.Offset(1).Resize( lRowsInput) .Copy rngData.Offset( 1)
'copas
rngData.CurrentRegion.RemoveDuplica tes Array(1, 2), xlYes
'remove duplicate
rngData.CurrentRegion.Sort rngData, xlAscending, Header:=xlYes
'sort (bila perlu)
End Sub
Wassalam.
Kid.
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1e.
-
Re: Update Tabel dari sheet lain...
Posted by: "Kid Mr." mr.nmkid@gmail.com nmkid.family@ymail.com
Wed Sep 28, 2011 8:43 pm (PDT)
Pada xl2003 tidak ada remove duplicate.
Jadi perlu kolom bantu (temporary) yang di-create dengan vba, sebagai flag
record yang akan di delete.
Proses delete dibantu dengan autofilter lebih dulu.
Memang tidak secepat menggunakan remove duplicate, tetapi sepertinya untuk
data updater yang banyak, cukup cepat juga (ya cepat karena dengan i5,
gimana jika P4 ya).
Dengan konsep penggunaan kolom bantu seperti ini, maka dimungkinkan juga
untuk update data dengan banyak kriteria, seperti kemampuan remove
duplicate.
Kelebihan konsep ini dibanding fitur remove duplicate adalah bisa diterapkan
pada data yang membolehkan adanya key fields yang duplicate.
Konsep ini membutuhkan formula yang sederhana (jika mungkin, tanpa array
formula). Seperti countif untuk 1 kriteria dan Match untuk multi kriteria.
Agar match tidak membutuhkan array formula, maka digunakan named range yang
menjadi array_lookup, yang disusun dengan VBA
Biasanya, sebuah prosedur yang melibatkan formula dalam jumlah banyak,
kalkulasi excel di-manual-kan untuk meningkatkan kecepatan proses. Justru
pada konsep penggunaan kolom bantu seperti ini, malah harus automatic untuk
mendapatkan kecepatan proses yang baik.
Ketika workbook telah berisi banyak formula yang bersifat volatile, maka
memanualkan setting kalkulasi excel tetap lebih baik dibanding tetap bekerja
pada setting automatic.
Wassalamualaikum Wr. Wb.
Kid.
2011/9/29 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
> **
>
>
> Makasih mas Kid,****
>
> ** **
>
> RemoveDuplicates apakah ada di excel 2003?****
>
> Salam****
>
> -zainul-****
>
> *From:* belajar-excel@yahoogroups. [mailto:com
> belajar-excel@yahoogroups. ] *On Behalf Of *Kid Mr.com
> *Sent:* Thursday, September 29, 2011 7:28 AM
>
> *To:* belajar-excel@yahoogroups. com
> *Subject:* Re: [belajar-excel] Update Tabel dari sheet lain...****
>
> ** **
>
> ****
>
> Mas Zain,
>
>
> File terlampir mencoba memanfaatkan fitur remove duplicate.
> Karakteristik remove duplicate adalah mempertahankan data pertama yang
> ditemukan.
> Jadi prosesnya didahului dengan copas seluruh data peng-update ke sheet
> data di awal record sheet data (insert copied cells)
>
> Bunyinya si prosedur begini :
>
> Public Sub UpdateData()
> Dim rngInput As Range, rngData As Range
> Dim lRowsInput As Long
>
> 'init
> Set rngData = Sheets("data").Range(" a1")
> Set rngInput = Sheets("update").Range(" a1").CurrentRegi on
> lRowsInput = rngInput.Rows.Count - 1
>
> 'error trap :: no data
> If lRowsInput = 0 Then
> MsgBox "Tidak ada data."
> Exit Sub
> End If
>
> 'proses update
> rngData.Offset(1).Resize( lRowsInput) .EntireRow. Insert
> 'siapkan baris paste
> rngInput.Offset(1).Resize( lRowsInput) .Copy rngData.Offset( 1)
> 'copas
> rngData.CurrentRegion.RemoveDuplica tes Array(1, 2), xlYes
> 'remove duplicate
> rngData.CurrentRegion.Sort rngData, xlAscending, Header:=xlYes
> 'sort (bila perlu)
> End Sub
>
> Wassalam.
> Kid.
>
> 2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >****
>
> ****
>
> Be-exceler,
> Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
> Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
>
> Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
> berdasarkan perubahan di [Sheet 2]?
>
> Terimakasih,
> -zainul-****
>
> ** **
>
> ** **
>
> ****
>
>
>
>
- 1f.
-
Re: Update Tabel dari sheet lain...
Posted by: "zainul ulum <
>" zainul_ulum@yahoo.com zainul_ulum Wed Sep 28, 2011 9:08 pm (PDT)
Ok mas,
Ijin untuk dipelajari lebih dahulu..
Wassalam
-zainul-
From: belajar-excel@yahoogroups. [mailto:belajar-excel@com yahoogroups. ]com
On Behalf Of Kid Mr.
Sent: Thursday, September 29, 2011 10:43 AM
To: belajar-excel@yahoogroups. com
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Pada xl2003 tidak ada remove duplicate.
Jadi perlu kolom bantu (temporary) yang di-create dengan vba, sebagai flag
record yang akan di delete.
Proses delete dibantu dengan autofilter lebih dulu.
Memang tidak secepat menggunakan remove duplicate, tetapi sepertinya untuk
data updater yang banyak, cukup cepat juga (ya cepat karena dengan i5,
gimana jika P4 ya).
Dengan konsep penggunaan kolom bantu seperti ini, maka dimungkinkan juga
untuk update data dengan banyak kriteria, seperti kemampuan remove
duplicate.
Kelebihan konsep ini dibanding fitur remove duplicate adalah bisa diterapkan
pada data yang membolehkan adanya key fields yang duplicate.
Konsep ini membutuhkan formula yang sederhana (jika mungkin, tanpa array
formula). Seperti countif untuk 1 kriteria dan Match untuk multi kriteria.
Agar match tidak membutuhkan array formula, maka digunakan named range yang
menjadi array_lookup, yang disusun dengan VBA
Biasanya, sebuah prosedur yang melibatkan formula dalam jumlah banyak,
kalkulasi excel di-manual-kan untuk meningkatkan kecepatan proses. Justru
pada konsep penggunaan kolom bantu seperti ini, malah harus automatic untuk
mendapatkan kecepatan proses yang baik.
Ketika workbook telah berisi banyak formula yang bersifat volatile, maka
memanualkan setting kalkulasi excel tetap lebih baik dibanding tetap bekerja
pada setting automatic.
Wassalamualaikum Wr. Wb.
Kid.
2011/9/29 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Makasih mas Kid,
RemoveDuplicates apakah ada di excel 2003?
Salam
-zainul-
From: belajar-excel@yahoogroups. [mailto:belajar-excel@com yahoogroups. ]com
On Behalf Of Kid Mr.
Sent: Thursday, September 29, 2011 7:28 AM
To: belajar-excel@yahoogroups. com
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Mas Zain,
File terlampir mencoba memanfaatkan fitur remove duplicate.
Karakteristik remove duplicate adalah mempertahankan data pertama yang
ditemukan.
Jadi prosesnya didahului dengan copas seluruh data peng-update ke sheet data
di awal record sheet data (insert copied cells)
Bunyinya si prosedur begini :
Public Sub UpdateData()
Dim rngInput As Range, rngData As Range
Dim lRowsInput As Long
'init
Set rngData = Sheets("data").Range(" a1")
Set rngInput = Sheets("update").Range(" a1").CurrentRegi on
lRowsInput = rngInput.Rows.Count - 1
'error trap :: no data
If lRowsInput = 0 Then
MsgBox "Tidak ada data."
Exit Sub
End If
'proses update
rngData.Offset(1).Resize( lRowsInput) .EntireRow. Insert
'siapkan baris paste
rngInput.Offset(1).Resize( lRowsInput) .Copy rngData.Offset( 1)
'copas
rngData.CurrentRegion.RemoveDuplica tes Array(1, 2), xlYes
'remove duplicate
rngData.CurrentRegion.Sort rngData, xlAscending, Header:=xlYes
'sort (bila perlu)
End Sub
Wassalam.
Kid.
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1g.
-
Re: Update Tabel dari sheet lain...
Posted by: "jkssxls Sudarsono" jkssxls@hotmail.com jkssbma
Wed Sep 28, 2011 9:44 pm (PDT)
Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi join : j = UBound(ArUp) akan selalu menghasilkan 3 di koreksi menjadi
j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" ( worksheet "data" ) Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
To: belajar-excel@yahoogroups. com
From: hapsari.stlizbeth@gmail.com
Date: Thu, 29 Sep 2011 04:30:15 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2 dimensi) 3 kolomKemudian Fungsi tsb dimanfaatkan untuk mengUpdate tabel data dengan prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011 '-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0) Set DatRng = DatRng.Resize( DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0) Set NewRng = NewRng.Resize( NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = JOIN(DatRng, NewRng)
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2) DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r) DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate MsgBox "Selesai", vbInformation, ThisWorkbook. Name
End Sub
cmiiww
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar hanya dimunculkan 1 kali
jika perlu hasil JOIN bisa diurutkan (sorted)
sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk keperluan
"sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
saya yakin mas zainul ulum bisa memodifikasi makro tsb agar dapat mengerjakan keperluan
yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih cuocokk....
ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
'---text / VBA codeing UDF Join
Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
Optional Urutkan As Boolean = False)
'----- End Function
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1h.
-
Re: Update Tabel dari sheet lain...
Posted by: "jkssxls Sudarsono" jkssxls@hotmail.com jkssbma
Wed Sep 28, 2011 10:17 pm (PDT)
data utama
ID
H1
H2
1
A
100
2
B
125
3
C
10
4
D
5
data updater
ID
H1
H2
1
C
200
2
B
0
5
E
15
data hasil update :
ID
H1
H2
1
A
200
2
B
0
3
C
10
4
D
5
5
E
15
seharusnya :
ID
H1
H2
1
A
100
2
B
0
3
C
200
4
D
5
5
E
15
hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) , sebaiknya index -2 ( kolom H1 ).Maaf sedikit mengoreksi .. tak apa -apa , kan....To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 04:42:28 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi join :
j = UBound(ArUp) akan selalu menghasilkan 3
di koreksi menjadi
j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" ( worksheet "data" )
Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
To: belajar-excel@yahoogroups. com
From: hapsari.stlizbeth@gmail.com
Date: Thu, 29 Sep 2011 04:30:15 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2 dimensi) 3 kolomKemudian Fungsi tsb dimanfaatkan untuk mengUpdate tabel data dengan prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011 '-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0) Set DatRng = DatRng.Resize( DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0) Set NewRng = NewRng.Resize( NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = JOIN(DatRng, NewRng)
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2) DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r) DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate MsgBox "Selesai", vbInformation, ThisWorkbook. Name
End Sub
cmiiww
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar hanya dimunculkan 1 kali
jika perlu hasil JOIN bisa diurutkan (sorted)
sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk keperluan
"sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
saya yakin mas zainul ulum bisa memodifikasi makro tsb agar dapat mengerjakan keperluan
yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih cuocokk....
ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
'---text / VBA codeing UDF Join
Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
Optional Urutkan As Boolean = False)
'----- End Function
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1i.
-
Re: Update Tabel dari sheet lain...
Posted by: "jkssxls Sudarsono" jkssxls@hotmail.com jkssbma
Wed Sep 28, 2011 10:24 pm (PDT)
saya modif fungsi join menjadi join_mPrivate Function JOIN_m(L01 As Range, L02 As Range)
'=== siti Vi : Fungsi JOIN : menggabung dua List
' modified by Haps: 29 sep 2011
' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
'==================== ========= ========= ========= ==
Dim ArS As String, ArUp(), Tmp
Dim i As Long, j As Long, p As Long, u As Long
Dim kolomkey As Integer
kolomkey = 2
' menyusun 3 array ex tabel data
ArS = "|"
ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
For i = 1 To L01.Rows.Count
'isi string dari kolom H1 ( berisi A,B,C,D )
ArS = ArS & L01(i, kolomkey) & "|"
ArUp(1, i) = L01(i, 1)
ArUp(2, i) = L01(i, 2)
ArUp(3, i) = L01(i, 3)
Next i
' array tabel diperbesar dengan data di L02 (update)' j = UBound(ArUp)
' ambil banyaknya data di dimensi ke-2 : A B C D
j = UBound(ArUp, 2)
For i = 1 To L02.Rows.Count
' jika ID di L02 belum ada di L01.. maka..
If InStr(1, ArS, "|" & L02(i, kolomkey) & "|") = 0 Then
' jika data di L02 tak ada di ArS
ArS = ArS & L02(i, kolomkey) & "|"
j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
ArUp(1, j) = L02(i, 1)
ArUp(2, j) = L02(i, 2)
ArUp(3, j) = L02(i, 3)
Else ' jika ID di list L02 sudah ada di L01 (kembar)
' Nilainya H2-nya diambilkan dari L02 (data pengUpdate)
For p = 1 To j
If L02(i, kolomkey) = ArUp(kolomkey, p) Then
' ganti data pada ArUp dgn data di L02 hanya index ke-3
ArUp(3, p) = L02(i, 3)
Exit For
End If
Next p
End If
Next i
' bubble sort, mengurutkan hasil Array (sort by ID)
For i = LBound(ArUp) To UBound(ArUp) - 1
For u = LBound(ArUp) To UBound(ArUp) - 1
If ArUp(kolomkey, u) > ArUp(kolomkey, u + 1) Then
Tmp = ArUp(1, u): ArUp(1, u) = ArUp(1, u + 1): ArUp(1, u + 1) = Tmp
Tmp = ArUp(2, u): ArUp(2, u) = ArUp(2, u + 1): ArUp(2, u + 1) = Tmp
Tmp = ArUp(3, u): ArUp(3, u) = ArUp(3, u + 1): ArUp(3, u + 1) = Tmp
End If
Next u
Next i
' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
JOIN_m = ArUp
End Function
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 05:13:38 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
data utama
ID
H1
H2
1
A
100
2
B
125
3
C
10
4
D
5
data updater
ID
H1
H2
1
C
200
2
B
0
5
E
15
data hasil update :
ID
H1
H2
1
A
200
2
B
0
3
C
10
4
D
5
5
E
15
seharusnya :
ID
H1
H2
1
A
100
2
B
0
3
C
200
4
D
5
5
E
15
hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) , sebaiknya index -2 ( kolom H1 ).
Maaf sedikit mengoreksi .. tak apa -apa , kan....
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 04:42:28 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi join :
j = UBound(ArUp) akan selalu menghasilkan 3
di koreksi menjadi
j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" ( worksheet "data" )
Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
To: belajar-excel@yahoogroups. com
From: hapsari.stlizbeth@gmail.com
Date: Thu, 29 Sep 2011 04:30:15 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2 dimensi) 3 kolomKemudian Fungsi tsb dimanfaatkan untuk mengUpdate tabel data dengan prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011 '-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0) Set DatRng = DatRng.Resize( DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0) Set NewRng = NewRng.Resize( NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = JOIN(DatRng, NewRng)
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2) DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r) DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate MsgBox "Selesai", vbInformation, ThisWorkbook. Name
End Sub
cmiiww
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar hanya dimunculkan 1 kali
jika perlu hasil JOIN bisa diurutkan (sorted)
sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk keperluan
"sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
saya yakin mas zainul ulum bisa memodifikasi makro tsb agar dapat mengerjakan keperluan
yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih cuocokk....
ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
'---text / VBA codeing UDF Join
Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
Optional Urutkan As Boolean = False)
'----- End Function
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1j.
-
Re: Update Tabel dari sheet lain...
Posted by: "Haps" hapsari.stlizbeth@gmail.com liz_hap
Wed Sep 28, 2011 10:42 pm (PDT)
ysh Bp Sudarsono,
waduh maaf baru terbaca hari ini
betul pak, saya salah, ada parameter untuk Ubound yg tidak tertuliskan
*(sebelumnya ArUp adalah array 1 dimensi, ketika diubah menjadi 2 dimensi*
*banyak pneggunaan variable ArUp yg belum di sesuaikan)*
terimakasih koreksi nya ...
selain itu pada bagian bubble sort juga kurang baik
karena pengulangannya (N-1) * (N-1) yg seharusnya tidak perlu
sekarang sudah diperbaiki
koreksinya tetap saya kirimkan lagi kemilis,
kalau tidak dikirimkan koreksinya, nanti barangkali ada member yg mencontoh
bubble sort tsb, mereka akan mendapat contoh yg kurang baik.
sekali lagi terima kasih
sambil tetap menunggu jika masih ada coding yg kurang benar...
-haps-
Private Function JOIN(L01 As Range, L02 As Range)
'=== siti Vi : Fungsi JOIN : menggabung dua List
' modified by Haps: 29 sep 2011
' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
'==================== ========= ========= ========= ==
Dim ArS As String, ArUp(), Tmp
Dim i As Long, j As Long, p As Long, a As Long, b As Long
' menyusun array ex (2 dimensi) based on tabel data (L01)
ArS = "|"
ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
For i = 1 To L01.Rows.Count
ArS = ArS & L01(i, 1) & "|"
ArUp(1, i) = L01(i, 1)
ArUp(2, i) = L01(i, 2)
ArUp(3, i) = L01(i, 3)
Next i
' array tabel diperbesar dengan data di L02 (update)
j = UBound(ArUp, 2)
For i = 1 To L02.Rows.Count
' jika ID di L02 belum ada di L01.. maka..
If InStr(1, ArS, "|" & L02(i, 1) & "|") = 0 Then
ArS = ArS & L02(i, 1) & "|"
j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
ArUp(1, j) = L02(i, 1)
ArUp(2, j) = L02(i, 2)
ArUp(3, j) = L02(i, 3)
Else ' jika ID di list L02 sudah ada di L01 (kembar)
' Nilai H2-nya diambilkan dari L02 (data pengUpdate)
For p = 1 To j
If L02(i, 1) = ArUp(1, p) Then
ArUp(3, p) = L02(i, 3)
Exit For
End If
Next p
End If
Next i
' bubble sort, mengurutkan hasil Array (sort by ID)
For i = LBound(ArUp, 2) To UBound(ArUp, 2) - 1
For a = UBound(ArUp, 2) To i + 1 Step -1
b = a - 1
If ArUp(1, a) < ArUp(1, b) Then
Tmp = ArUp(1, a): ArUp(1, a) = ArUp(1, b): ArUp(1, b) = Tmp
Tmp = ArUp(2, a): ArUp(2, a) = ArUp(2, b): ArUp(2, b) = Tmp
Tmp = ArUp(3, a): ArUp(3, a) = ArUp(3, b): ArUp(3, b) = Tmp
End If
Next a
Next i
' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
JOIN = ArUp
End Function
2011/9/29 jkssxls Sudarsono <jkssxls@hotmail.com >
> **
>
>
> Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi
> join :
> * j = UBound(ArUp) akan selalu menghasilkan 3 *
> di koreksi menjadi
> * j = UBound(ArUp, 2)* akan menghasilkan banyaknya data di range "data"
> ( worksheet "data" )
>
> Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
>
>
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: hapsari.stlizbeth@gmail.com
> Date: Thu, 29 Sep 2011 04:30:15 +0700
>
> Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
>
>
> Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel
> 2 dimensi) 3 kolom
> Kemudian Fungsi tsb *dimanfaatkan untuk mengUpdate tabel* data dengan
> prosedur Sub.
>
> Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi
> kepanjangan...
>
- 1k.
-
Re: Update Tabel dari sheet lain...
Posted by: "jkssxls Sudarsono" jkssxls@hotmail.com jkssbma
Thu Sep 29, 2011 12:24 am (PDT)
ini cuplikan bubble -sort hasil perbaikan Mbak Haps : For i = LBound(ArUp, 2) To UBound(ArUp, 2) - 1 For a = UBound(ArUp, 2) To i + 1 Step -1 b = a - 1 If ArUp(1, a) < ArUp(1, b) Then Tmp = ArUp(1, a): ArUp(1, a) = ArUp(1, b): ArUp(1, b) = Tmp Tmp = ArUp(2, a): ArUp(2, a) = ArUp(2, b): ArUp(2, b) = Tmp Tmp = ArUp(3, a): ArUp(3, a) = ArUp(3, b): ArUp(3, b) = Tmp End If Next a Next idan ini contoh simulasinya :
i
b
1
2
3
4
5
2
3
5
1
4
1
5
5
4
2
3
5
1
4
4
1
4
4
1
2
3
5
1
4
3
5
3
3
1
2
3
1
5
4
2
3
2
2
1
2
1
3
5
4
1
2
2
5
5
4
1
2
3
5
4
4
5
4
4
4
1
2
3
4
5
3
3
3
3
3
1
2
3
4
5
2
2
3
5
5
5
1
2
3
4
5
4
4
4
4
4
1
2
3
4
5
3
3
4
5
5
5
1
2
3
4
5
4
4
1
2
3
4
5
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 05:24:02 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
saya modif fungsi join menjadi join_m
Private Function JOIN_m(L01 As Range, L02 As Range)
'=== siti Vi : Fungsi JOIN : menggabung dua List
' modified by Haps: 29 sep 2011
' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
'==================== ========= ========= ========= ==
Dim ArS As String, ArUp(), Tmp
Dim i As Long, j As Long, p As Long, u As Long
Dim kolomkey As Integer
kolomkey = 2
' menyusun 3 array ex tabel data
ArS = "|"
ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
For i = 1 To L01.Rows.Count
'isi string dari kolom H1 ( berisi A,B,C,D )
ArS = ArS & L01(i, kolomkey) & "|"
ArUp(1, i) = L01(i, 1)
ArUp(2, i) = L01(i, 2)
ArUp(3, i) = L01(i, 3)
Next i
' array tabel diperbesar dengan data di L02 (update)
' j = UBound(ArUp)
' ambil banyaknya data di dimensi ke-2 : A B C D
j = UBound(ArUp, 2)
For i = 1 To L02.Rows.Count
' jika ID di L02 belum ada di L01.. maka..
If InStr(1, ArS, "|" & L02(i, kolomkey) & "|") = 0 Then
' jika data di L02 tak ada di ArS
ArS = ArS & L02(i, kolomkey) & "|"
j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
ArUp(1, j) = L02(i, 1)
ArUp(2, j) = L02(i, 2)
ArUp(3, j) = L02(i, 3)
Else ' jika ID di list L02 sudah ada di L01 (kembar)
' Nilainya H2-nya diambilkan dari L02 (data pengUpdate)
For p = 1 To j
If L02(i, kolomkey) = ArUp(kolomkey, p) Then
' ganti data pada ArUp dgn data di L02 hanya index ke-3
ArUp(3, p) = L02(i, 3)
Exit For
End If
Next p
End If
Next i
' bubble sort, mengurutkan hasil Array (sort by ID)
For i = LBound(ArUp) To UBound(ArUp) - 1
For u = LBound(ArUp) To UBound(ArUp) - 1
If ArUp(kolomkey, u) > ArUp(kolomkey, u + 1) Then
Tmp = ArUp(1, u): ArUp(1, u) = ArUp(1, u + 1): ArUp(1, u + 1) = Tmp
Tmp = ArUp(2, u): ArUp(2, u) = ArUp(2, u + 1): ArUp(2, u + 1) = Tmp
Tmp = ArUp(3, u): ArUp(3, u) = ArUp(3, u + 1): ArUp(3, u + 1) = Tmp
End If
Next u
Next i
' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
JOIN_m = ArUp
End Function
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 05:13:38 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
data utama
ID
H1
H2
1
A
100
2
B
125
3
C
10
4
D
5
data updater
ID
H1
H2
1
C
200
2
B
0
5
E
15
data hasil update :
ID
H1
H2
1
A
200
2
B
0
3
C
10
4
D
5
5
E
15
seharusnya :
ID
H1
H2
1
A
100
2
B
0
3
C
200
4
D
5
5
E
15
hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) , sebaiknya index -2 ( kolom H1 ).
Maaf sedikit mengoreksi .. tak apa -apa , kan....
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 04:42:28 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi join :
j = UBound(ArUp) akan selalu menghasilkan 3
di koreksi menjadi
j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" ( worksheet "data" )
Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
To: belajar-excel@yahoogroups. com
From: hapsari.stlizbeth@gmail.com
Date: Thu, 29 Sep 2011 04:30:15 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2 dimensi) 3 kolomKemudian Fungsi tsb dimanfaatkan untuk mengUpdate tabel data dengan prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011 '-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0) Set DatRng = DatRng.Resize( DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0) Set NewRng = NewRng.Resize( NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = JOIN(DatRng, NewRng)
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2) DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r) DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate MsgBox "Selesai", vbInformation, ThisWorkbook. Name
End Sub
cmiiww
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar hanya dimunculkan 1 kali
jika perlu hasil JOIN bisa diurutkan (sorted)
sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk keperluan
"sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
saya yakin mas zainul ulum bisa memodifikasi makro tsb agar dapat mengerjakan keperluan
yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih cuocokk....
ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
'---text / VBA codeing UDF Join
Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
Optional Urutkan As Boolean = False)
'----- End Function
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1l.
-
Re: Update Tabel dari sheet lain...
Posted by: "Kid Mr." mr.nmkid@gmail.com nmkid.family@ymail.com
Thu Sep 29, 2011 12:44 am (PDT)
Coba juga menggunakan object collection untuk join table
Public Function JoinPakeKoleksi(rngUpdateKolomPe rtama As Range,
rngDataLamaKolomPertama As Range) As Variant
Dim col As Collection 'selalu base 1
Dim rng As Range
Dim lRecs As Long
Dim sItem() As String 'vb6 menggunakan default base 0
Dim vRes As Variant
On Error Resume Next
Set col = New Collection
'mulai dari updater
For Each rng In rngUpdateKolomPertama
If LenB(rng.Value) <> 0 Then
col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" &
rng.Offset(, 2).Value, _
rng.Value & "|" & rng.Offset(, 1).Value
End If
Next rng
'ikuti dengan data lama
For Each rng In rngDataLamaKolomPertama
If LenB(rng.Value) <> 0 Then
col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" &
rng.Offset(, 2).Value, _
rng.Value & "|" & rng.Offset(, 1).Value
End If
Next rng
lRecs = col.Count
ReDim vRes(1 To lRecs, 1 To 3) As Variant
For lRecs = 1 To col.Count
sItem = Split(col(lRecs), "|")
vRes(lRecs, 1) = sItem(0)
vRes(lRecs, 2) = sItem(1)
vRes(lRecs, 3) = sItem(2)
Next lRecs
JoinPakeKoleksi = vRes
End Function
'Mungkin perlu dicoba untuk record update yang banyak *dan* record data yang
juga banyak.
Ingin di-sort ?
buat fungsi sorting yang inputnya berupa array, agar hasil fungsi di atas
bisa menjadi input parameter untuk fungsi sorting tersebut.
Regards.
Kid.
2011/9/29 jkssxls Sudarsono <jkssxls@hotmail.com >
> **
>
>
> saya modif fungsi join menjadi join_m
> Private Function JOIN_m(L01 As Range, L02 As Range)
>
> '=== siti Vi : Fungsi JOIN : menggabung dua List
> ' modified by Haps: 29 sep 2011
> ' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
> '==================== ========= ========= ========= ==
> Dim ArS As String, ArUp(), Tmp
> Dim i As Long, j As Long, p As Long, u As Long
> Dim kolomkey As Integer
> kolomkey = 2
> ' menyusun 3 array ex tabel data
> ArS = "|"
> ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
> For i = 1 To L01.Rows.Count
> 'isi string dari kolom H1 ( berisi A,B,C,D )
> ArS = ArS & L01(i, kolomkey) & "|"
> ArUp(1, i) = L01(i, 1)
> ArUp(2, i) = L01(i, 2)
> ArUp(3, i) = L01(i, 3)
> Next i
> ' array tabel diperbesar dengan data di L02 (update)
> ' j = UBound(ArUp)
> ' ambil banyaknya data di dimensi ke-2 : A B C D
> j = UBound(ArUp, 2)
> For i = 1 To L02.Rows.Count
> ' jika ID di L02 belum ada di L01.. maka..
> If InStr(1, ArS, "|" & L02(i, kolomkey) & "|") = 0 Then
> ' jika data di L02 tak ada di ArS
> ArS = ArS & L02(i, kolomkey) & "|"
> j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
> ArUp(1, j) = L02(i, 1)
> ArUp(2, j) = L02(i, 2)
> ArUp(3, j) = L02(i, 3)
> Else ' jika ID di list L02 sudah ada di L01 (kembar)
> ' Nilainya H2-nya diambilkan dari L02 (data pengUpdate)
> For p = 1 To j
> If L02(i, kolomkey) = ArUp(kolomkey, p) Then
> ' ganti data pada ArUp dgn data di L02 hanya index ke-3
> ArUp(3, p) = L02(i, 3)
> Exit For
> End If
> Next p
> End If
> Next i
> ' bubble sort, mengurutkan hasil Array (sort by ID)
> For i = LBound(ArUp) To UBound(ArUp) - 1
> For u = LBound(ArUp) To UBound(ArUp) - 1
> If ArUp(kolomkey, u) > ArUp(kolomkey, u + 1) Then
> Tmp = ArUp(1, u): ArUp(1, u) = ArUp(1, u + 1): ArUp(1, u + 1) =
> Tmp
> Tmp = ArUp(2, u): ArUp(2, u) = ArUp(2, u + 1): ArUp(2, u + 1) =
> Tmp
> Tmp = ArUp(3, u): ArUp(3, u) = ArUp(3, u + 1): ArUp(3, u + 1) =
> Tmp
> End If
> Next u
> Next i
> ' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
> JOIN_m = ArUp
> End Function
>
>
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: jkssxls@hotmail.com
> Date: Thu, 29 Sep 2011 05:13:38 +0000
>
> Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
>
>
> data utama
> ID H1 H2 1 A 100 2 B 125 3 C 10 4 D 5 data updater
> ID H1 H2 1 C 200 2 B 0 5 E 15 data hasil update :
> ID H1 H2 1 A 200 2 B 0 3 C 10 4 D 5 5 E 15 seharusnya :
> ID H1 H2 1 A 100 2 B 0 3 C 200 4 D 5 5 E 15
> hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) ,
> sebaiknya index -2 ( kolom H1 ).
> Maaf sedikit mengoreksi .. tak apa -apa , kan....
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: jkssxls@hotmail.com
> Date: Thu, 29 Sep 2011 04:42:28 +0000
> Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
>
>
> Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi
> join :
> j = UBound(ArUp) akan selalu menghasilkan 3
> di koreksi menjadi
> j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" (
> worksheet "data" )
>
> Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
>
>
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: hapsari.stlizbeth@gmail.com
> Date: Thu, 29 Sep 2011 04:30:15 +0700
> Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
>
>
> Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel
> 2 dimensi) 3 kolom
> Kemudian Fungsi tsb *dimanfaatkan untuk mengUpdate tabel* data dengan
> prosedur Sub.
>
> Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi
> kepanjangan...
>
> Sub UpdateTable()
> ' Haps // 28 sept 2011
> '-------------------- -
> Dim DatRng As Range, NewRng As Range, ArNew, r As Long
>
> ' init: Tabel Data (tanpa headernya)
> Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0)
> Set DatRng = DatRng.Resize(DatRng.Rows. Count - 1, DatRng.Columns. Count)
>
> ' init: Tabel pengUpdate (tanpa header)
> Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0)
> Set NewRng = NewRng.Resize(NewRng.Rows. Count - 1, NewRng.Columns. Count)
>
> ' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
> ArNew = *JOIN(DatRng, NewRng)*
>
> ' -- hapus isi tabel data
> DatRng.ClearContents
>
> ' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
> For r = 1 To UBound(ArNew, 2)
> DatRng(r, 1) = ArNew(1, r)
> DatRng(r, 2) = ArNew(2, r)
> DatRng(r, 3) = ArNew(3, r)
> Next r
>
> DatRng.Parent.Activate
> MsgBox "Selesai", vbInformation, ThisWorkbook.Name
>
> End Sub
>
>
> cmiiw
> w
>
>
> 2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
>
> dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
>
> dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar
> hanya dimunculkan 1 kali
> jika perlu hasil JOIN bisa diurutkan (sorted)
>
> sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk
> keperluan
> "sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
>
> saya yakin mas zainul ulum bisa memodifikasi makro tsb agar
> dapat mengerjakan keperluan
> yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih
> cuocokk....
>
> ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
>
> '---text / VBA codeing UDF Join
>
> Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
> Optional Urutkan As Boolean = False)
> '-----
> End Function
>
>
>
>
> 2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
>
> Be-exceler,
> Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
> Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
>
> Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
> berdasarkan perubahan di [Sheet 2]?
>
> Terimakasih,
> -zainul-
>
>
>
>
>
>
>
>
>
>
- 1m.
-
Re: Update Tabel dari sheet lain...
Posted by: "jkssxls Sudarsono" jkssxls@hotmail.com jkssbma
Thu Sep 29, 2011 2:01 am (PDT)
Koreksi lagi :ArUp(1, a) < ArUp(1, b) menjadi ArUp(2, a) < ArUp(2, b)atau dgn rumus join_m menjadi :For i = LBound(ArUp, 2) To UBound(ArUp, 2) - 1
For a = UBound(ArUp, 2) To i + 1 Step -1 b = a - 1 If ArUp(kolomkey, a) < ArUp(kolomkey, b) Then Tmp = ArUp(1, a): ArUp(1, a) = ArUp(1, b): ArUp(1, b) = Tmp Tmp = ArUp(2, a): ArUp(2, a) = ArUp(2, b): ArUp(2, b) = Tmp Tmp = ArUp(3, a): ArUp(3, a) = ArUp(3, b): ArUp(3, b) = Tmp End If Next a Next iini cuplikan bubble -sort hasil perbaikan Mbak Haps :
For i = LBound(ArUp, 2) To UBound(ArUp, 2) - 1
For a = UBound(ArUp, 2) To i + 1 Step -1 b = a - 1 If ArUp(1, a) < ArUp(1, b) Then Tmp = ArUp(1, a): ArUp(1, a) = ArUp(1, b): ArUp(1, b) = Tmp Tmp = ArUp(2, a): ArUp(2, a) = ArUp(2, b): ArUp(2, b) = Tmp Tmp = ArUp(3, a): ArUp(3, a) = ArUp(3, b): ArUp(3, b) = Tmp End If Next a Next idan ini contoh simulasinya :
i
a
1
2
3
4
5
2
3
5
1
4
1
5
5
4
2
3
5
1
4
4
1
4
4
1
2
3
5
1
4
3
5
3
3
1
2
3
1
5
4
2
3
2
2
1
2
1
3
5
4
1
2
2
5
5
4
1
2
3
5
4
4
5
4
4
4
1
2
3
4
5
3
3
3
3
3
1
2
3
4
5
2
2
3
5
5
5
1
2
3
4
5
4
4
4
4
4
1
2
3
4
5
3
3
4
5
5
5
1
2
3
4
5
4
4
1
2
3
4
5
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 05:24:02 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
saya modif fungsi join menjadi join_m
Private Function JOIN_m(L01 As Range, L02 As Range)
'=== siti Vi : Fungsi JOIN : menggabung dua List
' modified by Haps: 29 sep 2011
' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
'==================== ========= ========= ========= ==
Dim ArS As String, ArUp(), Tmp
Dim i As Long, j As Long, p As Long, u As Long
Dim kolomkey As Integer
kolomkey = 2
' menyusun 3 array ex tabel data
ArS = "|"
ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
For i = 1 To L01.Rows.Count
'isi string dari kolom H1 ( berisi A,B,C,D )
ArS = ArS & L01(i, kolomkey) & "|"
ArUp(1, i) = L01(i, 1)
ArUp(2, i) = L01(i, 2)
ArUp(3, i) = L01(i, 3)
Next i
' array tabel diperbesar dengan data di L02 (update)
' j = UBound(ArUp)
' ambil banyaknya data di dimensi ke-2 : A B C D
j = UBound(ArUp, 2)
For i = 1 To L02.Rows.Count
' jika ID di L02 belum ada di L01.. maka..
If InStr(1, ArS, "|" & L02(i, kolomkey) & "|") = 0 Then
' jika data di L02 tak ada di ArS
ArS = ArS & L02(i, kolomkey) & "|"
j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
ArUp(1, j) = L02(i, 1)
ArUp(2, j) = L02(i, 2)
ArUp(3, j) = L02(i, 3)
Else ' jika ID di list L02 sudah ada di L01 (kembar)
' Nilainya H2-nya diambilkan dari L02 (data pengUpdate)
For p = 1 To j
If L02(i, kolomkey) = ArUp(kolomkey, p) Then
' ganti data pada ArUp dgn data di L02 hanya index ke-3
ArUp(3, p) = L02(i, 3)
Exit For
End If
Next p
End If
Next i
' bubble sort, mengurutkan hasil Array (sort by ID)
For i = LBound(ArUp) To UBound(ArUp) - 1
For u = LBound(ArUp) To UBound(ArUp) - 1
If ArUp(kolomkey, u) > ArUp(kolomkey, u + 1) Then
Tmp = ArUp(1, u): ArUp(1, u) = ArUp(1, u + 1): ArUp(1, u + 1) = Tmp
Tmp = ArUp(2, u): ArUp(2, u) = ArUp(2, u + 1): ArUp(2, u + 1) = Tmp
Tmp = ArUp(3, u): ArUp(3, u) = ArUp(3, u + 1): ArUp(3, u + 1) = Tmp
End If
Next u
Next i
' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
JOIN_m = ArUp
End Function
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 05:13:38 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
data utama
ID
H1
H2
1
A
100
2
B
125
3
C
10
4
D
5
data updater
ID
H1
H2
1
C
200
2
B
0
5
E
15
data hasil update :
ID
H1
H2
1
A
200
2
B
0
3
C
10
4
D
5
5
E
15
seharusnya :
ID
H1
H2
1
A
100
2
B
0
3
C
200
4
D
5
5
E
15
hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) , sebaiknya index -2 ( kolom H1 ).
Maaf sedikit mengoreksi .. tak apa -apa , kan....
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 04:42:28 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi join :
j = UBound(ArUp) akan selalu menghasilkan 3
di koreksi menjadi
j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" ( worksheet "data" )
Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
To: belajar-excel@yahoogroups. com
From: hapsari.stlizbeth@gmail.com
Date: Thu, 29 Sep 2011 04:30:15 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2 dimensi) 3 kolomKemudian Fungsi tsb dimanfaatkan untuk mengUpdate tabel data dengan prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011 '-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0) Set DatRng = DatRng.Resize( DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0) Set NewRng = NewRng.Resize( NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = JOIN(DatRng, NewRng)
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2) DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r) DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate MsgBox "Selesai", vbInformation, ThisWorkbook. Name
End Sub
cmiiww
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar hanya dimunculkan 1 kali
jika perlu hasil JOIN bisa diurutkan (sorted)
sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk keperluan
"sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
saya yakin mas zainul ulum bisa memodifikasi makro tsb agar dapat mengerjakan keperluan
yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih cuocokk....
ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
'---text / VBA codeing UDF Join
Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
Optional Urutkan As Boolean = False)
'----- End Function
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1n.
-
Re: Update Tabel dari sheet lain...
Posted by: "jkssxls Sudarsono" jkssxls@hotmail.com jkssbma
Thu Sep 29, 2011 2:28 am (PDT)
saya koreksi ya Mr Kids :col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(, 2).Value, rng.Value & "|" & rng.Offset(, 1).Value
menjadi :col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(, 2).Value, rng.Offset(, 1).Value
dimana key menggunakan kolom yang berisi A,B,C,D,E ( kolom ke-2 atau relatif satu kolom kekanan )sehingga lengkapnya : Public Function JoinPakeKoleksi(rngUpdateKolomPe rtama As Range, rngDataLamaKolomPer tama As Range) As Variant
Dim col As Collection 'selalu base 1
Dim rng As Range
Dim lRecs As Long
Dim sItem() As String 'vb6 menggunakan default base 0
Dim vRes As Variant
On Error Resume Next
Set col = New Collection
'mulai dari updater
For Each rng In rngUpdateKolomPertama
If LenB(rng.Value) <> 0 Then
col.Add Item:=rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(, 2).Value, _
Key:=rng.Offset(, 1).Value
End If
Next rng
'ikuti dengan data lama
For Each rng In rngDataLamaKolomPertama
If LenB(rng.Value) <> 0 Then
col.Add Item:=rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(, 2).Value, _
Key:=rng.Offset(, 1).Value
End If
Next rng
lRecs = col.Count
ReDim vRes(1 To lRecs, 1 To 3) As Variant
For lRecs = 1 To col.Count
MsgBox col(lRecs)
sItem = Split(col(lRecs), "|")
vRes(lRecs, 1) = sItem(0)
vRes(lRecs, 2) = sItem(1)
vRes(lRecs, 3) = sItem(2)
Next lRecs
JoinPakeKoleksi = vRes
End Function
To: belajar-excel@yahoogroups. com
From: mr.nmkid@gmail.com
Date: Thu, 29 Sep 2011 14:44:37 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Coba juga menggunakan object collection untuk join table
Public Function JoinPakeKoleksi(rngUpdateKolomPe rtama As Range, rngDataLamaKolomPer tama As Range) As Variant
Dim col As Collection 'selalu base 1
Dim rng As Range
Dim lRecs As Long
Dim sItem() As String 'vb6 menggunakan default base 0
Dim vRes As Variant
On Error Resume Next
Set col = New Collection
'mulai dari updater
For Each rng In rngUpdateKolomPertama
If LenB(rng.Value) <> 0 Then
col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(, 2).Value, _
rng.Value & "|" & rng.Offset(, 1).Value
End If
Next rng
'ikuti dengan data lama
For Each rng In rngDataLamaKolomPertama
If LenB(rng.Value) <> 0 Then
col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(, 2).Value, _
rng.Value & "|" & rng.Offset(, 1).Value
End If
Next rng
lRecs = col.Count
ReDim vRes(1 To lRecs, 1 To 3) As Variant
For lRecs = 1 To col.Count
sItem = Split(col(lRecs), "|")
vRes(lRecs, 1) = sItem(0)
vRes(lRecs, 2) = sItem(1)
vRes(lRecs, 3) = sItem(2)
Next lRecs
JoinPakeKoleksi = vRes
End Function
'Mungkin perlu dicoba untuk record update yang banyak dan record data yang juga banyak.
Ingin di-sort ?
buat fungsi sorting yang inputnya berupa array, agar hasil fungsi di atas bisa menjadi input parameter untuk fungsi sorting tersebut.
Regards.
Kid.
2011/9/29 jkssxls Sudarsono <jkssxls@hotmail.com >
saya modif fungsi join menjadi join_m
Private Function JOIN_m(L01 As Range, L02 As Range)
'=== siti Vi : Fungsi JOIN : menggabung dua List
' modified by Haps: 29 sep 2011
' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
'==================== ========= ========= ========= ==
Dim ArS As String, ArUp(), Tmp
Dim i As Long, j As Long, p As Long, u As Long
Dim kolomkey As Integer
kolomkey = 2
' menyusun 3 array ex tabel data
ArS = "|"
ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
For i = 1 To L01.Rows.Count
'isi string dari kolom H1 ( berisi A,B,C,D )
ArS = ArS & L01(i, kolomkey) & "|"
ArUp(1, i) = L01(i, 1)
ArUp(2, i) = L01(i, 2)
ArUp(3, i) = L01(i, 3)
Next i
' array tabel diperbesar dengan data di L02 (update)
' j = UBound(ArUp)
' ambil banyaknya data di dimensi ke-2 : A B C D
j = UBound(ArUp, 2)
For i = 1 To L02.Rows.Count
' jika ID di L02 belum ada di L01.. maka..
If InStr(1, ArS, "|" & L02(i, kolomkey) & "|") = 0 Then
' jika data di L02 tak ada di ArS
ArS = ArS & L02(i, kolomkey) & "|"
j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
ArUp(1, j) = L02(i, 1)
ArUp(2, j) = L02(i, 2)
ArUp(3, j) = L02(i, 3)
Else ' jika ID di list L02 sudah ada di L01 (kembar)
' Nilainya H2-nya diambilkan dari L02 (data pengUpdate)
For p = 1 To j
If L02(i, kolomkey) = ArUp(kolomkey, p) Then
' ganti data pada ArUp dgn data di L02 hanya index ke-3
ArUp(3, p) = L02(i, 3)
Exit For
End If
Next p
End If
Next i
' bubble sort, mengurutkan hasil Array (sort by ID)
For i = LBound(ArUp) To UBound(ArUp) - 1
For u = LBound(ArUp) To UBound(ArUp) - 1
If ArUp(kolomkey, u) > ArUp(kolomkey, u + 1) Then
Tmp = ArUp(1, u): ArUp(1, u) = ArUp(1, u + 1): ArUp(1, u + 1) = Tmp
Tmp = ArUp(2, u): ArUp(2, u) = ArUp(2, u + 1): ArUp(2, u + 1) = Tmp
Tmp = ArUp(3, u): ArUp(3, u) = ArUp(3, u + 1): ArUp(3, u + 1) = Tmp
End If
Next u
Next i
' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
JOIN_m = ArUp
End Function
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 05:13:38 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
data utama
ID
H1
H2
1
A
100
2
B
125
3
C
10
4
D
5
data updater
ID
H1
H2
1
C
200
2
B
0
5
E
15
data hasil update :
ID
H1
H2
1
A
200
2
B
0
3
C
10
4
D
5
5
E
15
seharusnya :
ID
H1
H2
1
A
100
2
B
0
3
C
200
4
D
5
5
E
15
hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) , sebaiknya index -2 ( kolom H1 ).
Maaf sedikit mengoreksi .. tak apa -apa , kan....
To: belajar-excel@yahoogroups. com
From: jkssxls@hotmail.com
Date: Thu, 29 Sep 2011 04:42:28 +0000
Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi join :
j = UBound(ArUp) akan selalu menghasilkan 3
di koreksi menjadi
j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" ( worksheet "data" )
Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
To: belajar-excel@yahoogroups. com
From: hapsari.stlizbeth@gmail.com
Date: Thu, 29 Sep 2011 04:30:15 +0700
Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel 2 dimensi) 3 kolomKemudian Fungsi tsb dimanfaatkan untuk mengUpdate tabel data dengan prosedur Sub.
Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi kepanjangan...
Sub UpdateTable()
' Haps // 28 sept 2011 '-------------------- -
Dim DatRng As Range, NewRng As Range, ArNew, r As Long
' init: Tabel Data (tanpa headernya)
Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0) Set DatRng = DatRng.Resize( DatRng.Rows. Count - 1, DatRng.Columns. Count)
' init: Tabel pengUpdate (tanpa header)
Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0) Set NewRng = NewRng.Resize( NewRng.Rows. Count - 1, NewRng.Columns. Count)
' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
ArNew = JOIN(DatRng, NewRng)
' -- hapus isi tabel data
DatRng.ClearContents
' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
For r = 1 To UBound(ArNew, 2) DatRng(r, 1) = ArNew(1, r)
DatRng(r, 2) = ArNew(2, r) DatRng(r, 3) = ArNew(3, r)
Next r
DatRng.Parent.Activate MsgBox "Selesai", vbInformation, ThisWorkbook. Name
End Sub
cmiiww
2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar hanya dimunculkan 1 kali
jika perlu hasil JOIN bisa diurutkan (sorted)
sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk keperluan
"sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
saya yakin mas zainul ulum bisa memodifikasi makro tsb agar dapat mengerjakan keperluan
yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih cuocokk....
ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
'---text / VBA codeing UDF Join
Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
Optional Urutkan As Boolean = False)
'----- End Function
2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
Be-exceler,
Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
berdasarkan perubahan di [Sheet 2]?
Terimakasih,
-zainul-
- 1o.
-
Re: Update Tabel dari sheet lain...
Posted by: "Kid Mr." mr.nmkid@gmail.com nmkid.family@ymail.com
Thu Sep 29, 2011 2:39 am (PDT)
Oke. Bebas deh mau diapakan saja.
Yang jelas :
Object collection bisa mengurangi beban cek item apakah sudah ada atau belum
yang biasanya di loop sendiri dengan for next atau do loop.
Object ini cocok untuk data yang unique komposit key nya.
Pada proses update data, dahulukan sisi data updater, baru diikuti dengan
data lama yang ada di database.
Inti dari proses update data adalah pada bagian :
col.Add *rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(,
2).Value* , *rng.Value & "|" & rng.Offset(, 1).Value*
Yang *biru *adalah gabungan nilai data seluruh kolom
Yang *hijau *adalah komposit key, jadi bebas tergantung kebutuhan, keynya
mau pake yang mana saja dan berapa saja.
Jika komposit key telah terdaftar dalam koleksi, maka akan muncul error
value. Itu sebabnya ada baris error trap dengan on error resume next di atas
sana.
Karakter | digunakan dengan asumsi tidak pernah digunakan sebagai isi dari
nilai-nilai disetiap kolom. Jika ternyata dipakai, maka gunakan karakter
lain yang tidak dipakai di semua kolom.
Untuk penerapan di selain di Excel, waspadai datatype. Karena hasil Split
adalah string. Di Excel, ada fasilitas konversi oleh excelnya sendiri ketika
string angka masuk ke cell.
Kid.
2011/9/29 jkssxls Sudarsono <jkssxls@hotmail.com >
> **
>
>
> saya koreksi ya Mr Kids :
> col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(,
> 2).Value, rng.Value & "|" & rng.Offset(, 1).Value
> menjadi :
> col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" & rng.Offset(,
> 2).Value, rng.Offset(, 1).Value
>
> dimana key menggunakan kolom yang berisi A,B,C,D,E ( kolom ke-2 atau
> relatif satu kolom kekanan )
> sehingga lengkapnya :
>
> Public Function JoinPakeKoleksi(rngUpdateKolomPe rtama As Range,
> rngDataLamaKolomPertama As Range) As Variant
> Dim col As Collection 'selalu base 1
> Dim rng As Range
> Dim lRecs As Long
> Dim sItem() As String 'vb6 menggunakan default base 0
> Dim vRes As Variant
>
> On Error Resume Next
> Set col = New Collection
> 'mulai dari updater
> For Each rng In rngUpdateKolomPertama
> If LenB(rng.Value) <> 0 Then
> col.Add Item:=rng.Value & "|" & rng.Offset(, 1).Value & "|" &
> rng.Offset(, 2).Value, _
> Key:=rng.Offset(, 1).Value
>
> End If
> Next rng
>
> 'ikuti dengan data lama
> For Each rng In rngDataLamaKolomPertama
> If LenB(rng.Value) <> 0 Then
> col.Add Item:=rng.Value & "|" & rng.Offset(, 1).Value & "|" &
> rng.Offset(, 2).Value, _
> Key:=rng.Offset(, 1).Value
>
> End If
> Next rng
> lRecs = col.Count
> ReDim vRes(1 To lRecs, 1 To 3) As Variant
> For lRecs = 1 To col.Count
> MsgBox col(lRecs)
>
> sItem = Split(col(lRecs), "|")
> vRes(lRecs, 1) = sItem(0)
> vRes(lRecs, 2) = sItem(1)
> vRes(lRecs, 3) = sItem(2)
> Next lRecs
>
> JoinPakeKoleksi = vRes
> End Function
>
>
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: mr.nmkid@gmail.com
> Date: Thu, 29 Sep 2011 14:44:37 +0700
>
> Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
>
>
> Coba juga menggunakan object collection untuk join table
>
> Public Function JoinPakeKoleksi(rngUpdateKolomPe rtama As Range,
> rngDataLamaKolomPertama As Range) As Variant
> Dim col As Collection 'selalu base 1
> Dim rng As Range
> Dim lRecs As Long
> Dim sItem() As String 'vb6 menggunakan default base 0
> Dim vRes As Variant
>
> On Error Resume Next
> Set col = New Collection
> 'mulai dari updater
> For Each rng In rngUpdateKolomPertama
> If LenB(rng.Value) <> 0 Then
> col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" &
> rng.Offset(, 2).Value, _
> rng.Value & "|" & rng.Offset(, 1).Value
> End If
> Next rng
>
> 'ikuti dengan data lama
> For Each rng In rngDataLamaKolomPertama
> If LenB(rng.Value) <> 0 Then
> col.Add rng.Value & "|" & rng.Offset(, 1).Value & "|" &
> rng.Offset(, 2).Value, _
> rng.Value & "|" & rng.Offset(, 1).Value
> End If
> Next rng
> lRecs = col.Count
> ReDim vRes(1 To lRecs, 1 To 3) As Variant
> For lRecs = 1 To col.Count
> sItem = Split(col(lRecs), "|")
> vRes(lRecs, 1) = sItem(0)
> vRes(lRecs, 2) = sItem(1)
> vRes(lRecs, 3) = sItem(2)
> Next lRecs
>
> JoinPakeKoleksi = vRes
> End Function
> 'Mungkin perlu dicoba untuk record update yang banyak *dan* record data
> yang juga banyak.
>
> Ingin di-sort ?
> buat fungsi sorting yang inputnya berupa array, agar hasil fungsi di atas
> bisa menjadi input parameter untuk fungsi sorting tersebut.
>
> Regards.
> Kid.
>
> 2011/9/29 jkssxls Sudarsono <jkssxls@hotmail.com >
>
> **
>
>
>
> saya modif fungsi join menjadi join_m
> Private Function JOIN_m(L01 As Range, L02 As Range)
>
> '=== siti Vi : Fungsi JOIN : menggabung dua List
> ' modified by Haps: 29 sep 2011
> ' tiap list berisi 3 kolom, Uniq pada Kolom 1 (ID)
> '==================== ========= ========= ========= ==
> Dim ArS As String, ArUp(), Tmp
> Dim i As Long, j As Long, p As Long, u As Long
> Dim kolomkey As Integer
> kolomkey = 2
> ' menyusun 3 array ex tabel data
> ArS = "|"
> ReDim Preserve ArUp(1 To 3, 1 To L01.Rows.Count)
> For i = 1 To L01.Rows.Count
> 'isi string dari kolom H1 ( berisi A,B,C,D )
> ArS = ArS & L01(i, kolomkey) & "|"
> ArUp(1, i) = L01(i, 1)
> ArUp(2, i) = L01(i, 2)
> ArUp(3, i) = L01(i, 3)
> Next i
> ' array tabel diperbesar dengan data di L02 (update)
> ' j = UBound(ArUp)
> ' ambil banyaknya data di dimensi ke-2 : A B C D
> j = UBound(ArUp, 2)
> For i = 1 To L02.Rows.Count
> ' jika ID di L02 belum ada di L01.. maka..
> If InStr(1, ArS, "|" & L02(i, kolomkey) & "|") = 0 Then
> ' jika data di L02 tak ada di ArS
> ArS = ArS & L02(i, kolomkey) & "|"
> j = j + 1: ReDim Preserve ArUp(1 To 3, 1 To j)
> ArUp(1, j) = L02(i, 1)
> ArUp(2, j) = L02(i, 2)
> ArUp(3, j) = L02(i, 3)
> Else ' jika ID di list L02 sudah ada di L01 (kembar)
> ' Nilainya H2-nya diambilkan dari L02 (data pengUpdate)
> For p = 1 To j
> If L02(i, kolomkey) = ArUp(kolomkey, p) Then
> ' ganti data pada ArUp dgn data di L02 hanya index ke-3
> ArUp(3, p) = L02(i, 3)
> Exit For
> End If
> Next p
> End If
> Next i
> ' bubble sort, mengurutkan hasil Array (sort by ID)
> For i = LBound(ArUp) To UBound(ArUp) - 1
> For u = LBound(ArUp) To UBound(ArUp) - 1
> If ArUp(kolomkey, u) > ArUp(kolomkey, u + 1) Then
> Tmp = ArUp(1, u): ArUp(1, u) = ArUp(1, u + 1): ArUp(1, u + 1) =
> Tmp
> Tmp = ArUp(2, u): ArUp(2, u) = ArUp(2, u + 1): ArUp(2, u + 1) =
> Tmp
> Tmp = ArUp(3, u): ArUp(3, u) = ArUp(3, u + 1): ArUp(3, u + 1) =
> Tmp
> End If
> Next u
> Next i
> ' variable Join di-isi array ArUp (2 dimensi (3 kol * n row)
> JOIN_m = ArUp
> End Function
>
>
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: jkssxls@hotmail.com
> Date: Thu, 29 Sep 2011 05:13:38 +0000
>
> Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
>
>
> data utama
> ID H1 H2 1 A 100 2 B 125 3 C 10 4 D 5 data updater
> ID H1 H2 1 C 200 2 B 0 5 E 15 data hasil update :
> ID H1 H2 1 A 200 2 B 0 3 C 10 4 D 5 5 E 15 seharusnya :
> ID H1 H2 1 A 100 2 B 0 3 C 200 4 D 5 5 E 15
> hal ini karena yg menjadi pembanding adalah index ke -1 ( kolom Id ) ,
> sebaiknya index -2 ( kolom H1 ).
> Maaf sedikit mengoreksi .. tak apa -apa , kan....
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: jkssxls@hotmail.com
> Date: Thu, 29 Sep 2011 04:42:28 +0000
> Subject: RE: [belajar-excel] Update Tabel dari sheet lain...
>
>
> Mbak Haps , saya sudah coba , ada sedikit yang saya koreksi pada fungsi
> join :
> j = UBound(ArUp) akan selalu menghasilkan 3
> di koreksi menjadi
> j = UBound(ArUp, 2) akan menghasilkan banyaknya data di range "data" (
> worksheet "data" )
>
> Tetapi saya berterima kasih atas fungsi Updatable dan join hasil modif nya
>
>
> --------------------- ---------
> To: belajar-excel@yahoogroups. com
> From: hapsari.stlizbeth@gmail.com
> Date: Thu, 29 Sep 2011 04:30:15 +0700
> Subject: Re: [belajar-excel] Update Tabel dari sheet lain...
>
>
> Fungsi JOIN telah dimodifikasi (lihat module), agar dapat menampung tabel
> 2 dimensi) 3 kolom
> Kemudian Fungsi tsb *dimanfaatkan untuk mengUpdate tabel* data dengan
> prosedur Sub.
>
> Sudah dicoba sepertinya berhasil, hanya saja listing vba-code nya jadi
> kepanjangan...
>
> Sub UpdateTable()
> ' Haps // 28 sept 2011
> '-------------------- -
> Dim DatRng As Range, NewRng As Range, ArNew, r As Long
>
> ' init: Tabel Data (tanpa headernya)
> Set DatRng = Sheets("Data").Cells(1) .CurrentRegion. Offset(1, 0)
> Set DatRng = DatRng.Resize(DatRng.Rows. Count - 1, DatRng.Columns. Count)
>
> ' init: Tabel pengUpdate (tanpa header)
> Set NewRng = Sheets("Update").Cells(1) .CurrentRegion. Offset(1, 0)
> Set NewRng = NewRng.Resize(NewRng.Rows. Count - 1, NewRng.Columns. Count)
>
> ' -- membuat Array (3 kolom * n Baris) dibantu fungsi JOIN
> ArNew = *JOIN(DatRng, NewRng)*
>
> ' -- hapus isi tabel data
> DatRng.ClearContents
>
> ' -- tabel data (yg baru dikosongkan) diupdate dgn data dari Array
> For r = 1 To UBound(ArNew, 2)
> DatRng(r, 1) = ArNew(1, r)
> DatRng(r, 2) = ArNew(2, r)
> DatRng(r, 3) = ArNew(3, r)
> Next r
>
> DatRng.Parent.Activate
> MsgBox "Selesai", vbInformation, ThisWorkbook.Name
>
> End Sub
>
>
> cmiiw
> w
>
>
> 2011/9/28 Haps <hapsari.stlizbeth@gmail.com >
>
> dulu, sudah lupa bulan / tahunnya, mba siti pernah membuat UDF Join
>
> dua list jika di JOIN, berarti dua lis akan digabung, tetapi data kembar
> hanya dimunculkan 1 kali
> jika perlu hasil JOIN bisa diurutkan (sorted)
>
> sementara belum sempat membuat /memodifikasi makro menjadi khusus untuk
> keperluan
> "sambil JOIN (kolom 1) juga sambil SUMIF (kolom 2)"
>
> saya yakin mas zainul ulum bisa memodifikasi makro tsb agar
> dapat mengerjakan keperluan
> yg diajukan tsb, mungkin berupa prosedur Sub bukan FUnction lebih
> cuocokk....
>
> ini sudah seijin mbak siti contoh UDF JOINT dilampirkan di sini
>
> '---text / VBA codeing UDF Join
>
> Function JOIN(List1 As Range, List2 As Range, Optional N As Long = 0, _
> Optional Urutkan As Boolean = False)
> '-----
> End Function
>
>
>
>
> 2011/9/28 zainul ulum <<yahoo>> <zainul_ulum@yahoo.com >
>
> Be-exceler,
> Misalnya saya mempunyai table di [sheet 1] dan [Sheet 2].
> Table di [sheet 1] akan diupdate berdasarkan record dari [Sheet 2].
>
> Bagaimanakah codenya (macro) agar record di [sheet 1] bisa terupdate
> berdasarkan perubahan di [Sheet 2]?
>
> Terimakasih,
> -zainul-
>
>
>
>
>
>
>
>
>
>
>
>
>
>
- 2a.
-
Form untuk input data
Posted by: "Senja Laura" 4r54ur4@gmail.com
Wed Sep 28, 2011 10:08 pm (PDT)
Selamat siang semua
Saya punya data seperti terlampir di sheet 1 dan mau bikin form seperti di
SHEET 2,
kira-kira bagaimana macronya ya? dengan ketentuan jika kolom sebelumnya
telah terisi maka input akan pindah ke kolom berikutnya
terima kasih
Laura
- 2b.
-
Re: Form untuk input data
Posted by: "Kid Mr." mr.nmkid@gmail.com nmkid.family@ymail.com
Wed Sep 28, 2011 10:23 pm (PDT)
Untuk membuat pengisian agar usai enter isian di kolom B maka cell aktif
pindah ke kolom C, bisa dengan setting di option excel.
[image: xl007_gen12_xl2007_options_ adv_enter_ to_right. gif]
Gak menyelesaikan ya.. Siapa tahu ada mangpaatnya.
Kid.
2011/9/29 Senja Laura <4r54ur4@gmail.com >
> **
>
>
> Selamat siang semua
>
> Saya punya data seperti terlampir di sheet 1 dan mau bikin form seperti di
> SHEET 2,
> kira-kira bagaimana macronya ya? dengan ketentuan jika kolom sebelumnya
> telah terisi maka input akan pindah ke kolom berikutnya
>
> terima kasih
> Laura
>
>
>
- 2c.
-
Re: Form untuk input data
Posted by: "Senja Laura" 4r54ur4@gmail.com
Wed Sep 28, 2011 10:30 pm (PDT)
Belum menyelesaikan Pak Dhe!!saya butuh macro untuk menjalankan form di
sheet 2, tapi info nya bermanfaat!!thanks
2011/9/29 Kid Mr. <mr.nmkid@gmail.com >
> **
>
>
> Untuk membuat pengisian agar usai enter isian di kolom B maka cell aktif
> pindah ke kolom C, bisa dengan setting di option excel.
> [image: xl007_gen12_xl2007_options_ adv_enter_ to_right. gif]
>
> Gak menyelesaikan ya.. Siapa tahu ada mangpaatnya.
>
> Kid.
>
>
>
> 2011/9/29 Senja Laura <4r54ur4@gmail.com >
>
>> **
>>
>>
>> Selamat siang semua
>>
>> Saya punya data seperti terlampir di sheet 1 dan mau bikin form seperti di
>> SHEET 2,
>> kira-kira bagaimana macronya ya? dengan ketentuan jika kolom sebelumnya
>> telah terisi maka input akan pindah ke kolom berikutnya
>>
>> terima kasih
>> Laura
>>
>>
>
>
- 3a.
-
Menjumlahkan yang berisi angka saja
Posted by: "Senja Laura" 4r54ur4@gmail.com
Wed Sep 28, 2011 11:30 pm (PDT)
Soal kedua saya hari ini mudah-mudahan ada yang menjawab[?]
Seperti file terlampir
1.bagaimana rumusnya untuk penjumlahan pada deret baris di atas (yang ada
angkanya saja,tanggal dan tempat tidak ikut)
2. bisa ngga misal jika saya tekan CTRL+F dan memasukkan kata `Memo10`
misalnya
hanya sepanjang baris tersebut yang tersorot (yang warna kuning)dan bisa di
isi data sehingga kemungkinan salah input di kolom lain menjadi tidak ada
- 3b.
-
Re: Menjumlahkan yang berisi angka saja
Posted by: "Franciscus SOG" jclugbu@gmail.com elijah_spirit
Thu Sep 29, 2011 12:13 am (PDT)
Dear Laura,
Kalo begitu pake UDF angkasaja.
Untuk Find, tidak melalui DialogBox Find tapi melalui macro.
Public Function angkasaja(data As Range) As Double
Dim sData As Range
For Each sData In data
If IsNumeric(sData.Value) Then
angkasaja = angkasaja + sData.Value
End If
Next
End Function
Sub cari()
Dim sKunci, sLokasi As String
On Error GoTo CommandErr
sKunci = InputBox("Masukkan kata kunci", "Input kata kunci", "")
If sKunci <> vbNullString Then
sLokasi = WorksheetFunction.Match(sKunci, Sheet1.Columns( "D:D"), 0)
Rows(sLokasi & ":" & sLokasi).Select
End If
CommandErr:
MsgBox "Kata kunci tidak ada", vbCritical, "Search"
Exit Sub
End Sub
Semoga bermanfaat.
Blessings,
Fran'z
On 9/29/11, Senja Laura <4r54ur4@gmail.com > wrote:
> Soal kedua saya hari ini mudah-mudahan ada yang menjawab[?]
> Seperti file terlampir
> 1.bagaimana rumusnya untuk penjumlahan pada deret baris di atas (yang ada
> angkanya saja,tanggal dan tempat tidak ikut)
> 2. bisa ngga misal jika saya tekan CTRL+F dan memasukkan kata `Memo10`
> misalnya
> hanya sepanjang baris tersebut yang tersorot (yang warna kuning)dan bisa di
> isi data sehingga kemungkinan salah input di kolom lain menjadi tidak ada
>
>
- 3c.
-
Re: Menjumlahkan yang berisi angka saja
Posted by: "Senja Laura" 4r54ur4@gmail.com
Thu Sep 29, 2011 12:29 am (PDT)
Dear Pak Franz
terima kasih UDFnya
tapi findnya belum bisa berfungsi saya masukkan memo10 kok ngga match ya!!!
2011/9/29 Franciscus SOG <jclugbu@gmail.com >
> **
>
>
> Dear Laura,
>
> Kalo begitu pake UDF angkasaja.
> Untuk Find, tidak melalui DialogBox Find tapi melalui macro.
>
> Public Function angkasaja(data As Range) As Double
> Dim sData As Range
>
> For Each sData In data
> If IsNumeric(sData.Value) Then
> angkasaja = angkasaja + sData.Value
> End If
> Next
> End Function
>
> Sub cari()
> Dim sKunci, sLokasi As String
> On Error GoTo CommandErr
> sKunci = InputBox("Masukkan kata kunci", "Input kata kunci", "")
> If sKunci <> vbNullString Then
> sLokasi = WorksheetFunction.Match(sKunci, Sheet1.Columns( "D:D"), 0)
> Rows(sLokasi & ":" & sLokasi).Select
> End If
> CommandErr:
> MsgBox "Kata kunci tidak ada", vbCritical, "Search"
> Exit Sub
> End Sub
>
> Semoga bermanfaat.
>
> Blessings,
>
> Fran'z
>
> On 9/29/11, Senja Laura <4r54ur4@gmail.com > wrote:
> > Soal kedua saya hari ini mudah-mudahan ada yang menjawab[?]
>
> > Seperti file terlampir
> > 1.bagaimana rumusnya untuk penjumlahan pada deret baris di atas (yang ada
> > angkanya saja,tanggal dan tempat tidak ikut)
> > 2. bisa ngga misal jika saya tekan CTRL+F dan memasukkan kata `Memo10`
> > misalnya
> > hanya sepanjang baris tersebut yang tersorot (yang warna kuning)dan bisa
> di
> > isi data sehingga kemungkinan salah input di kolom lain menjadi tidak ada
> >
> >
>
>
>
- 4.
-
Membuat Rekap Data
Posted by: "Cang Ato" cangato1@gmail.com yangato45
Thu Sep 29, 2011 12:52 am (PDT)
Dear Para Master....
Pertama-tama Salam kenal dulu dari Neubie... :D
Panggil Saya ATO saja :D
mo Bantuannya untuk mempermudah kerjaan di kantor ni...
Saya punya Format Voucher yang saya ketik secara manual di Excel,
kendala yang saya hadapi, setelah membuat Voucher, maka saya haru melakukan
rekap pengeluaran voucher2 secara manual.
Pertanyaan : apakah dari Voucher yang saya buat bisa dilakukan rekap secara
langsung ??
Berikut Format Voucher n Format Rekap Terlampir.
Trims,
ATO
- 5a.
-
Isi sel jadi isi tabel
Posted by: "sarma diaz" sh.ronald@yahoo.co.id sh.ronald
Thu Sep 29, 2011 3:32 am (PDT)
Sore rekan belajar excel. Mohon dibantu tentang, bagaimana memecah isi sel menjadi isi tabel kolom.
Saya lampirkan file berikut ini.
Terima kasih atas bantuannya.
Ronald
- 5b.
-
Re: Isi sel jadi isi tabel
Posted by: "Kid Mr." mr.nmkid@gmail.com nmkid.family@ymail.com
Thu Sep 29, 2011 3:46 am (PDT)
Pada data terstruktur dengan delimiter, biasanya menggunakan formula berusi
fungsi Trim, Mid dan Substitute. Karena ada delimiter newline, maka
dibutuhkan sebuah proses susbtitusi karakter newline (char 10) menjadi
karakter delimiter data (pada kasus ini adalah karakter titik dua ':')
=TRIM(MID(SUBSTITUTE(SUBSTITUTE( $F2,CHAR( 10),":"), ":",REPT( "
",99)),(2*COLUMNS($J$1:J$1) -1)*99,99) )
Angsuran sebaiknya tetap disimpan angkanya saja, dengan datatype numerik.
Format cell number custom dapat tetap membuat nilai tampak seperti memiliki
teks 'Angsuran' didalam cell.
=--MID(F2,FIND(UPPER($N$ 1),F2)+LEN( $N$1),9)
Thank You and Regards.
Kid.
2011/9/29 sarma diaz <sh.ronald@yahoo.co.id >
> **
>
>
> Sore rekan belajar excel. Mohon dibantu tentang, bagaimana memecah isi sel
> menjadi isi tabel kolom.
> Saya lampirkan file berikut ini.
> Terima kasih atas bantuannya.
>
> Ronald
>
>
>
- 6.
-
saldo akhir pindah ke saldo awal
Posted by: "Darto Chandra" d_c@gmx.com
Thu Sep 29, 2011 3:32 am (PDT)
terlampir file kerjaan saya. Pada sheet menu periode january terdapat command button menu. didalamnya terdapat tombol tutup bulan.mohon bantuannya untuk menulis makro di tombol tersebut. Pengennya kalo tombol tersebut di pencet data yang ada di sheet data1 dengan cell tally, T,L,P,Grade,SAK[PCS] akan berpindah ke sheet data2 dan menempati cell tally,T,L,P, SAW[PCS] dengan catatan SAK[PCS} di Data1 bukan nol.
Terima kasih.
Darto Chandra
085881648818
-- Mods --
File lampiran melebihi batas.
File lampiran akan disusulkan oleh Pak Darto Chandra setelah ukuran file memenuhi peraturan milis (<250KB).
----------
Need to Reply?
Click one of the "Reply" links to respond to a specific message in the Daily Digest.
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com
berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe):
kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com
berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe):
kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
MARKETPLACE
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Individual | Switch format to Traditional
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe
Tidak ada komentar:
Posting Komentar