Silakan Pak Hendrik.
Supaya diskusi bisa lebih berkembang.
Berikut petikan syarat unik berdasar kolom C :
*"Syarat unik menurut kolom C adalah jumlah cacah di kolom C terhadap data
bernilai inputan harus bernilai 0.
Berbeda dengan yang UniqueVal ya"
*
Kenapa kok berbeda ya ?
Dari konsep itulah maka akan terbentuk pengkondisian dengan struktur :
IF uniqueval=1 then
IF menurutC = 0 then
'kondisi 1
else
'kondisi 2
endif
else
if menurutC = 0 then
'kondisi 4
else
'kondisi 3
endif
endif
Idealnya, jika tidak dinyatakan unik oleh kolom C, maka tidak boleh ditulis
di kolom C
Idealnya, jika inputan di kolom A ternyata tidak unik menurut A walau
dinyatakan unik menurut kolom C, maka pasti harus ada perlakuan untuk
menghindari kemungkinan terjadinya kondisi ini.
Perkiraannya, usai pembahasan mengenai pengkondisian yang 4 tersebut, akan
ada masalah lagi dengan inputan di kolom A, karena dikolom A belum ada tapi
di kolom C sudah ada. Nah untuk hal ini titik awalnya ada di baris :
ActiveCell.Offset(-1, 0).Select
yang seharusnya tidak sekedar select tapi justru mengembalikan isi sebelum
diubah oleh user, padahal pengubahan oleh user itu malah membuat data jadi
gak karuan, baik di kolom A maupun di kolom C (rudundant).
Wassalam,
Kid.
2012/9/23 hendrik karnadi <[email protected]>
> **
>
>
> Boleh ikutan kan Mr. Kid ?
> Mengenai Kondisi 1, menurut kolom A Unik dan menurut kolom C Unik,
> prosesnya tulis di C
>
> Pertanyaannya :
> Jika kolom C Unik (ada), apakah kolom C masih boleh ditulis ?
>
> Terima kasih.
>
> Salam,
> Hendrik Karnadi
>
>
>
> ----- Forwarded Message -----
> *From:* Kid Mr. <[email protected]>
> *To:* [email protected]
> *Sent:* Sunday, 23 September 2012, 15:16
> *Subject:* Re: [belajar-excel] Menghasilan Nilai Unique
>
>
> Waalaikumussalam Wr. Wb.
>
> Pak Sony,
>
> berikut ini isi dari event worksheet change yang ada dalam file Bapak.
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim AvailCell* As Long*, UniqueVal As Long
>
>
> AvailCell = WorksheetFunction.CountA(Range("C2:C1048576")) + 2
> UniqueVal = WorksheetFunction.CountIf(Range("A2:A1048576"), Range("A"
> & Target.Row))
>
> If Target.Column = 1 And Target.Row > 1 Then
> If UniqueVal = 1 Then
> Range("C" & AvailCell).Value = Range("A" & Target.Row).Value
> *Exit Sub*
> End If
> MsgBox ("Nilai sudah ada. Ulangi")
> ActiveCell.Offset(-1, 0).Select
> End If
> End Sub
> Yang *merah *adalah tambahan
> Yang *hijau *adalah penyesuaian layout penulisan agar lebih mudah dirunut
> (hanya kebiasaan saja, tapi kebiasaan ini cukup baik dan banyak bermanfaat)
>
> Bagaimana jika dijabarkan seluruh kondisi yang mungkin terjadi berdasar
> kedua kolom tersebut terhadap nilai inputan user dikolom A:
> kondisi menurut kolom A menurut kolom
> C prosesnya
> 1 Unik
> Unik tulis di C
> 2 Unik Tidak
> Unik gak boleh tulis di C tapi diapakan ? (belum
> ada)
> 3 Tidak Unik Tidak
> Unik gak boleh tulis di C, beri pesan dan cell
> aktif kembali ke cell yang diubah
> 4 Tidak Unik
> Unik mau diapakan ? (belum ada)
>
> Jadi, dibutuhkan 2 variabel cek, yaitu :
> 1. berdasar kolom A (Anda sudah punya bernama UniqueVal)
> 2. berdasar kolom C (karena belum punya, maka perlu dibuat)
>
> Syarat unik menurut kolom C adalah jumlah cacah di kolom C terhadap data
> bernilai inputan harus bernilai 0. Berbeda dengan yang UniqueVal ya
>
> Susunan pengkondisiannya :
> IF uniqueval=1 then
> IF menurutC = 0 then
> 'kondisi 1
> else
> 'kondisi 2
> endif
> else
> if menurutC = 0 then
> 'kondisi 4
> else
> 'kondisi 3
> endif
> endif
>
> Kira-kira cukup ya untuk jadi bahan uji coba...
> Mungkin sebaiknya dicoba dulu.
> Kalau udah mulai nyut-nyut mikirinnya, bisa diungkapkan ke milis lagi
>
> Selamat mencoba
>
> Wassalamualaikum Wr. Wb.
> Kid.
>
> P.S.
> File terlampir adalah iseng jika tanpa VBA.
> Jangan terlalu dipikirkan dan tetap fokus dulu dengan permasalahan di atas
> tadi
> Tetap semangat
> ;)
>
>
>
>
>
> 2012/9/23 Sony Ario <[email protected]>
>
> **
>
> Assalamualaikum teman2 BeExcel.
>
> Mohon bantuan. Pada file excel terlampir, saya berusaha untuk menghasilkan
> nilai Unique yang di input di kolom A. Dan hasil nya, nilai unique tersebut
> di masukan di kolom C (mulai dari C2 dst) dengan menggunakan Macro.
>
> Macro bekerja dengan baik saat saya input nilai baru di tiap2 baris di
> kolom A. Akan tetapi apa bila saya kembali ke cell yang sudah ada nilai
> nya, dan saya ketik ulang nilai yang ada pada cell tersebut macro nya tidak
> bekerja. Sehingga di kolom C, nilai tersebut masuk lagi. Di file terlampir
> saya contoh kan, setelah saya input semua, dan saya kembali ke cell A3,
> maka nilai "Duren" akan di input lagi (saya highlight di cell C3 dan C4),
> yg mana semestinya tidak. Dimanakah letak kesalahan nya ?
>
> Saya mengerti mungkin ada banyak cara yang lebih efisien dan dengan logika
> pemrograman yang lebih baik. Namun ini hanyalah cara dari seorang pemula yg
> baru niat mendalami Excel dan VBA :)... terima kasih sebelumnya saya
> ucapkan.
>
> Wassalam
> Sony
>
>
>
>
>
>
>