Minggu, 23 September 2012

[belajar-excel] Digest Number 1802

14 New Messages

Digest #1802
1a
1b
Re: Menghasilan Nilai Unique by "Kid Mr." nmkid.family@ymail.com
1d
Re: Menghasilan Nilai Unique by "Kid Mr." nmkid.family@ymail.com
1e
Fw: [belajar-excel] Menghasilan Nilai Unique by "hendrik karnadi" hendrikkarnadi
1f
Re: Fw: [belajar-excel] Menghasilan Nilai Unique by "Kid Mr." nmkid.family@ymail.com
1g
Re: Fw: [belajar-excel] Menghasilan Nilai Unique by "hendrik karnadi" hendrikkarnadi
1h
Re: Fw: [belajar-excel] Menghasilan Nilai Unique by "Kid Mr." nmkid.family@ymail.com
2a
Re: CODING MACRO BUNYI BEEP by "Kid Mr." nmkid.family@ymail.com
2b
3a
4a
Re: Aplikasi Gudang Masukan sangat Berguna by "sapicumi" sapicumi@rocketmail.com
6
INPUT, EDIT & PINDAH TABEL by "Harry" hariansyahptk

Messages

Sat Sep 22, 2012 10:33 pm (PDT) . Posted by:

"Sony Ario"

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

Sun Sep 23, 2012 1:16 am (PDT) . Posted by:

"Kid Mr." nmkid.family@ymail.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.ario1@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
>
>
>
>
>

Sun Sep 23, 2012 4:40 am (PDT) . Posted by:

"Sony Ario"

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.nmkid@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.ario1@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
>>
>>
>>
>>
>
>

Sun Sep 23, 2012 4:45 am (PDT) . Posted by:

"Kid Mr." nmkid.family@ymail.com

hehehe....
Untung dunia itu harus dipandang secara objective.
Jadi, tidak ada yang statusnya masih "cemen", karena sesungguhnya jika ada
istilah "cemen" maka pasti semua orang statusnya masih "cemen" juga.

sebelum kelupaan,
variabel yang baru (poin 2 berdasar kolom C), mulai dari dim dan set
nilainya seperti yang UniqueVal, hanya kolom yang dikalkulasi CountIF yang
berbeda.

Ditunggu kabar gembiranya ya...

Wassalam,
Kid.

2012/9/23 Sony Ario <sony.ario1@gmail.com>

> **
>
>
> 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.nmkid@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.ario1@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
>>>
>>>
>>>
>>>
>>
>
>

