Boleh ikutan kan Mr. Kid ?

Mengenai Kondisi 1, menurut kolom A Unik dan menurutkolom 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. <mr.nm...@gmail.com>
To: belajar-excel@yahoogroups.com 
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 AvailCellAs 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
> 
>

 

Reply via email to