15 New Messages
Digest #2575
1a
Re: cara membuar coding pada combobox dan text box [1 Attachment] by "Mr. Kid" nmkid.family@ymail.com
5c
Re: Bls: [belajar-excel] Langsung masuk ke sheet yang diinginkan by "hendrik karnadi" hendrikkarnadi
Messages
Wed Oct 2, 2013 1:45 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
File terlampir ndak pakai TextBox.
Mencoba untuk mengatur properti ComboBox bernama :
- BoundColumn :: nomor kolom (base 1) yang akan dijadikan nilai item dari
index yang dipilih
- ColumnCount :: jumlah kolom yang akan disediakan oleh combobox
- TextColumn :: nomor kolom (base 1) yang akan ditampilkan oleh
combobox
- RowSource :: record data (tanpa header) yang akan dijadikan item
pilihan dalam combobox
- ColumnHeads :: status TRUE/FALSE untuk menampilkan header sumber (tepat 1
baris sebelum record data untuk RowSource) atau tidak
- ColumnWidth :: teks pengaturan lebar setiap kolom (dalam satuan point
[pt] dengan delimiter antar kolom berupa karakter titik koma)
- ListWidth :: lebar daftar yang ditampilkan ketika user
mengaktifkan dropdown milik combobox.
Wassalam,
Kid.
2013/10/2 Iga Aprilia <iga.april@yahoo.com>
> **
>
>
> dear all
>
> saya coba membuat sebuah user form dengan menambahkan combo box dan
> textbox apabila saya meng-klik combo box
> maka secara otomatis pada text box glass-name muncul nama yang ada pada
> database glass name.
> yang ingin saya tanyakan bagaimana coding dari program tersebut tanpa
> menggunakan command button??
>
> terima kasih
> iga
>
>
>
Mencoba untuk mengatur properti ComboBox bernama :
- BoundColumn :: nomor kolom (base 1) yang akan dijadikan nilai item dari
index yang dipilih
- ColumnCount :: jumlah kolom yang akan disediakan oleh combobox
- TextColumn :: nomor kolom (base 1) yang akan ditampilkan oleh
combobox
- RowSource :: record data (tanpa header) yang akan dijadikan item
pilihan dalam combobox
- ColumnHeads :: status TRUE/FALSE untuk menampilkan header sumber (tepat 1
baris sebelum record data untuk RowSource) atau tidak
- ColumnWidth :: teks pengaturan lebar setiap kolom (dalam satuan point
[pt] dengan delimiter antar kolom berupa karakter titik koma)
- ListWidth :: lebar daftar yang ditampilkan ketika user
mengaktifkan dropdown milik combobox.
Wassalam,
Kid.
2013/10/2 Iga Aprilia <iga.april@yahoo.
> **
>
>
> dear all
>
> saya coba membuat sebuah user form dengan menambahkan combo box dan
> textbox apabila saya meng-klik combo box
> maka secara otomatis pada text box glass-name muncul nama yang ada pada
> database glass name.
> yang ingin saya tanyakan bagaimana coding dari program tersebut tanpa
> menggunakan command button??
>
> terima kasih
> iga
>
>
>
Wed Oct 2, 2013 5:35 pm (PDT) . Posted by:
"zainul_ulum[at]yahoo[dot]com" zainul_ulum
Terimakasih penjelasannya Mr. Kid.
Saya juga sudah berkunjung ke tautan yang direkomendasikan tapi belum sesuai
yang saya inginkan.
berikut gambaran problem yang sedang saya hadapi
'===code dalam class module=====
'==nama class module: clsGeometri
Option Explicit
Private pPanjang As Double
Private pLebar As Double
Public Property Get panjangnya() As Double
panjangnya = pPanjang
End Property
Public Property Let panjangnya(Value As Double)
panjangnya = Value
End Property
Public Property Get lebarnya() As Double
lebarnya = pLebar
End Property
Public Property Let lebarnya(Value As Double)
lebarnya = Value
End Property
'=====code dalam standard module
Option Explicit
'dalam standard module,biasanya saya menggunakan declarasi type untuk
membuat object baru
Type kotak
panjang As Double
lebar As Double
End Type
Sub MembuatObjectDiVbaType01()
'membuat objeck lapangan dengan type kotak
Dim lapangan As kotak
'memasukkan parameter panjang dan lebar ke objek lapangan
lapangan.panjang = 100
lapangan.lebar = 50
'menghitung luas lapangan
Dim luas As Double
luas = lapangan.panjang * lapangan.lebar
MsgBox luas
End Sub
'kemudian saya coba membuat objcet yang sama menggunakan dengan mengambil
'property yang telah dibuat di class module [clsGeometri]
Sub MembuatObjectDiVbaType02()
Dim oLapangan As New clsGeometri
'memasukkan parameter panjang ke object lapangan
oLapangan.lebarnya = 100#
oLapangan.panjangnya = 50#
'menghitung luas lapangan
Dim luas As Double
luas = oLapangan.lebarnya * oLapangan.panjangnya
Debug.Print luas
End Sub
'tanya:
'kenapa ada pesan error saat saya jalankan procedure
MembuatObjectDiVbaType02?
'terimakasih
'-zainul-
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of Mr. Kid
Sent: Wednesday, October 02, 2013 10:12 PM
To: BeExcel
Subject: Re: [belajar-excel] OOP (was Macro Openoffice)
hehehe...
mau mulai dari mana ya..
yang sederhana saja.
disemua module.
Pada dasarnya prosedur property (ada Get, ada Set atau Let) digunakan untuk
berinteraksi dengan sebuah atribut yang isinya adalah suatu nilai tertentu
(bisa berupa object atau nilai skalar). Kalau dimirip-miripin alias
disimpelkan secara teknis, maka prosedur property adalah cara untuk
berinteraksi dengan variabel yang diterkait.
Jadi, misal ada variabel level module (private) bernama mMyVar, maka akses
ke variabel ini bisa diatur menggunakan prosedur property. Get untuk ambil,
Set (khusus object) atau Let untuk mengisi si variabel mMyVar.
Alhasil, misal ada property bernama MyVariable yang berisi prosedur properti
Get, maka isi mMyVar bisa diambil dengan menyebut nama prosedur property
seperti memanggil sebuah variabel.
Misal : mau ambil nilai mMyVar yang punya properti dan disimpan ke variabel
baru bernama sKerja, maka bisa langsung :
sKerja = MyVariable
Sekarang bahas yang umum dipakai.
Pemakaian prosedur property secara luas adalah pada class module, alias
digunakan untuk menentukan atau membentuk properti suatu object yang
dibentuk melalui class tersebut.
Contoh : kenal dengan Range di Excel ? Pernah isi nilai atau ambil nilai
dari si range ? mestinya pernah kan ya... :)
kira-kira untuk hal isi didalam range akan punya cerita gini :
Didalamnya Excel sana, Range adalah nama sebuah Class. Dia punya (anggap
saja) sebuah variabel khusus milik si class yang bernama mValue. Nilai yang
disimpan dalam mValue, boleh diakses semua object yang dibentuk melalui
class Range ini melalui property object bernama Value. Didalam class Range,
property bernama Value ini didefinisikan dengan prosedur property Get untuk
ambil nilai dan prosedur property Let untuk mengisi nilai.
Kemudian di VBE, pada sebuah module, ada pembuatan variabel object dari
class Range. Nama variabel object itu dinamakan misalnya rngData.
Bunyi pembuatannya begini :
Dim rngData As Range 'artinya, buatkan benda bernama rngData yang wujudnya
memiliki spesifikasi yang dijabarkan dalam class Range
Jadi, dalam rngData, akan ada property bernama Value untuk bisa mengakses
variabel bernama mValue milik si benda bernama rngData.
Kalau ada pembuatan object baru lagi
Dim rngKriteria As Range
Maka, dalam rngKriteria akan ada property bernama Value untuk bisa mengakses
variabel bernama mValue milik si benda bernama rngKriteria
Si variabel sudah terbentuk tapi belum ada isi benda aslinya, karena si
benda asli kan dipakai user di worksheet. Jadi, si rngData akan diisi dengan
sebuah range yang ada di worksheet aktif, misal range A1.
Set rngData = Range("a1") ' "sit sit, ikutan pakai range A1 dong", kata
si rngData -> kalau error, berarti rngData salah omong.
Sekarang, kalau mau mengisi nilai range A1 dengan nilai 12345, maka sama
saja akan mengisi variabel mValue milik si rngData. Aksesnya adalah melalui
properti bernama Value, yang biasanya ditulis begini :
rngData.Value = 12345
proses ini sebenarnya, menjalankan prosedur property Let bernama Value milik
si rngData dengan mengirim nilai 12345.
meskipun menjalankan prosedur, penggunaannya seperti memakai variabel biasa
kan. Sisi kiri sama dengan diisi sisi kanan sama dengan.
Kalau mau ambil nilai mValue milik si rngData (saat ini berisi 12345) dan
disimpan ke variabel bernama lNilaiku, akan berbunyi :
Dim lNilaiku As Long
lNilaiku = rngData.Value
*1) Hal ini adalah salah satu kelebihan prosedur property dalam sebuah
property object dan hanya menjadi milik si class module jika prosedur
property nya ditulis untuk class module tersebut. Jadi, class module lain
bisa saja memiliki property bernama Value juga tapi pemiliknya beda.
Contoh, ada property Value milik class Range (boleh dibaca milik Range), ada
property value milik control TextBox. Sama-sama property value tapi beda
pemilik. Di class Range ada prosedur properti untuk property bernama Value.
Di class TextBox juga ada prosedur property bernama Value.
Bagaimana kalau mValue diset gak pakai property ? bisa gak ? -- bisa kok,
kita coba saja ya, biar terasa ribetnya --
Kalau ndak pakai prosedur property, berarti pakai prosedur Sub atau Function
yang sering disebut methods.
Jadi didalam class Range nanti akan ada 2 methods baru untuk bisa menyimpan
nilai kedalam variabel mValue, yaitu :
public sub IsiValue( vNilainya as variant ) 'untuk isi nilai ke mValue
mvalue=vnilainya
end sub
public function AmbilValue() as variant 'untuk ambil nilai dari
mValue
AmbilValue = mvalue
end sub
sampai disini, sudah akan tampak bahwa untuk ngurusin si mValue butuh 2
nama, yaitu IsiValue (mengisi alias setara property Let) dan AmbilNilai
(mengambil alias setara property Get). Alhasil, kalau nulis script, setelah
ketik rngData lalu ketik titik akan muncul 2 nama. Harus pilih yang bener,
mau isivalue atau ambilvalue.
*2) Kalau pakai property Get dan Let, namanya akan jadi property object, dan
hanya ada sebijik saja yaitu Value.
Bagaimana cara isi nilai ke mValue dan ambil nilai dari mValue milik si
rngData ?
rngdata.IsiValue 12345 'isi nilai ke mValue milik rngData
lNilaiku = rngdata.ambilvalue 'ambil nilai mvalue milik rngData
*3) Ada perbedaan penulisan dalam mengisi nilai dengan mengambil nilai,
sehingga membutuhkan ketelitian lebih tinggi untuk bisa tahu dimana proses
mengisi nilainya dan dimana proses ambil nilainya.
Kira-kira demikianlah beberapa keuntungan prosedur property dalam membentuk
property object.
Tentang bagaimana membentuk property object atau cara penggunaan prosedur
property Get dan (Set atau Let) ada diblog milis disini.
Bahas OOP nya ndak usah banyak-banyak ya...
Salah satu ciri khas sederhana OOP, pemakaiannya harus ditulis lengkap.
Contoh : (penulisan 1)
di VBA, untuk isi range A1 dengan nilai 12345 dan B1 diisi dengan teks
'BeExcel39; bisa dengan :
Range("a1").Value = 12345 'workbook aktif, di sheet yang aktif, di
range A1, isi properti bernama Value dengan 12345
atau
Range("a1") = 12345 'workbook aktif, di sheet yang aktif, di range A1,
isi properti default si object (yaitu yang bernama Value) dengan 12345
Range("b1").value = "BeExcel"
atau
Range("b1") = "BeExcel"
Kalau pakai OOP yang baik, nulisnya : (penulisan 2)
ThisWorkbook.ActiveSheet.Range("a1").Value = 12345
ThisWorkbook.ActiveSheet.Range("b1").Value = "BeExcel"
Kalau bahasa pemrogramannya betul-betul full berbasis OOP, maka penulisan 2
yang bisa dijalankan dan semua penulisan 1 akan error.
Contoh di OpenOffice.org Calc untuk kasus yang sama, harus ditulis :
ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("A1").Value =
12345
ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B1").String
= "BeExcel"
banyak yang bilang, OOP nulisnya panjang banget.... xixixixi... (kan bisa
disimpen dalam variabel)
udahan dulu ya... kalo ada yang salah, dikoreksi yak...
Wassalam,
Kid.
2013/10/2 zainul_ulum[at]yahoo[dot]com <zainul_ulum@yahoo.com>
Mumpung disinggung tentang OOP kalo nggak salah kepanjangan dari (Object
Oriented Programming), minta tolong diulas tentang "property get statement"
dan "property set statement".
kelebihan menggunakan statement tersebut jika dibanding dengan menggunakan
statement tersebut?
maturnuwun
-zainul-
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of Mr. Kid
Sent: Wednesday, October 02, 2013 8:55 AM
To: BeExcel
Subject: Re: [belajar-excel] Macro Openoffice
wakakaka...
iya, perlu dicoba dulu.
Kalau di star office waktu doeloe sih bisa. Cuman kadang gak bisa pas udah
berurusan sama userform.
Jadi bikin VBAnya jangan yang rumit ya. Mungkin VBASupport nya akan mengubah
si VBA jadi VBScript kali ya...
Saya gak mudeng dalemannya. Dokumentasinya dikit.
Kalau struktur objectnya, si OO memang lebih bagus dari VBA karena full OOP.
Mungkin nanti kalau dah mulai banyak dokumentasi object model nya akan jadi
lebih enak.
Wassalam,
Kid.
Saya juga sudah berkunjung ke tautan yang direkomendasikan tapi belum sesuai
yang saya inginkan.
berikut gambaran problem yang sedang saya hadapi
'===code dalam class module=====
'==nama class module: clsGeometri
Option Explicit
Private pPanjang As Double
Private pLebar As Double
Public Property Get panjangnya() As Double
panjangnya = pPanjang
End Property
Public Property Let panjangnya(Value As Double)
panjangnya = Value
End Property
Public Property Get lebarnya() As Double
lebarnya = pLebar
End Property
Public Property Let lebarnya(Value As Double)
lebarnya = Value
End Property
'=====code dalam standard module
Option Explicit
'dalam standard module,biasanya saya menggunakan declarasi type untuk
membuat object baru
Type kotak
panjang As Double
lebar As Double
End Type
Sub MembuatObjectDiVbaT
'membuat objeck lapangan dengan type kotak
Dim lapangan As kotak
'memasukkan parameter panjang dan lebar ke objek lapangan
lapangan.panjang = 100
lapangan.lebar = 50
'menghitung luas lapangan
Dim luas As Double
luas = lapangan.panjang * lapangan.lebar
MsgBox luas
End Sub
'kemudian saya coba membuat objcet yang sama menggunakan dengan mengambil
'property yang telah dibuat di class module [clsGeometri]
Sub MembuatObjectDiVbaT
Dim oLapangan As New clsGeometri
'memasukkan parameter panjang ke object lapangan
oLapangan.lebarnya = 100#
oLapangan.panjangny
'menghitung luas lapangan
Dim luas As Double
luas = oLapangan.lebarnya * oLapangan.panjangny
Debug.Print luas
End Sub
'tanya:
'kenapa ada pesan error saat saya jalankan procedure
MembuatObjectDiVbaT
'terimakasih
'-zainul-
From: belajar-excel@
On Behalf Of Mr. Kid
Sent: Wednesday, October 02, 2013 10:12 PM
To: BeExcel
Subject: Re: [belajar-excel] OOP (was Macro Openoffice)
hehehe...
mau mulai dari mana ya..
yang sederhana saja.
disemua module.
Pada dasarnya prosedur property (ada Get, ada Set atau Let) digunakan untuk
berinteraksi dengan sebuah atribut yang isinya adalah suatu nilai tertentu
(bisa berupa object atau nilai skalar). Kalau dimirip-miripin alias
disimpelkan secara teknis, maka prosedur property adalah cara untuk
berinteraksi dengan variabel yang diterkait.
Jadi, misal ada variabel level module (private) bernama mMyVar, maka akses
ke variabel ini bisa diatur menggunakan prosedur property. Get untuk ambil,
Set (khusus object) atau Let untuk mengisi si variabel mMyVar.
Alhasil, misal ada property bernama MyVariable yang berisi prosedur properti
Get, maka isi mMyVar bisa diambil dengan menyebut nama prosedur property
seperti memanggil sebuah variabel.
Misal : mau ambil nilai mMyVar yang punya properti dan disimpan ke variabel
baru bernama sKerja, maka bisa langsung :
sKerja = MyVariable
Sekarang bahas yang umum dipakai.
Pemakaian prosedur property secara luas adalah pada class module, alias
digunakan untuk menentukan atau membentuk properti suatu object yang
dibentuk melalui class tersebut.
Contoh : kenal dengan Range di Excel ? Pernah isi nilai atau ambil nilai
dari si range ? mestinya pernah kan ya... :)
kira-kira untuk hal isi didalam range akan punya cerita gini :
Didalamnya Excel sana, Range adalah nama sebuah Class. Dia punya (anggap
saja) sebuah variabel khusus milik si class yang bernama mValue. Nilai yang
disimpan dalam mValue, boleh diakses semua object yang dibentuk melalui
class Range ini melalui property object bernama Value. Didalam class Range,
property bernama Value ini didefinisikan dengan prosedur property Get untuk
ambil nilai dan prosedur property Let untuk mengisi nilai.
Kemudian di VBE, pada sebuah module, ada pembuatan variabel object dari
class Range. Nama variabel object itu dinamakan misalnya rngData.
Bunyi pembuatannya begini :
Dim rngData As Range 'artinya, buatkan benda bernama rngData yang wujudnya
memiliki spesifikasi yang dijabarkan dalam class Range
Jadi, dalam rngData, akan ada property bernama Value untuk bisa mengakses
variabel bernama mValue milik si benda bernama rngData.
Kalau ada pembuatan object baru lagi
Dim rngKriteria As Range
Maka, dalam rngKriteria akan ada property bernama Value untuk bisa mengakses
variabel bernama mValue milik si benda bernama rngKriteria
Si variabel sudah terbentuk tapi belum ada isi benda aslinya, karena si
benda asli kan dipakai user di worksheet. Jadi, si rngData akan diisi dengan
sebuah range yang ada di worksheet aktif, misal range A1.
Set rngData = Range("
si rngData -> kalau error, berarti rngData salah omong.
Sekarang, kalau mau mengisi nilai range A1 dengan nilai 12345, maka sama
saja akan mengisi variabel mValue milik si rngData. Aksesnya adalah melalui
properti bernama Value, yang biasanya ditulis begini :
rngData.Value = 12345
proses ini sebenarnya, menjalankan prosedur property Let bernama Value milik
si rngData dengan mengirim nilai 12345.
meskipun menjalankan prosedur, penggunaannya seperti memakai variabel biasa
kan. Sisi kiri sama dengan diisi sisi kanan sama dengan.
Kalau mau ambil nilai mValue milik si rngData (saat ini berisi 12345) dan
disimpan ke variabel bernama lNilaiku, akan berbunyi :
Dim lNilaiku As Long
lNilaiku = rngData.Value
*1) Hal ini adalah salah satu kelebihan prosedur property dalam sebuah
property object dan hanya menjadi milik si class module jika prosedur
property nya ditulis untuk class module tersebut. Jadi, class module lain
bisa saja memiliki property bernama Value juga tapi pemiliknya beda.
Contoh, ada property Value milik class Range (boleh dibaca milik Range), ada
property value milik control TextBox. Sama-sama property value tapi beda
pemilik. Di class Range ada prosedur properti untuk property bernama Value.
Di class TextBox juga ada prosedur property bernama Value.
Bagaimana kalau mValue diset gak pakai property ? bisa gak ? -- bisa kok,
kita coba saja ya, biar terasa ribetnya --
Kalau ndak pakai prosedur property, berarti pakai prosedur Sub atau Function
yang sering disebut methods.
Jadi didalam class Range nanti akan ada 2 methods baru untuk bisa menyimpan
nilai kedalam variabel mValue, yaitu :
public sub IsiValue( vNilainya as variant ) 'untuk isi nilai ke mValue
mvalue=vnilainya
end sub
public function AmbilValue() as variant 'untuk ambil nilai dari
mValue
AmbilValue = mvalue
end sub
sampai disini, sudah akan tampak bahwa untuk ngurusin si mValue butuh 2
nama, yaitu IsiValue (mengisi alias setara property Let) dan AmbilNilai
(mengambil alias setara property Get). Alhasil, kalau nulis script, setelah
ketik rngData lalu ketik titik akan muncul 2 nama. Harus pilih yang bener,
mau isivalue atau ambilvalue.
*2) Kalau pakai property Get dan Let, namanya akan jadi property object, dan
hanya ada sebijik saja yaitu Value.
Bagaimana cara isi nilai ke mValue dan ambil nilai dari mValue milik si
rngData ?
rngdata.IsiValue 12345 'isi nilai ke mValue milik rngData
lNilaiku = rngdata.ambilvalue 'ambil nilai mvalue milik rngData
*3) Ada perbedaan penulisan dalam mengisi nilai dengan mengambil nilai,
sehingga membutuhkan ketelitian lebih tinggi untuk bisa tahu dimana proses
mengisi nilainya dan dimana proses ambil nilainya.
Kira-kira demikianlah beberapa keuntungan prosedur property dalam membentuk
property object.
Tentang bagaimana membentuk property object atau cara penggunaan prosedur
property Get dan (Set atau Let) ada diblog milis disini.
Bahas OOP nya ndak usah banyak-banyak ya...
Salah satu ciri khas sederhana OOP, pemakaiannya harus ditulis lengkap.
Contoh : (penulisan 1)
di VBA, untuk isi range A1 dengan nilai 12345 dan B1 diisi dengan teks
'BeExcel
Range("
range A1, isi properti bernama Value dengan 12345
atau
Range("
isi properti default si object (yaitu yang bernama Value) dengan 12345
Range("
atau
Range("
Kalau pakai OOP yang baik, nulisnya : (penulisan 2)
ThisWorkbook.
ThisWorkbook.
Kalau bahasa pemrogramannya betul-betul full berbasis OOP, maka penulisan 2
yang bisa dijalankan dan semua penulisan 1 akan error.
Contoh di OpenOffice.org Calc untuk kasus yang sama, harus ditulis :
ThisComponent.
12345
ThisComponent.
= "BeExcel"
banyak yang bilang, OOP nulisnya panjang banget.... xixixixi... (kan bisa
disimpen dalam variabel)
udahan dulu ya... kalo ada yang salah, dikoreksi yak...
Wassalam,
Kid.
2013/10/2 zainul_ulum[
Mumpung disinggung tentang OOP kalo nggak salah kepanjangan dari (Object
Oriented Programming)
dan "property set statement"
kelebihan menggunakan statement tersebut jika dibanding dengan menggunakan
statement tersebut?
maturnuwun
-zainul-
From: belajar-excel@
On Behalf Of Mr. Kid
Sent: Wednesday, October 02, 2013 8:55 AM
To: BeExcel
Subject: Re: [belajar-excel] Macro Openoffice
wakakaka...
iya, perlu dicoba dulu.
Kalau di star office waktu doeloe sih bisa. Cuman kadang gak bisa pas udah
berurusan sama userform.
Jadi bikin VBAnya jangan yang rumit ya. Mungkin VBASupport nya akan mengubah
si VBA jadi VBScript kali ya...
Saya gak mudeng dalemannya. Dokumentasinya dikit.
Kalau struktur objectnya, si OO memang lebih bagus dari VBA karena full OOP.
Mungkin nanti kalau dah mulai banyak dokumentasi object model nya akan jadi
lebih enak.
Wassalam,
Kid.
Wed Oct 2, 2013 8:14 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
mas Zain,
*** di definisi class clsGeometri :
'===code dalam class module=====
'==nama class module: clsGeometri
Option Explicit
Private pPanjang As Double
Private pLebar As Double
Public Property Get panjangnya() As Double
panjangnya = pPanjang
End Property
Public Property Let panjangnya(Value As Double)
'panjangnya = Value
pPanjang =value
End Property
Public Property Get lebarnya() As Double
lebarnya = pLebar
End Property
Public Property Let lebarnya(Value As Double)
'lebarnya = Value
pLebar =value
End Property
Wassalam,
Kid.
2013/10/3 zainul_ulum[at]yahoo[dot]com <zainul_ulum@yahoo.com>
> **
>
>
> Terimakasih penjelasannya Mr. Kid.
> Saya juga sudah berkunjung ke tautan yang direkomendasikan tapi belum
> sesuai
> yang saya inginkan.
> berikut gambaran problem yang sedang saya hadapi
> '===code dalam class module=====
> '==nama class module: clsGeometri
>
> Option Explicit
> Private pPanjang As Double
> Private pLebar As Double
> Public Property Get panjangnya() As Double
> panjangnya = pPanjang
> End Property
> Public Property Let panjangnya(Value As Double)
> panjangnya = Value
> End Property
>
> Public Property Get lebarnya() As Double
> lebarnya = pLebar
> End Property
>
> Public Property Let lebarnya(Value As Double)
> lebarnya = Value
> End Property
>
> '=====code dalam standard module
> Option Explicit
> 'dalam standard module,biasanya saya menggunakan declarasi type untuk
> membuat object baru
> Type kotak
> panjang As Double
> lebar As Double
> End Type
>
> Sub MembuatObjectDiVbaType01()
> 'membuat objeck lapangan dengan type kotak
> Dim lapangan As kotak
>
> 'memasukkan parameter panjang dan lebar ke objek lapangan
> lapangan.panjang = 100
> lapangan.lebar = 50
>
> 'menghitung luas lapangan
> Dim luas As Double
> luas = lapangan.panjang * lapangan.lebar
> MsgBox luas
>
> End Sub
>
> 'kemudian saya coba membuat objcet yang sama menggunakan dengan mengambil
> 'property yang telah dibuat di class module [clsGeometri]
>
> Sub MembuatObjectDiVbaType02()
> Dim oLapangan As New clsGeometri
>
> 'memasukkan parameter panjang ke object lapangan
> oLapangan.lebarnya = 100#
> oLapangan.panjangnya = 50#
>
> 'menghitung luas lapangan
> Dim luas As Double
> luas = oLapangan.lebarnya * oLapangan.panjangnya
> Debug.Print luas
> End Sub
>
> 'tanya:
> 'kenapa ada pesan error saat saya jalankan procedure
> MembuatObjectDiVbaType02?
> 'terimakasih
> '-zainul-
>
> From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
> On Behalf Of Mr. Kid
> Sent: Wednesday, October 02, 2013 10:12 PM
> To: BeExcel
> Subject: Re: [belajar-excel] OOP (was Macro Openoffice)
>
>
> hehehe...
> mau mulai dari mana ya..
> yang sederhana saja.
> disemua module.
> Pada dasarnya prosedur property (ada Get, ada Set atau Let) digunakan untuk
> berinteraksi dengan sebuah atribut yang isinya adalah suatu nilai tertentu
> (bisa berupa object atau nilai skalar). Kalau dimirip-miripin alias
> disimpelkan secara teknis, maka prosedur property adalah cara untuk
> berinteraksi dengan variabel yang diterkait.
> Jadi, misal ada variabel level module (private) bernama mMyVar, maka akses
> ke variabel ini bisa diatur menggunakan prosedur property. Get untuk ambil,
> Set (khusus object) atau Let untuk mengisi si variabel mMyVar.
> Alhasil, misal ada property bernama MyVariable yang berisi prosedur
> properti
> Get, maka isi mMyVar bisa diambil dengan menyebut nama prosedur property
> seperti memanggil sebuah variabel.
> Misal : mau ambil nilai mMyVar yang punya properti dan disimpan ke variabel
> baru bernama sKerja, maka bisa langsung :
> sKerja = MyVariable
> Sekarang bahas yang umum dipakai.
> Pemakaian prosedur property secara luas adalah pada class module, alias
> digunakan untuk menentukan atau membentuk properti suatu object yang
> dibentuk melalui class tersebut.
>
> Contoh : kenal dengan Range di Excel ? Pernah isi nilai atau ambil nilai
> dari si range ? mestinya pernah kan ya... :)
> kira-kira untuk hal isi didalam range akan punya cerita gini :
>
> Didalamnya Excel sana, Range adalah nama sebuah Class. Dia punya (anggap
> saja) sebuah variabel khusus milik si class yang bernama mValue. Nilai yang
> disimpan dalam mValue, boleh diakses semua object yang dibentuk melalui
> class Range ini melalui property object bernama Value. Didalam class Range,
> property bernama Value ini didefinisikan dengan prosedur property Get untuk
> ambil nilai dan prosedur property Let untuk mengisi nilai.
> Kemudian di VBE, pada sebuah module, ada pembuatan variabel object dari
> class Range. Nama variabel object itu dinamakan misalnya rngData.
> Bunyi pembuatannya begini :
> Dim rngData As Range 'artinya, buatkan benda bernama rngData yang
> wujudnya
> memiliki spesifikasi yang dijabarkan dalam class Range
> Jadi, dalam rngData, akan ada property bernama Value untuk bisa mengakses
> variabel bernama mValue milik si benda bernama rngData.
> Kalau ada pembuatan object baru lagi
> Dim rngKriteria As Range
> Maka, dalam rngKriteria akan ada property bernama Value untuk bisa
> mengakses
> variabel bernama mValue milik si benda bernama rngKriteria
> Si variabel sudah terbentuk tapi belum ada isi benda aslinya, karena si
> benda asli kan dipakai user di worksheet. Jadi, si rngData akan diisi
> dengan
> sebuah range yang ada di worksheet aktif, misal range A1.
> Set rngData = Range("a1") ' "sit sit, ikutan pakai range A1 dong", kata
> si rngData -> kalau error, berarti rngData salah omong.
>
> Sekarang, kalau mau mengisi nilai range A1 dengan nilai 12345, maka sama
> saja akan mengisi variabel mValue milik si rngData. Aksesnya adalah melalui
> properti bernama Value, yang biasanya ditulis begini :
> rngData.Value = 12345
> proses ini sebenarnya, menjalankan prosedur property Let bernama Value
> milik
> si rngData dengan mengirim nilai 12345.
> meskipun menjalankan prosedur, penggunaannya seperti memakai variabel biasa
> kan. Sisi kiri sama dengan diisi sisi kanan sama dengan.
>
> Kalau mau ambil nilai mValue milik si rngData (saat ini berisi 12345) dan
> disimpan ke variabel bernama lNilaiku, akan berbunyi :
> Dim lNilaiku As Long
> lNilaiku = rngData.Value
>
> *1) Hal ini adalah salah satu kelebihan prosedur property dalam sebuah
> property object dan hanya menjadi milik si class module jika prosedur
> property nya ditulis untuk class module tersebut. Jadi, class module lain
> bisa saja memiliki property bernama Value juga tapi pemiliknya beda.
>
> Contoh, ada property Value milik class Range (boleh dibaca milik Range),
> ada
> property value milik control TextBox. Sama-sama property value tapi beda
> pemilik. Di class Range ada prosedur properti untuk property bernama Value.
> Di class TextBox juga ada prosedur property bernama Value.
>
> Bagaimana kalau mValue diset gak pakai property ? bisa gak ? -- bisa kok,
> kita coba saja ya, biar terasa ribetnya --
> Kalau ndak pakai prosedur property, berarti pakai prosedur Sub atau
> Function
> yang sering disebut methods.
> Jadi didalam class Range nanti akan ada 2 methods baru untuk bisa menyimpan
> nilai kedalam variabel mValue, yaitu :
> public sub IsiValue( vNilainya as variant ) 'untuk isi nilai ke mValue
> mvalue=vnilainya
> end sub
> public function AmbilValue() as variant 'untuk ambil nilai dari
> mValue
> AmbilValue = mvalue
> end sub
>
> sampai disini, sudah akan tampak bahwa untuk ngurusin si mValue butuh 2
> nama, yaitu IsiValue (mengisi alias setara property Let) dan AmbilNilai
> (mengambil alias setara property Get). Alhasil, kalau nulis script, setelah
> ketik rngData lalu ketik titik akan muncul 2 nama. Harus pilih yang bener,
> mau isivalue atau ambilvalue.
> *2) Kalau pakai property Get dan Let, namanya akan jadi property object,
> dan
> hanya ada sebijik saja yaitu Value.
> Bagaimana cara isi nilai ke mValue dan ambil nilai dari mValue milik si
> rngData ?
> rngdata.IsiValue 12345 'isi nilai ke mValue milik rngData
> lNilaiku = rngdata.ambilvalue 'ambil nilai mvalue milik rngData
>
> *3) Ada perbedaan penulisan dalam mengisi nilai dengan mengambil nilai,
> sehingga membutuhkan ketelitian lebih tinggi untuk bisa tahu dimana proses
> mengisi nilainya dan dimana proses ambil nilainya.
>
> Kira-kira demikianlah beberapa keuntungan prosedur property dalam membentuk
> property object.
> Tentang bagaimana membentuk property object atau cara penggunaan prosedur
> property Get dan (Set atau Let) ada diblog milis disini.
>
> Bahas OOP nya ndak usah banyak-banyak ya...
> Salah satu ciri khas sederhana OOP, pemakaiannya harus ditulis lengkap.
> Contoh : (penulisan 1)
> di VBA, untuk isi range A1 dengan nilai 12345 dan B1 diisi dengan teks
> 'BeExcel39; bisa dengan :
> Range("a1").Value = 12345 'workbook aktif, di sheet yang aktif, di
> range A1, isi properti bernama Value dengan 12345
> atau
> Range("a1") = 12345 'workbook aktif, di sheet yang aktif, di range A1,
> isi properti default si object (yaitu yang bernama Value) dengan 12345
>
> Range("b1").value = "BeExcel"
> atau
> Range("b1") = "BeExcel"
>
> Kalau pakai OOP yang baik, nulisnya : (penulisan 2)
> ThisWorkbook.ActiveSheet.Range("a1").Value = 12345
> ThisWorkbook.ActiveSheet.Range("b1").Value = "BeExcel"
> Kalau bahasa pemrogramannya betul-betul full berbasis OOP, maka penulisan 2
> yang bisa dijalankan dan semua penulisan 1 akan error.
>
> Contoh di OpenOffice.org Calc untuk kasus yang sama, harus ditulis :
> ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("A1").Value
> =
> 12345
> ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B1").String
> = "BeExcel"
>
> banyak yang bilang, OOP nulisnya panjang banget.... xixixixi... (kan bisa
> disimpen dalam variabel)
>
> udahan dulu ya... kalo ada yang salah, dikoreksi yak...
> Wassalam,
> Kid.
>
> 2013/10/2 zainul_ulum[at]yahoo[dot]com <zainul_ulum@yahoo.com>
>
> Mumpung disinggung tentang OOP kalo nggak salah kepanjangan dari (Object
> Oriented Programming), minta tolong diulas tentang "property get statement"
> dan "property set statement".
> kelebihan menggunakan statement tersebut jika dibanding dengan menggunakan
> statement tersebut?
>
> maturnuwun
> -zainul-
>
> From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
> On Behalf Of Mr. Kid
> Sent: Wednesday, October 02, 2013 8:55 AM
> To: BeExcel
> Subject: Re: [belajar-excel] Macro Openoffice
>
> wakakaka...
> iya, perlu dicoba dulu.
> Kalau di star office waktu doeloe sih bisa. Cuman kadang gak bisa pas udah
> berurusan sama userform.
> Jadi bikin VBAnya jangan yang rumit ya. Mungkin VBASupport nya akan
> mengubah
> si VBA jadi VBScript kali ya...
> Saya gak mudeng dalemannya. Dokumentasinya dikit.
>
> Kalau struktur objectnya, si OO memang lebih bagus dari VBA karena full
> OOP.
> Mungkin nanti kalau dah mulai banyak dokumentasi object model nya akan jadi
> lebih enak.
>
> Wassalam,
> Kid.
>
>
>
*** di definisi class clsGeometri :
'===code dalam class module=====
'==nama class module: clsGeometri
Option Explicit
Private pPanjang As Double
Private pLebar As Double
Public Property Get panjangnya() As Double
panjangnya = pPanjang
End Property
Public Property Let panjangnya(Value As Double)
'panjangnya = Value
pPanjang =value
End Property
Public Property Get lebarnya() As Double
lebarnya = pLebar
End Property
Public Property Let lebarnya(Value As Double)
'lebarnya = Value
pLebar =value
End Property
Wassalam,
Kid.
2013/10/3 zainul_ulum[
> **
>
>
> Terimakasih penjelasannya Mr. Kid.
> Saya juga sudah berkunjung ke tautan yang direkomendasikan tapi belum
> sesuai
> yang saya inginkan.
> berikut gambaran problem yang sedang saya hadapi
> '===code dalam class module=====
> '==nama class module: clsGeometri
>
> Option Explicit
> Private pPanjang As Double
> Private pLebar As Double
> Public Property Get panjangnya() As Double
> panjangnya = pPanjang
> End Property
> Public Property Let panjangnya(Value As Double)
> panjangnya = Value
> End Property
>
> Public Property Get lebarnya() As Double
> lebarnya = pLebar
> End Property
>
> Public Property Let lebarnya(Value As Double)
> lebarnya = Value
> End Property
>
> '=====code dalam standard module
> Option Explicit
> 'dalam standard module,biasanya saya menggunakan declarasi type untuk
> membuat object baru
> Type kotak
> panjang As Double
> lebar As Double
> End Type
>
> Sub MembuatObjectDiVbaT
> 'membuat objeck lapangan dengan type kotak
> Dim lapangan As kotak
>
> 'memasukkan parameter panjang dan lebar ke objek lapangan
> lapangan.panjang = 100
> lapangan.lebar = 50
>
> 'menghitung luas lapangan
> Dim luas As Double
> luas = lapangan.panjang * lapangan.lebar
> MsgBox luas
>
> End Sub
>
> 'kemudian saya coba membuat objcet yang sama menggunakan dengan mengambil
> 'property yang telah dibuat di class module [clsGeometri]
>
> Sub MembuatObjectDiVbaT
> Dim oLapangan As New clsGeometri
>
> 'memasukkan parameter panjang ke object lapangan
> oLapangan.lebarnya = 100#
> oLapangan.panjangny
>
> 'menghitung luas lapangan
> Dim luas As Double
> luas = oLapangan.lebarnya * oLapangan.panjangny
> Debug.Print luas
> End Sub
>
> 'tanya:
> 'kenapa ada pesan error saat saya jalankan procedure
> MembuatObjectDiVbaT
> 'terimakasih
> '-zainul-
>
> From: belajar-excel@
> On Behalf Of Mr. Kid
> Sent: Wednesday, October 02, 2013 10:12 PM
> To: BeExcel
> Subject: Re: [belajar-excel] OOP (was Macro Openoffice)
>
>
> hehehe...
> mau mulai dari mana ya..
> yang sederhana saja.
> disemua module.
> Pada dasarnya prosedur property (ada Get, ada Set atau Let) digunakan untuk
> berinteraksi dengan sebuah atribut yang isinya adalah suatu nilai tertentu
> (bisa berupa object atau nilai skalar). Kalau dimirip-miripin alias
> disimpelkan secara teknis, maka prosedur property adalah cara untuk
> berinteraksi dengan variabel yang diterkait.
> Jadi, misal ada variabel level module (private) bernama mMyVar, maka akses
> ke variabel ini bisa diatur menggunakan prosedur property. Get untuk ambil,
> Set (khusus object) atau Let untuk mengisi si variabel mMyVar.
> Alhasil, misal ada property bernama MyVariable yang berisi prosedur
> properti
> Get, maka isi mMyVar bisa diambil dengan menyebut nama prosedur property
> seperti memanggil sebuah variabel.
> Misal : mau ambil nilai mMyVar yang punya properti dan disimpan ke variabel
> baru bernama sKerja, maka bisa langsung :
> sKerja = MyVariable
> Sekarang bahas yang umum dipakai.
> Pemakaian prosedur property secara luas adalah pada class module, alias
> digunakan untuk menentukan atau membentuk properti suatu object yang
> dibentuk melalui class tersebut.
>
> Contoh : kenal dengan Range di Excel ? Pernah isi nilai atau ambil nilai
> dari si range ? mestinya pernah kan ya... :)
> kira-kira untuk hal isi didalam range akan punya cerita gini :
>
> Didalamnya Excel sana, Range adalah nama sebuah Class. Dia punya (anggap
> saja) sebuah variabel khusus milik si class yang bernama mValue. Nilai yang
> disimpan dalam mValue, boleh diakses semua object yang dibentuk melalui
> class Range ini melalui property object bernama Value. Didalam class Range,
> property bernama Value ini didefinisikan dengan prosedur property Get untuk
> ambil nilai dan prosedur property Let untuk mengisi nilai.
> Kemudian di VBE, pada sebuah module, ada pembuatan variabel object dari
> class Range. Nama variabel object itu dinamakan misalnya rngData.
> Bunyi pembuatannya begini :
> Dim rngData As Range 'artinya, buatkan benda bernama rngData yang
> wujudnya
> memiliki spesifikasi yang dijabarkan dalam class Range
> Jadi, dalam rngData, akan ada property bernama Value untuk bisa mengakses
> variabel bernama mValue milik si benda bernama rngData.
> Kalau ada pembuatan object baru lagi
> Dim rngKriteria As Range
> Maka, dalam rngKriteria akan ada property bernama Value untuk bisa
> mengakses
> variabel bernama mValue milik si benda bernama rngKriteria
> Si variabel sudah terbentuk tapi belum ada isi benda aslinya, karena si
> benda asli kan dipakai user di worksheet. Jadi, si rngData akan diisi
> dengan
> sebuah range yang ada di worksheet aktif, misal range A1.
> Set rngData = Range("
> si rngData -> kalau error, berarti rngData salah omong.
>
> Sekarang, kalau mau mengisi nilai range A1 dengan nilai 12345, maka sama
> saja akan mengisi variabel mValue milik si rngData. Aksesnya adalah melalui
> properti bernama Value, yang biasanya ditulis begini :
> rngData.Value = 12345
> proses ini sebenarnya, menjalankan prosedur property Let bernama Value
> milik
> si rngData dengan mengirim nilai 12345.
> meskipun menjalankan prosedur, penggunaannya seperti memakai variabel biasa
> kan. Sisi kiri sama dengan diisi sisi kanan sama dengan.
>
> Kalau mau ambil nilai mValue milik si rngData (saat ini berisi 12345) dan
> disimpan ke variabel bernama lNilaiku, akan berbunyi :
> Dim lNilaiku As Long
> lNilaiku = rngData.Value
>
> *1) Hal ini adalah salah satu kelebihan prosedur property dalam sebuah
> property object dan hanya menjadi milik si class module jika prosedur
> property nya ditulis untuk class module tersebut. Jadi, class module lain
> bisa saja memiliki property bernama Value juga tapi pemiliknya beda.
>
> Contoh, ada property Value milik class Range (boleh dibaca milik Range),
> ada
> property value milik control TextBox. Sama-sama property value tapi beda
> pemilik. Di class Range ada prosedur properti untuk property bernama Value.
> Di class TextBox juga ada prosedur property bernama Value.
>
> Bagaimana kalau mValue diset gak pakai property ? bisa gak ? -- bisa kok,
> kita coba saja ya, biar terasa ribetnya --
> Kalau ndak pakai prosedur property, berarti pakai prosedur Sub atau
> Function
> yang sering disebut methods.
> Jadi didalam class Range nanti akan ada 2 methods baru untuk bisa menyimpan
> nilai kedalam variabel mValue, yaitu :
> public sub IsiValue( vNilainya as variant ) 'untuk isi nilai ke mValue
> mvalue=vnilainya
> end sub
> public function AmbilValue() as variant 'untuk ambil nilai dari
> mValue
> AmbilValue = mvalue
> end sub
>
> sampai disini, sudah akan tampak bahwa untuk ngurusin si mValue butuh 2
> nama, yaitu IsiValue (mengisi alias setara property Let) dan AmbilNilai
> (mengambil alias setara property Get). Alhasil, kalau nulis script, setelah
> ketik rngData lalu ketik titik akan muncul 2 nama. Harus pilih yang bener,
> mau isivalue atau ambilvalue.
> *2) Kalau pakai property Get dan Let, namanya akan jadi property object,
> dan
> hanya ada sebijik saja yaitu Value.
> Bagaimana cara isi nilai ke mValue dan ambil nilai dari mValue milik si
> rngData ?
> rngdata.IsiValue 12345 'isi nilai ke mValue milik rngData
> lNilaiku = rngdata.ambilvalue 'ambil nilai mvalue milik rngData
>
> *3) Ada perbedaan penulisan dalam mengisi nilai dengan mengambil nilai,
> sehingga membutuhkan ketelitian lebih tinggi untuk bisa tahu dimana proses
> mengisi nilainya dan dimana proses ambil nilainya.
>
> Kira-kira demikianlah beberapa keuntungan prosedur property dalam membentuk
> property object.
> Tentang bagaimana membentuk property object atau cara penggunaan prosedur
> property Get dan (Set atau Let) ada diblog milis disini.
>
> Bahas OOP nya ndak usah banyak-banyak ya...
> Salah satu ciri khas sederhana OOP, pemakaiannya harus ditulis lengkap.
> Contoh : (penulisan 1)
> di VBA, untuk isi range A1 dengan nilai 12345 dan B1 diisi dengan teks
> 'BeExcel
> Range("
> range A1, isi properti bernama Value dengan 12345
> atau
> Range("
> isi properti default si object (yaitu yang bernama Value) dengan 12345
>
> Range("
> atau
> Range("
>
> Kalau pakai OOP yang baik, nulisnya : (penulisan 2)
> ThisWorkbook.
> ThisWorkbook.
> Kalau bahasa pemrogramannya betul-betul full berbasis OOP, maka penulisan 2
> yang bisa dijalankan dan semua penulisan 1 akan error.
>
> Contoh di OpenOffice.org Calc untuk kasus yang sama, harus ditulis :
> ThisComponent.
> =
> 12345
> ThisComponent.
> = "BeExcel"
>
> banyak yang bilang, OOP nulisnya panjang banget.... xixixixi... (kan bisa
> disimpen dalam variabel)
>
> udahan dulu ya... kalo ada yang salah, dikoreksi yak...
> Wassalam,
> Kid.
>
> 2013/10/2 zainul_ulum[
>
> Mumpung disinggung tentang OOP kalo nggak salah kepanjangan dari (Object
> Oriented Programming)
> dan "property set statement"
> kelebihan menggunakan statement tersebut jika dibanding dengan menggunakan
> statement tersebut?
>
> maturnuwun
> -zainul-
>
> From: belajar-excel@
> On Behalf Of Mr. Kid
> Sent: Wednesday, October 02, 2013 8:55 AM
> To: BeExcel
> Subject: Re: [belajar-excel] Macro Openoffice
>
> wakakaka...
> iya, perlu dicoba dulu.
> Kalau di star office waktu doeloe sih bisa. Cuman kadang gak bisa pas udah
> berurusan sama userform.
> Jadi bikin VBAnya jangan yang rumit ya. Mungkin VBASupport nya akan
> mengubah
> si VBA jadi VBScript kali ya...
> Saya gak mudeng dalemannya. Dokumentasinya dikit.
>
> Kalau struktur objectnya, si OO memang lebih bagus dari VBA karena full
> OOP.
> Mungkin nanti kalau dah mulai banyak dokumentasi object model nya akan jadi
> lebih enak.
>
> Wassalam,
> Kid.
>
>
>
Wed Oct 2, 2013 6:48 pm (PDT) . Posted by:
"Bagus" bagus4bls
Coba ini pak..
=IF(AND(OR(A1="PS",A1="PM",A1="PP"),B1>=3),3,IF(AND(OR(A1="PS",A1="PM",A1="PP"),B1>=2),2,IF(AND(OR(A1="PS",A1="PM",A1="PP"),B1>=1),1,"")))
Wassalam
~ Bagus ~
----- Original Message -----
From: <a.hafidz@yahoo.co.id>
To: <belajar-excel@yahoogroups.com>
Sent: Thursday, October 03, 2013 2:28 AM
Subject: [belajar-excel] Kombinasi rumus IF, OR, AND
> Dear all master be-eXcel
> salamat malam menjelang pagi
>
> Mohon pencerahannya apakah sdh benar penulisannya /peletakan fungsi rumus ini :
>
> Di asumsikan rumus di tulis pada cell C1
>
> =IF(OR(AND(A1="PS",A1="PM",A1="PP"),(B1)>=1,"1",(B1)>=2,"2",(B1)>=3,"3"))
>
> Dengan logika seperti berikut :
> Jika A1 = PS atau A1 = PM atau A1 = PP dan jika B1>=1 maka hasilnya 1 dan jika B1>=2 maka hasilnya 2 dan jika B1>=3 maka hasilnya 3
>
> Kurang lebih seperti itu logika yg di inginkan, so' mohon pencerhannya yah....
>
> Trims.
> Sent from my BlackBerry®
> powered by Sinyal Kuat INDOSAT
>
> ------------------------------------
>
> =====================================================================
> Untuk memudahkan tim penyusun materi Belajar Excel yang lebih sesuai kebutuhan member, silakan ungkapkan permasalahan yang kerap ditemui dalam menggunakan Excel sehari-hari atau hal-hal yang ingin dipelajari dalam jangka dekat ini. Mohon diprioritaskan dari yang sering ditemui sampai yang ingin dipelajari.
> Isi sesuai kelompoknya (fitur-fitur, formula-formula tertentu yang masih membingungkan, otomasi atau pemrograman dalam Excel [Macro - VBA], hal lainnya yang membuat Anda kesulitan dalam mempelajari Excel).
> Boleh mengisi berulang kali untuk menambah uneg-uneg yang ingin diungkapkan.
> Link untuk menuangkan seluruh uneg-uneg tersebut ada di :
> http://tech.groups.yahoo.com/group/belajar-excel/database?method=addRecord&tbl=3
> =====================================================================
> Langkah kecil Anda dalam mengisi database bisa menjadi langkah pertama yang bermanfaat besar untuk kita semua.
> =====================================================================
>
> ----------------------------------------------------------
> 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
> ----------------------------------------------------------Yahoo! Groups Links
>
>
>
>
=IF(AND(OR(A1=
Wassalam
~ Bagus ~
----- Original Message -----
From: <a.hafidz@yahoo.
To: <belajar-excel@
Sent: Thursday, October 03, 2013 2:28 AM
Subject: [belajar-excel] Kombinasi rumus IF, OR, AND
> Dear all master be-eXcel
> salamat malam menjelang pagi
>
> Mohon pencerahannya apakah sdh benar penulisannya /peletakan fungsi rumus ini :
>
> Di asumsikan rumus di tulis pada cell C1
>
> =IF(OR(AND(A1=
>
> Dengan logika seperti berikut :
> Jika A1 = PS atau A1 = PM atau A1 = PP dan jika B1>=1 maka hasilnya 1 dan jika B1>=2 maka hasilnya 2 dan jika B1>=3 maka hasilnya 3
>
> Kurang lebih seperti itu logika yg di inginkan, so' mohon pencerhannya yah....
>
> Trims.
> Sent from my BlackBerry®
> powered by Sinyal Kuat INDOSAT
>
> ------------
>
> ============
> Untuk memudahkan tim penyusun materi Belajar Excel yang lebih sesuai kebutuhan member, silakan ungkapkan permasalahan yang kerap ditemui dalam menggunakan Excel sehari-hari atau hal-hal yang ingin dipelajari dalam jangka dekat ini. Mohon diprioritaskan dari yang sering ditemui sampai yang ingin dipelajari.
> Isi sesuai kelompoknya (fitur-fitur, formula-formula tertentu yang masih membingungkan, otomasi atau pemrograman dalam Excel [Macro - VBA], hal lainnya yang membuat Anda kesulitan dalam mempelajari Excel).
> Boleh mengisi berulang kali untuk menambah uneg-uneg yang ingin diungkapkan.
> Link untuk menuangkan seluruh uneg-uneg tersebut ada di :
> http://tech.
> ============
> Langkah kecil Anda dalam mengisi database bisa menjadi langkah pertama yang bermanfaat besar untuk kita semua.
> ============
>
> ------------
> bergabung ke milis (subscribe), kirim mail kosong ke:
> belajar-excel-
>
> posting ke milis, kirimkan ke:
> belajar-excel@
>
> berkunjung ke web milis
> http://tech.
>
> melihat file archive / mendownload lampiran
> http://www.mail-
> atau (sejak 25-Apr-2011) bisa juga di :
> http://milis-
>
> menghubungi moderators & owners: belajar-excel-
>
> keluar dari membership milis (UnSubscribe)
> kirim mail kosong ke belajar-excel-
> ------------
>
>
>
>
Wed Oct 2, 2013 7:34 pm (PDT) . Posted by:
ferry_2005_skom
Cara lainnya mungkin seperti ini :
=IF(OR(A1="
Karena saya lihat syaratnya adalah jika B1 = 1, maka 1 B1 =
2, maka 2 B1 >= 3, maka 3 Dengan menggunakan fungsi
MIN(B1,3), maka jika B1 < 3, maka nilai yang muncul adalah nilai
B1, jika lebih dari sama dengan 3, maka yang akan dimunculkan
adalah 3 Semoga membantu Thanks Ferry ---In
belajar-excel@
wrote:
Coba ini pak..
=IF(AND(OR(A1=
="PM"
,1,""
----- From: <a.hafidz@
<belajar-excel@
<mailto:belajar-excel@
03, 2013 2:28 AM Subject: [belajar-excel] Kombinasi rumus IF,
OR, AND
> Dear all master be-eXcel
> salamat malam menjelang pagi
>
> Mohon pencerahannya apakah sdh benar penulisannya /peletakan
fungsi rumus ini :
>
> Di asumsikan rumus di tulis pada cell C1
>
>
=IF(OR(AND(A1=
=3,"3"
>
> Dengan logika seperti berikut :
> Jika A1 = PS atau A1 = PM atau A1 = PP dan jika B1>=1 maka
hasilnya 1 dan jika B1>=2 maka hasilnya 2 dan jika B1>=3 maka
hasilnya 3
>
> Kurang lebih seperti itu logika yg di inginkan, so' mohon
pencerhannya yah....
>
> Trims.
> Sent from my BlackBerry®
> powered by Sinyal Kuat INDOSAT
>
> ------------
>
>
============
====
> Untuk memudahkan tim penyusun materi Belajar Excel yang lebih
sesuai kebutuhan member, silakan ungkapkan permasalahan yang
kerap ditemui dalam menggunakan Excel sehari-hari atau hal-hal
yang ingin dipelajari dalam jangka dekat ini. Mohon
diprioritaskan dari yang sering ditemui sampai yang ingin
dipelajari.
> Isi sesuai kelompoknya (fitur-fitur, formula-formula tertentu
yang masih membingungkan, otomasi atau pemrograman dalam Excel
[Macro - VBA], hal lainnya yang membuat Anda kesulitan dalam
mempelajari Excel).
> Boleh mengisi berulang kali untuk menambah uneg-uneg yang ingin
diungkapkan.
> Link untuk menuangkan seluruh uneg-uneg tersebut ada di :
>
href="http://tech.
ethod=addRecord&tbl
-excel/database?
>
============
====
> Langkah kecil Anda dalam mengisi database bisa menjadi langkah
pertama yang bermanfaat besar untuk kita semua.
>
============
====
>
>
------------
----
> bergabung ke milis (subscribe), kirim mail kosong ke:
>
href="mailto:belajar-excel-
el-subscribe@
>
> posting ke milis, kirimkan ke:
>
href="mailto:belajar-excel@
oups.com
>
> berkunjung ke web milis
>
href="http://tech.
http://tech.
>
> melihat file archive / mendownload lampiran
>
href="http://www.mail-
>http://www.mail-
> atau (sejak 25-Apr-2011) bisa juga di :
>
href="http://milis-
ilis-belajar-
>
> menghubungi moderators & owners:
href="mailto:belajar-excel-
wner@yahoogroups.
>
> keluar dari membership milis (UnSubscribe)
> kirim mail kosong ke belajar-excel-
<mailto:belajar-excel-
>
------------
----Yahoo! Groups Links
>
> <*> To visit your group on the web, go to:
>
href="http://groups.
.yahoo.com/group/
>
> <*> Your email settings:
> Individual Email | Traditional
>
> <*> To change settings online go to:
> http://groups.
<http://groups.
> (Yahoo! ID required)
>
> <*> To change settings via email:
>
href="mailto:belajar-excel-
digest@yahoogroups.
>
href="mailto:belajar-excel-
excel-fullfeatured@
>
> <*> To unsubscribe from this group, send an email to:
>
href="mailto:belajar-excel-
xcel-unsubscribe@
>
> <*> Your use of Yahoo! Groups is subject to:
>
href="http://info.
fo.yahoo.com/
>
>
Wed Oct 2, 2013 7:16 pm (PDT) . Posted by:
"Iga Aprilia" iga.april
miss jan raisin aq mo tnya klo misalnya aq mau nambahin 2
combobox lg dalam userform tsb trus aq uda buat coding.y
ini contoh codingnya
private sub userform_initialize()
with userform1
.cb1.additem "OG1"
.cb1.additem."OG2"
end with
wih userform1
.cb2.additem "West"
.cb2.additem "East"
problemnya waktu mau debug dan running koq gg bsa run
"variable not defined"
mohon bantuan penjelasannya y??
----------------- Mods -------------------
coba lampirkan contoh workbooknya
kalo mengutip kata-kata dari MJR,
"biar gak tebak-tebak buah manggis"
---------------------------------------------
From: Jan Raisin
To: belajar-excel@yahoogroups.com
Sent: Wednesday, October 2, 2013 4:30 PM
Subject: Re: [belajar-excel] cara membuar coding pada combobox
dan text box [1 Attachment]
Hai Iga,
coba script berikut ini:
Private Sub cboGlass_Change() Dim idx As Integer
idx = cboGlass.ListIndextxtGlass = Cells(idx + 2, 2).Value End
Sub
Private Sub UserForm_Activate() Dim rgData As Range, celData As
RangeDim lRow As Long Dim idx As Integer
lRow = Cells(Rows.Count, 1).End(xlUp).RowSet rgData =
Range(Cells(2, 1), Cells(lRow, 1)) For Each celData In
rgData cboGlass.AddItem celData.Value, idx
idx = idx + 1Next celData End Sub
file terlampir
Salam,
-Miss Jan Raisin-
Pada 2 Oktober 2013 16.05, Iga Aprilia <iga.april@yahoo.com
<mailto:iga.april@yahoo.com> > menulis:
dear all
saya coba membuat sebuah user form dengan menambahkan combo box
dan textbox apabila saya meng-klik combo box maka secara
otomatis pada text box glass-name muncul nama yang ada pada
database glass name. yang ingin saya tanyakan bagaimana coding
dari program tersebut tanpa menggunakan command button??
terima kasih
iga _
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381 --
#ygrps-yiv-739364438yiv6604195381ygrp-mkp { border:1px solid
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-mkp hr { border:1px solid
#d8d8d8;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-mkp
#ygrps-yiv-739364438yiv6604195381hd {
color:#628c2a;font-size:85%;font-weight:700;line-height:122%;marg92;
in:10px 0;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-mkp
#ygrps-yiv-739364438yiv6604195381ads { margin-bottom:10px;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-mkp
.ygrps-yiv-739364438yiv6604195381ad { padding:0 0;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-mkp
.ygrps-yiv-739364438yiv6604195381ad p { margin:0;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-mkp
.ygrps-yiv-739364438yiv6604195381ad a {
color:#0000ff;text-decoration:none;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-sponsor
#ygrps-yiv-739364438yiv6604195381ygrp-lc { font-family:Arial;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-sponsor
#ygrps-yiv-739364438yiv6604195381ygrp-lc
#ygrps-yiv-739364438yiv6604195381hd { margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381ygrp-sponsor
#ygrps-yiv-739364438yiv6604195381ygrp-lc
.ygrps-yiv-739364438yiv6604195381ad {
margin-bottom:10px;padding:0 0;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381actions {
font-family:Verdana;font-size:11px;padding:10px 0;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381activity {
background-color:#e0ecee;float:left;font-family:Verdana;font-size92;
:10px;padding:10px;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381activity span {
font-weight:700;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381activity span:first-child {
text-transform:uppercase;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381activity span a {
color:#5085b6;text-decoration:none;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381activity span span {
color:#ff7900;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
#ygrps-yiv-739364438yiv6604195381activity span
.ygrps-yiv-739364438yiv6604195381underline {
text-decoration:underline;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381attach {
clear:both;display:table;font-family:Arial;font-size:12px;padding92;
:10px 0;width:400px;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381attach div a {
text-decoration:none;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381attach img {
border:none;padding-right:5px;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381attach label {
display:block;margin-bottom:5px;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381attach label a {
text-decoration:none;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381 blockquote { margin:0 0 0 4px;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381bold {
font-family:Arial;font-size:13px;font-weight:700;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
.ygrps-yiv-739364438yiv6604195381bold a { text-decoration:none;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
dd.ygrps-yiv-739364438yiv6604195381last p a {
font-family:Verdana;font-weight:700;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
dd.ygrps-yiv-739364438yiv6604195381last p span {
margin-right:10px;font-family:Verdana;font-weight:700;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
dd.ygrps-yiv-739364438yiv6604195381last p
span.ygrps-yiv-739364438yiv6604195381yshortcuts {
margin-right:0;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
div.ygrps-yiv-739364438yiv6604195381attach-table div div a {
text-decoration:none;} #ygrps-yiv-739364438
#ygrps-yiv-739364438yiv6604195381
div.ygrps-yiv-739364438yiv6604195381attach-table { width:400px;}
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
div.ygrps-yiv-739364438yiv6604195381file-title a,
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
div.ygrps-yiv-739364438yiv6604195381file-title a:active,
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
div.ygrps-yiv-739364438yiv6604195381file-title a:hover,
#ygrps-yiv-739364438 #ygrps-yiv-739364438yiv6604195381
div.ygrps-yiv-739364438yiv6604195381file-title a:visited {
text-decoration:none;} #ygrps-yiv-739364438
combobox lg dalam userform tsb trus aq uda buat coding.y
ini contoh codingnya
private sub userform_initialize
with userform1
.cb1.additem "OG1"
.cb1.additem.
end with
wih userform1
.cb2.additem "West"
.cb2.additem "East"
problemnya waktu mau debug dan running koq gg bsa run
"variable not defined"
mohon bantuan penjelasannya y??
------------
coba lampirkan contoh workbooknya
kalo mengutip kata-kata dari MJR,
"biar gak tebak-tebak buah manggis"
------------
From: Jan Raisin
To: belajar-excel@
Sent: Wednesday, October 2, 2013 4:30 PM
Subject: Re: [belajar-excel] cara membuar coding pada combobox
dan text box [1 Attachment]
Hai Iga,
coba script berikut ini:
Private Sub cboGlass_Change(
idx = cboGlass.ListIndext
Sub
Private Sub UserForm_Activate(
RangeDim lRow As Long Dim idx As Integer
lRow = Cells(Rows.Count, 1).End(xlUp)
Range(Cells(
rgData cboGlass.AddItem celData.Value, idx
idx = idx + 1Next celData End Sub
file terlampir
Salam,
-Miss Jan Raisin-
Pada 2 Oktober 2013 16.05, Iga Aprilia <iga.april@yahoo.
<mailto:iga.april@yahoo.
dear all
saya coba membuat sebuah user form dengan menambahkan combo box
dan textbox apabila saya meng-klik combo box maka secara
otomatis pada text box glass-name muncul nama yang ada pada
database glass name. yang ingin saya tanyakan bagaimana coding
dari program tersebut tanpa menggunakan command button??
terima kasih
iga _
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#d8d8d8;font-
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#d8d8d8;} #ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
color:#628c2a;
in:10px 0;} #ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
.ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
.ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
.ygrps-yiv-73936443
color:#0000ff;
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
0px;font-weight:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
#ygrps-yiv-73936443
.ygrps-yiv-73936443
margin-bottom:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
font-family:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
background-color:
:10px;padding:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
font-weight:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
text-transform:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
color:#5085b6;
#ygrps-yiv-73936443
#ygrps-yiv-73936443
color:#ff7900;
#ygrps-yiv-73936443
#ygrps-yiv-73936443
.ygrps-yiv-73936443
text-decoration:
#ygrps-yiv-73936443
.ygrps-yiv-73936443
clear:both;display:
:10px 0;width:400px;
#ygrps-yiv-73936443
.ygrps-yiv-73936443
text-decoration:
#ygrps-yiv-73936443
.ygrps-yiv-73936443
border:none;
#ygrps-yiv-73936443
.ygrps-yiv-73936443
display:block;
#ygrps-yiv-73936443
.ygrps-yiv-73936443
text-decoration:
#ygrps-yiv-73936443
#ygrps-yiv-73936443
.ygrps-yiv-73936443
font-family:
#ygrps-yiv-73936443
.ygrps-yiv-73936443
#ygrps-yiv-73936443
dd.ygrps-yiv-
font-family:
#ygrps-yiv-73936443
dd.ygrps-yiv-
margin-right:
#ygrps-yiv-73936443
dd.ygrps-yiv-
span.ygrps-yiv-
margin-right:
#ygrps-yiv-73936443
div.ygrps-yiv-
text-decoration:
#ygrps-yiv-73936443
div.ygrps-yiv-
#ygrps-yiv-73936443
div.ygrps-yiv-
#ygrps-yiv-73936443
div.ygrps-yiv-
#ygrps-yiv-73936443
div.ygrps-yiv-
#ygrps-yiv-73936443
div.ygrps-yiv-
text-decoration: