waduh.. :) seperti nya logika kemungkinan2 yg terakhir di jabarkan Mr. Kid,
masuk akal :)

Maklum pak. VBA merupakan hal baru buat saya. Dan logika pemecahan masalah
nya masih "cemen" hehe.. :D

Saya coba cerna dulu pak. Terima kasih Mr. Kid

"I'll be back.."

2012/9/23 Kid Mr. <mr.nm...@gmail.com>

> **
>
>
> 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 <sony.ar...@gmail.com>
>
>> **
>>
>>
>> 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
>>
>>
>>
>>
>  
>

Kirim email ke