Sun Sep 23, 2012 7:02 am (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

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.nmkid@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.ario1@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

>

Sun Sep 23, 2012 7:19 am (PDT) . Posted by:

"Kid Mr." nmkid.family@ymail.com

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 <hendrikkarnadi@yahoo.com>

> **
>
>
> 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. <mr.nmkid@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 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.ario1@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
>
>
>
>
>
>
>

Sun Sep 23, 2012 8:23 am (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

Ok, terima kasih.
Saya sdh dapat poinnya.

Salam,

Hendrik Karnadi

________________________________
From: Kid Mr. <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Sunday, 23 September 2012, 21:18
Subject: Re: Fw: [belajar-excel] Menghasilan Nilai Unique


 
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 <hendrikkarnadi@yahoo.com>


>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.nmkid@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.ario1@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
>> 
>>
>
>
>

Sun Sep 23, 2012 10:11 am (PDT) . Posted by:

"Kid Mr." nmkid.family@ymail.com

Sama-sama.

Untuk sekedar wacana,
susunan pengkondisian seperti :
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

sering disusun menjadi :
IF uniqueval=1 then
IF menurutC = 0 then
'kondisi 1
else
'kondisi 2
endif
elseif menurutC = 0 then
'kondisi 4
else
'kondisi 3
endif

Wassalam,
Kid.

2012/9/23 hendrik karnadi <hendrikkarnadi@yahoo.com>

> **
>
>
> Ok, terima kasih.
> Saya sdh dapat poinnya.
>
> Salam,
> Hendrik Karnadi
>
> ------------------------------
> *From:* Kid Mr. <mr.nmkid@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Sunday, 23 September 2012, 21:18
> *Subject:* Re: Fw: [belajar-excel] Menghasilan Nilai Unique
>
>
> 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 <hendrikkarnadi@yahoo.com>
>
> **
>
> 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. <mr.nmkid@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 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.ario1@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
>
>
>
>
>
>
>
>
>
>

Sat Sep 22, 2012 11:37 pm (PDT) . Posted by:

"Kid Mr." nmkid.family@ymail.com

Hai Recca,

File terlampir berisi UDF SoundWarning yang tugasnya hanya membunyikan file
wav dengan kriteria tertentu. Mungkin kestabilannya masih harus diuji,
karena hanya rewrite dari bahasa C++ ke VBA. Kalau yang ke VB6 bisa lebih
stabil.

Untuk mewarnai blinking, diatur melalui application.timer secara tidak
langsung. Jadi, application.timer pada file terlampir hanya mengubah suatu
nilai konstanta secara terus menerus dari 1 menjadi 2. Ketika
application.timer dihentikan, maka nilai konstanta diset menjadi 0. Setiap
kali buka workbook, set pertama saat open selalu nilai konstanta bernilai
1. Nilai konstanta ini disimpan dalam sebuah nama range bernama
'_MyTrigger_'
Nilai dalam _MyTrigger_ lah yang menjadi nilai kondisi dalam Conditional
Formatting (CF). Jadi blinking sebenarnya dilakukan oleh si CF karena ada
pengubahan nilai _MyTrigger_ oleh application.timer.

Jadi nanti kalau ada yang gak stabil, coba perhatikan betul, sisi
blinking-nya ada sisi sound-nya.

Berikut gambaran tentang UDF SoundWarning
UDF SoundWarning

Syntax =SoundWarning( kriteria_mulai_warning , [pesan_warning] ,
[filefullname_suara_peringatan] )

kriteria_mulai_warning diisi nilai numerik, yang bisa berupa hasil
komputasi ekspresi tertentu

jika nilainya <= 0, maka SoundWarning akan menghentikan bunyi

jika nilainya > 0, maka SoundWarning akan memulai bunyi peringatan

[pesan_warning] teks yang akan ditampilkan ke user yang menjadi nilai hasil
UDF ini ketika kriteria_mulai_warning bernilai >0.

teks bisa berupa hasil komputasi ekspresi tertentu

[filefullname_suara_peringatan] nama file suara yang akan dijadikan nada
peringatan.

nama file harus tertulis lengkap beserta drive dan foldernya

bila file tidak ditentukan user atau file dari user tidak ditemukan, maka
file default C:\Windows\Media\notify.wav akan dimainkan.

jika file tidak ditemukan, maka tidak ada suara peringatan yang dimainkan

Result Jika nilai kriteria_mulai_warning bernilai >0, maka file suara akan
dieksekusi menjadi suara peringatan disertai pesan teks dalam
[pesan_warning]
Jika nilai kriteria_mulai_warning bernilai <=0, maka suara peringatan
dihentikan dan tidak ada pesan teks yang ditampilkan

Contoh pemakaian :

=SoundWarning( 1*(B3="a") , "Cell B3 tidak boleh 'a'" )

Mainkan file default ketika isi cell B3 adalah teks 'a' (b3="a")

kemudian dikonversi menjadi nilai (1*) dan tampilkan pesan berbunyi : Cell
B3 tidak boleh 'a'

=SoundWarning( 1*(B3="a") , "Cell B3 tidak boleh 'a'" ,
"C:\Windows\Media\chord.wav" )

Mainkan file bernama chord.wav yang ada di C:\Windows\Media\ ketika isi
cell B3 adalah teks 'a' (b3="a")

kemudian dikonversi menjadi nilai (1*) dan tampilkan pesan berbunyi : Cell
B3 tidak boleh 'a'

Peringatan !!!

1 Pastikan pada event workbook before close, baris terakhir sebelum End
Sub diberi kode untuk menghentikan sound sebagai berikut :
PlaySound vbnullstring,0,9

2 Pada pengembangan untuk memasukkan UDF SoundWarning menjadi sebuah
AddIn, sertai dengan class pengatur Workbook agar setiap workbook yang
ditutup menjalankan
PlaySound vbnullstring,0,9

kemudian pada file addin dilanjutkan dengan proses application.calculate
untuk memicu UDF SoundWarning pada workbook yang belum tertutup

3 Yang dimainkan biasanya file pertama yang dijumpai, tetapi hal ini masih
belum stabil. Mungkin harus pakai midi supaya bisa bareng semua dimainkan
dan biar ribut seperti pasar :D
VBA Code untuk UDF SoundWarning :
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Public sAddr As String

'Kid,Jakarta, 2007-01-05,rewrite for VB6 and VBA
'SoundWarning : mengeksekusi file .wav dengan suatu kondisi tertentu dan
memberi return value teks
'butuh WinAPI function PlaySound pada winmm.dll
Public Function SoundWarning(lStartPeringatan As Long, _
Optional sWarning As String = "nah lo... ada yang gak
pas", _
Optional sFileName As String = vbNullString) As String
Dim sFile As String, sCallerAddr As String

Application.Volatile
If LenB(sFileName) = 0 Then
sFile = "C:\Windows\Media\notify.wav"
ElseIf LenB(Dir$(sFileName)) = 0 Then
sFile = "C:\Windows\Media\notify.wav"
Else
sFile = sFileName
End If

sCallerAddr = Application.Caller.Address & "|"
If lStartPeringatan < 1 Then
sAddr = Replace$(sAddr, sCallerAddr, vbNullString)
If LenB(sAddr) = 0 Then
PlaySound vbNullString, 0, 9
End If
SoundWarning = vbNullString
Else
If InStr(sAddr, sCallerAddr) = 0 Then
sAddr = sAddr & sCallerAddr
End If
PlaySound sFile, 0, 9
SoundWarning = sWarning
End If
End Function

Module yang mengatur nilai dalam nama range _MyTrigger_ :
Public lTimer As Long

Public Sub MyTrigger()
Select Case lTimer
Case 0
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="MyTrigger"
StopMyTrigger
Case 1, 2
lTimer = 2 + (lTimer = 2)
ThisWorkbook.Names("_MyTrigger_").Value = lTimer
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="MyTrigger"
End Select
End Sub

Public Sub StopMyTrigger()
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="MyTrigger", _
Schedule:=False
End Sub

Pengaturan saat open workbook :
Private Sub Workbook_Open()
lTimer = 1
ThisWorkbook.Names("_MyTrigger_").Value = lTimer
MyTrigger
End Sub

Pengaturan saat workbook akan di close (before close)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
lTimer = 0
ThisWorkbook.Names("_MyTrigger_").Value = lTimer
MyTrigger

PlaySound vbNullString, 0, 9
End Sub

Moga-moga gak bikin crash ya...

Wassalam,
Kid.

2012/9/23 Kurei recca <yusajing_ehm@yahoo.com>

> **
>
>
> Salam Para Master Excel,
>
> Ceritanya saya ingin membuat suatu coding dengan kondisi Jika Cell A1
> bertuliskan kata "TRUE" maka akan ada bunyi beep berulang selama 20 detik
> or periode tertentu dan Cell Tersebut kelap kelip berwarna kuning dan putih
> selama 20 detik tersebut.
>
> Kira2 bagaimana ya codingnya,,?
>
> Mohon Pencerahannya...
>
> Best Regards
>
>
>
>

Sat Sep 22, 2012 11:59 pm (PDT) . Posted by:

"Kurei recca" yusajing_ehm

Makasih Mr Kid,

dicoba dulu yaa,,

thx yaa

________________________________
Dari: Kid Mr. <mr.nmkid@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Minggu, 23 September 2012 13:37
Judul: Re: [belajar-excel] CODING MACRO BUNYI BEEP


 
Hai Recca,

File terlampir berisi UDF SoundWarning yang tugasnya hanya membunyikan file wav dengan kriteria tertentu. Mungkin kestabilannya masih harus diuji, karena hanya rewrite dari bahasa C++ ke VBA. Kalau yang ke VB6 bisa lebih stabil.

Untuk mewarnai blinking, diatur melalui application.timer secara tidak langsung. Jadi, application.timer pada file terlampir hanya mengubah suatu nilai konstanta secara terus menerus dari 1 menjadi 2. Ketika application.timer dihentikan, maka nilai konstanta diset menjadi 0. Setiap kali buka workbook, set pertama saat open selalu nilai konstanta bernilai 1. Nilai konstanta ini disimpan dalam sebuah nama range bernama '_MyTrigger_'
Nilai dalam _MyTrigger_ lah yang menjadi nilai kondisi dalam Conditional Formatting (CF). Jadi blinking sebenarnya dilakukan oleh si CF karena ada pengubahan nilai _MyTrigger_ oleh application.timer.

Jadi nanti kalau ada yang gak stabil, coba perhatikan betul, sisi blinking-nya ada sisi sound-nya.

Berikut gambaran tentang UDF SoundWarning

UDF SoundWarning










Syntax =SoundWarning( kriteria_mulai_warning  ,  [pesan_warning], [filefullname_suara_peringatan]  )





kriteria_mulai_warning diisi nilai numerik, yang bisa berupa hasil komputasi ekspresi tertentu




jika nilainya <= 0, maka SoundWarning akan menghentikan bunyi




jika nilainya > 0, maka SoundWarning akan memulai bunyi peringatan




[pesan_warning] teks yang akan ditampilkan ke user yang menjadi nilai hasil UDF ini ketika kriteria_mulai_warningbernilai >0.

teks bisa berupa hasil komputasi ekspresi tertentu






[filefullname_suara_peringatan] nama file suara yang akan dijadikan nada peringatan.





nama file harus tertulis lengkap beserta drive dan foldernya





bila file tidak ditentukan user atau file dari user tidak ditemukan, maka file default C:\Windows\Media\notify.wav akan dimainkan.

jika file tidak ditemukan, maka tidak ada suara peringatan yang dimainkan















Result Jika nilai kriteria_mulai_warningbernilai >0, maka file suara akan dieksekusi menjadi suara peringatan disertai pesan teks dalam [pesan_warning]

Jika nilai kriteria_mulai_warningbernilai <=0, maka suara peringatan dihentikan dan tidak ada pesan teks yang ditampilkan













Contoh pemakaian :











=SoundWarning(  1*(B3="a")  ,  "Cell B3 tidak boleh 'a'"   )








Mainkan file default ketika isi cell B3 adalah teks 'a' (b3="a")





kemudian dikonversi menjadi nilai (1*) dan tampilkan pesan berbunyi : Cell B3 tidak boleh 'a'














=SoundWarning(  1*(B3="a")  ,  "Cell B3 tidak boleh 'a'", "C:\Windows\Media\chord.wav"  )





Mainkan file bernama chord.wavyang ada di C:\Windows\Media\  ketika isi cell B3 adalah teks 'a' (b3="a")

kemudian dikonversi menjadi nilai (1*) dan tampilkan pesan berbunyi : Cell B3 tidak boleh 'a'













Peringatan !!!










1 Pastikan pada event workbook before close, baris terakhir sebelum End Sub diberi kode untuk menghentikan sound sebagai berikut :

PlaySound vbnullstring,0,9





















2 Pada pengembangan untuk memasukkan UDF SoundWarning menjadi sebuah AddIn, sertai dengan class pengatur Workbook agar setiap workbook yang ditutup menjalankan

PlaySound vbnullstring,0,9










kemudian pada file addin dilanjutkan dengan proses application.calculate untuk memicu UDF SoundWarning pada workbook yang belum tertutup












3 Yang dimainkan biasanya file pertama yang dijumpai, tetapi hal ini masih belum stabil. Mungkin harus pakai midi supaya bisa bareng semua dimainkan dan biar ribut seperti pasar :D
VBA Code untuk UDF SoundWarning :
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
                    ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Public sAddr As String

'Kid,Jakarta, 2007-01-05,rewrite for VB6 and VBA
'SoundWarning : mengeksekusi file .wav dengan suatu kondisi tertentu dan memberi return value teks
'butuh WinAPI function PlaySound pada winmm.dll
Public Function SoundWarning(lStartPeringatan As Long, _
                    Optional sWarning As String = "nah lo... ada yang gak pas", _
                    Optional sFileName As String = vbNullString) As String
    Dim sFile As String, sCallerAddr As String
   
    Application.Volatile
    If LenB(sFileName) = 0 Then
        sFile = "C:\Windows\Media\notify.wav"
    ElseIf LenB(Dir$(sFileName)) = 0 Then
        sFile = "C:\Windows\Media\notify.wav"
    Else
        sFile = sFileName
    End If
   
    sCallerAddr = Application.Caller.Address & "|"
    If lStartPeringatan < 1 Then
        sAddr = Replace$(sAddr, sCallerAddr, vbNullString)
        If LenB(sAddr) = 0 Then
            PlaySound vbNullString, 0, 9
        End If
        SoundWarning = vbNullString
    Else
        If InStr(sAddr, sCallerAddr) = 0 Then
            sAddr = sAddr & sCallerAddr
        End If
        PlaySound sFile, 0, 9
        SoundWarning = sWarning
    End If
End Function

Module yang mengatur nilai dalam nama range _MyTrigger_ :
Public lTimer As Long

Public Sub MyTrigger()
    Select Case lTimer
    Case 0
        Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                        Procedure:="MyTrigger"
        StopMyTrigger
    Case 1, 2
        lTimer = 2 + (lTimer = 2)
        ThisWorkbook.Names("_MyTrigger_").Value = lTimer
        Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                        Procedure:="MyTrigger"
    End Select
End Sub

Public Sub StopMyTrigger()
    Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                        Procedure:="MyTrigger", _
                        Schedule:=False
End Sub

Pengaturan saat open workbook :
Private Sub Workbook_Open()
    lTimer = 1
    ThisWorkbook.Names("_MyTrigger_").Value = lTimer
    MyTrigger
End Sub

Pengaturan saat workbook akan di close (before close)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    lTimer = 0
    ThisWorkbook.Names("_MyTrigger_").Value = lTimer
    MyTrigger

    PlaySound vbNullString, 0, 9
End Sub

Moga-moga gak bikin crash ya...

Wassalam,
Kid.

2012/9/23 Kurei recca <yusajing_ehm@yahoo.com>


>Salam Para Master Excel,
>
>Ceritanya saya ingin membuat suatu coding dengan kondisi Jika Cell A1 bertuliskan kata "TRUE" maka akan ada bunyi beep berulang selama 20 detik or periode tertentu dan Cell Tersebut kelap kelip berwarna kuning dan putih selama 20 detik tersebut.
>
>Kira2 bagaimana ya codingnya,,?
>
>Mohon Pencerahannya...
>
>Best Regards
>
>
>
>

Sat Sep 22, 2012 11:58 pm (PDT) . Posted by:

"Kurei recca" yusajing_ehm

Oke dicoba ya pak aji,,

thx yaa

________________________________
Dari: aji mumpung <pupung1986@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Minggu, 23 September 2012 11:11
Judul: Re: [belajar-excel] CODING MACRO BUNYI BEEP


 
pak Yusa.. coba code berikut.. sudah saya tes di windows 32-bit dan berjalan dengan baik

Option Explicit
Private Declare Function SuaranyaDong _
    Lib "winmm.dll" _
    Alias "sndPlaySoundA" ( _
        ByVal NamaLagu As String, _
        ByVal Lama As Long) As Long

Sub BunyiBip()
    Dim i As Integer
    Dim c As Integer
    
    For i = 1 To 10
        If Range("a1").Value = "a" Then
            If Application.Wait(Now() + TimeValue("00:00:02")) Then
                Range("a1").Interior.ColorIndex = c
            End If
                SuaranyaDong "C:\Windows\Media\Chimes.wav", 0&
        End If
        c = c + 1
    Next i
End Sub

untuk fungsi timernya saya belum ketemu.. ketemunya fungsi wait yang dimerahin dari link berikut

http://msdn.microsoft.com/en-us/library/aa213656(office.11).aspx

mungkin dari para member millis ini maupun para master dapat memberikan pencerahan mengenai fungsi timer

wassalam,

-aji mumpung-

Pada 23 September 2012 09:07, aji mumpung <pupung1986@gmail.com> menulis:

hehehe... ternyata pak Yusa menggunakan windows 32-bit, jika anda menekan tombol Help maka ada keterangan sebagai berikut:
>
>
> * If you are working on a 32-bit Microsoft Windows platform, both the DLL name and
alias (if used) must be correct.
>Make sure the DLL name and alias are correct.
>untuk code berikut:
>
>
>Alias "BunyiGakYa" ( _
>
>
>yang dimerahin harap diganti dengan sndPlaySoundA sehingga codenya menjadi:
>
>
>Alias "sndPlaySoundA" ( _
>berhubung saya juga masih dalam tahap belajar vba.. (baru baca 150 halaman dari 404 halaman) untuk timernya saya pelajari dulu ya pak hehehe.. ^_^
>
>
>wassalam,
>
>
>-aji mumpung-
>
>
>Pada 23 September 2012 08:31, Kurei recca <yusajing_ehm@yahoo.com> menulis:
>
>
>
>> 
>>Dear Aji,
>>
>>
>>Thx ya atas feedbacknya
>>
>>
>>
>>tapi kok fungsi "BunyiGaYa"-nya ga bisa jalan ya ? ada error yang mengatakan bahwa DDL function not found,,
>>
>>
>>codingnya saya taruh dalam module sheet1,,
>>
>>
>>Lalu, Pak Aji kan menggunakan looping For Next agar cell tersebut kelap kelip, bisa jika menggunakan timer karena jika menggunakan for next tidak kelihatan kelapa kelipnya,
>>
>>
>>Jadi agar kelihatan setidaknya satu warna itu 2 detik terpampangnya, lalu ganti warna laen,,
>>
>>
>>*Terlampir filenya ya pak : saya ubah kata "True" menjadi "a"
>>
>>
>>Mohon Pencerahannya
>>
>>
>>________________________________
>> Dari: aji mumpung <pupung1986@gmail.com>
>>Kepada: belajar-excel@yahoogroups.com
>>Dikirim: Minggu, 23 September 2012 8:06
>>Judul: Re: [belajar-excel] CODING MACRO BUNYI BEEP
>>
>>
>>
>> 
>>hai yusa..
>>
>>
>>untuk dapat memainkan suara anda harus menggunakan function windows API yang terdapat di dalam file winmm.dll, tetapi sebelum dapat menggunakannya anda harus mendeklarasikan fungsi tersebut sehingga dapat dipanggil dalam suatu prosedur
>>
>>
>>codenya sebagai berikut:
>>
>>
>>Option Explicit
>>Private Declare Function SuaranyaDong _
>>    Lib "winmm.dll" _
>>    Alias "BunyiGakYa" ( _
>>        ByVal NamaLagu As String, _
>>        ByVal Lama As Long) As Long
>>
>>
>>Sub BunyiBip()
>>    Dim i As Integer
>>    Dim c As Integer
>>    
>>    For i = 1 To 10
>>        If Range("a1").Value = "TRUE" Then
>>            Range("a1").Interior.ColorIndex = c
>>            SuaranyaDong "C:\Windows\Media\Chimes.wav", 0&
>>        End If
>>        c = c + 1
>>    Next i
>>End Sub
>>
>>
>>perhatikan yang diberi warna biru & merah, code ini ditulis di sheets module sehingga hanya dapat berfungsi dengan baik di sheet tersebut, jika anda menginginkan fungsi dapat dipanggil dari mana saja maka pindahkan yang diberi warna biru & merah ke dalam suatu modul dan ubah warna biru dari Private menjadi Public.
>>
>>
>>untuk suaranya dapat anda ganti-ganti sesuka hati menggunakan file yang berekstensi wav dan default lokasi pada pc saya adalah pada folder C:\Windows\Media, silakan anda searching mengenai lokasi pada pc anda dan jenis-jenis bunyi yang tersedis.
>>
>>
>>wassalam,
>>
>>
>>-aji mumpung-
>>
>>
>>Pada 23 September 2012 07:01, Kurei recca <yusajing_ehm@yahoo.com> menulis:
>>
>>
>>> 
>>>Salam Para Master Excel,
>>>
>>>Ceritanya saya ingin membuat suatu coding dengan kondisi Jika Cell A1 bertuliskan kata "TRUE" maka akan ada bunyi beep berulang selama 20 detik or periode tertentu dan Cell Tersebut kelap kelip berwarna kuning dan putih selama 20 detik tersebut.
>>>
>>>Kira2 bagaimana ya codingnya,,?
>>>
>>>Mohon Pencerahannya...
>>>
>>>Best Regards
>>>
>>>
>>>
>>
>>
>>
>

Sun Sep 23, 2012 1:25 am (PDT) . Posted by:

"sapicumi" sapicumi@rocketmail.com

Ok pak Aji/Mumpung yaa
terima kasih masukanya jadi intinya gini ya pak aji
-di frminput transaksi di cari berdasarkan grup barang dan di tampilkan di
suatu listbox mungkin ya lali bisa di pilih oleh si user yg mana yg data
akan di input transaksi begitu ya. ini saya baru coba2 memcoding kan ide pak
aji nnt kl sudah bisa saya akan upload lagi ke milis pak aji trimakasih

--
View this message in context: http://milis-belajar-excel.1048464.n5.nabble.com/Aplikasi-Gudang-Masukan-sangat-Berguna-tp5712035p5712043.html
Sent from the Milis Belajar Excel mailing list archive at Nabble.com.

Sun Sep 23, 2012 1:57 am (PDT) . Posted by:

"Indra Sanjaya" indradjaja80an


Ok pak aji, trima ksh atas jwbannya.

Salam,
Indra Djaja
------------------------------
Pada Sab, 22 Sep 2012 03:37 Waktu Terang Hari Timur aji mumpung menulis:

>hai pak Indra,
>
>karena yang diminta adalah jumlah dari bulan ke sekian sampai dengan bulan
>ke sekian.. maka seharusnya untuk kriteria bulan ada 2 bukannya 1, yang
>satu sebagai batas awal dan yang satunya lagi sebagai batas akhir.
>
>karena dalam sampel sudah menggunakan format tabel, jadi selain menambahkan
>1 kriteria untuk bulan.. formulanya juga mengambil nama berdasarkan tabel.
>untuk fungsi SumIfS lengkapnya seperti ini
>=SUMIFS(Table1[penjualan];Table1[jenis
>barang];G5;Table1[bulan];">="&G6;Table1[bulan];"<="&G7)
>
>Alternatif kedua adalah menggunakan SumProduct
>=SUMPRODUCT((Table1[jenis
>barang]=G5)*(Table1[bulan]>=G6)*(Table1[bulan]<=G7)*Table1[penjualan])
>
>Alternatif ketiga adalah menggunakan Pivot Tabel, saya menggunakan versi
>2010 yang dilengkapi dengan menu Slicer
>
>untuk lebih jelasnya silakan lihat file terlampir
>
>wassalam,
>
>-aji mumpung-
>
>Pada 22 September 2012 13:47, Indra Sanjaya <indradjaja80an@yahoo.com>menulis:
>
>> **
>>
>>
>> Dear master excel,
>>
>> Saya punya masalah tuk membuat rumus akumulasi pendapatan dari bulan
>> januari s.d. bulan yg dipilih, file terlampir.
>> Rumus yg saya gunakan adalah sumifs. Ketika saya memilih bulan ke-n, pada
>> cell akumulasi penjualan hanya tampil data bulan-n bukan akumulasinya.
>>
>> Mohon bantuannya.
>>
>> Terima kasih sebelumnya.
>>
>> Salam,
>> Indra Djaja.
>>
>>
>>

Sun Sep 23, 2012 2:10 am (PDT) . Posted by:

"Harry" hariansyahptk

Dear BeExceller,

Kali ini saya ingin menanyakan bagaimana caranya kita dapat menginput dan mengedit data pada tabel yang sama serta bagaimana memindahkan data dari satu tabel ke tabel yang lain.

Sebagai referensi pertanyaan, terlampir Studi Kasus.

Besar harapan kiranya rekan-rekan BeExceller dapat memberikan solusi akan pertanyaan saya diatas.

Terima kasih,

Harry
GROUP FOOTER MESSAGE
---------------------------------------------------------------------
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
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar