Kamis, 20 Desember 2012

[belajar-excel] Digest Number 1977

15 New Messages

Digest #1977
1a
filter dengan list by "Faisal Hasman" revolter_ichal
1b
Re: filter dengan list by "hendrik karnadi" hendrikkarnadi
1c
Re: filter dengan list by "Faisal Hasman" revolter_ichal
1d
Re: filter dengan list by "hendrik karnadi" hendrikkarnadi
2a
3a
Re: Data mismatch dimana ya? by "Heru Safrudin" superheruu
3b
Re: Data mismatch dimana ya? by "Mr. Kid" nmkid.family@ymail.com
3c
Re: Data mismatch dimana ya? by "Heru Safrudin" superheruu
3d
Re: Data mismatch dimana ya? by "Heru Safrudin" superheruu
3e
Re: Data mismatch dimana ya? by "Mr. Kid" nmkid.family@ymail.com
3f
Re: Data mismatch dimana ya? by "Mr. Kid" nmkid.family@ymail.com
4b
Re: Metode Penyusutan Saldo Menurun by "hendrik karnadi" hendrikkarnadi
6a
Re: Image control mengacu ke cell by "the_x_mikey@yahoo.com" the_x_mikey

Messages

Wed Dec 19, 2012 4:52 pm (PST) . Posted by:

"Faisal Hasman" revolter_ichal

dear mailing yahoo

bagaimana melakukan filter
dengan menggunakan
drop down list
file terlampir

terima kasih

faisal

Wed Dec 19, 2012 6:18 pm (PST) . Posted by:

"hendrik karnadi" hendrikkarnadi

Dear Faisal,
Coba yang satu ini, serupa tapi tak sama (jumlah kolomnya beda dan hasil Filter di sheet yang sama).
Kalau sdh, silakan diotak atik sesuai keinginan anda

Salam,
Hendrik Karnadi

________________________________
From: Faisal Hasman <revolter_ichal@yahoo.com>
To: excel <belajar-excel@yahoogroups.com>
Sent: Thursday, 20 December 2012, 7:52
Subject: [belajar-excel] filter dengan list


 
dear mailing yahoo

bagaimana melakukan filter
dengan menggunakan
drop down list
file terlampir

terima kasih

faisal

Wed Dec 19, 2012 7:16 pm (PST) . Posted by:

"Faisal Hasman" revolter_ichal

terima kasih pa' Hendrik

________________________________
From: hendrik karnadi <hendrikkarnadi@yahoo.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Thursday, 20 December 2012, 10:18
Subject: Re: [belajar-excel] filter dengan list


 
Dear Faisal,
Coba yang satu ini, serupa tapi tak sama (jumlah kolomnya beda dan hasil Filter di sheet yang sama).
Kalau sdh, silakan diotak atik sesuai keinginan anda

Salam,
Hendrik Karnadi

________________________________
From: Faisal Hasman <revolter_ichal@yahoo.com>
To: excel <belajar-excel@yahoogroups.com>
Sent: Thursday, 20 December 2012, 7:52
Subject: [belajar-excel] filter dengan list


 
dear mailing yahoo

bagaimana melakukan filter
dengan menggunakan
drop down list
file terlampir

terima kasih

faisal

Wed Dec 19, 2012 7:28 pm (PST) . Posted by:

"hendrik karnadi" hendrikkarnadi

Sama2 pak. Ini merupakan jawaban atas petanyaan sebelumnya dari seorang rekan di milis ini atau milis tetangga.

Salam,
Hendrik Karnadi

________________________________
From: Faisal Hasman <revolter_ichal@yahoo.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Thursday, 20 December 2012, 10:16
Subject: Re: [belajar-excel] filter dengan list


 
terima kasih pa' Hendrik

________________________________
From: hendrik karnadi <hendrikkarnadi@yahoo.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Thursday, 20 December 2012, 10:18
Subject: Re: [belajar-excel] filter dengan list


 
Dear Faisal,
Coba yang satu ini, serupa tapi tak sama (jumlah kolomnya beda dan hasil Filter di sheet yang sama).
Kalau sdh, silakan diotak atik sesuai keinginan anda

Salam,
Hendrik Karnadi

________________________________
From: Faisal Hasman <revolter_ichal@yahoo.com>
To: excel <belajar-excel@yahoogroups.com>
Sent: Thursday, 20 December 2012, 7:52
Subject: [belajar-excel] filter dengan list


 
dear mailing yahoo

bagaimana melakukan filter
dengan menggunakan
drop down list
file terlampir

terima kasih

faisal

Wed Dec 19, 2012 5:38 pm (PST) . Posted by:

"Heru Safrudin" superheruu

Ok Sip... Thanks beraattt

_____

From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of Mr. Kid
Sent: 07 Desember 2012 21:33
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Memasukkan nilai dari clipboard ke variable

Pak Heru,

Pakai yang ada di MSO saja ya...
Class nya adalah DataObject milik MS Forms 2. Jadi, pastikan sudah
menambahkan referensi library msforms 2.

Berikut langkahnya :
1. ke VBE (ALT F11)
2. menu Tools -> References -> cari Microsoft Forms 2.0 library -> centang
-> tekan OK
>> jika tidak menemukan dalam list :
menu Insert -> UserForm -> menu Tools -> References -> cek apakah
Microsoft Forms 2.0 library sudah tercentang
-> cari dan centang bila belum -> OK -> hapus UserForm yang dibuat
tadi bila tidak diperlukan dengan klik kanan UserForm pilih remove tekan Yes
>> jika tetap tidak bisa, maka cari di website microsoft untuk download
file fm20.dll, install dan register.
Mungkin juga bisa dengan menambah item yang diinstall melalui MSO
Setup
3. buat sebuah module dengan menu Insert -> Module
4. copas prosedur berikut :
Public Sub PakeClipboard()
Dim oDTObj As MSForms.DataObject
Dim sTeksClipboard As String

Set oDTObj = New MSForms.DataObject
'ambil blok yang akan digunakan saja, misal kirim saja atau ambil saja,
dsb
With oDTObj
'kirim
.SetText "Teksnya"
.PutInClipboard 'kirim ke clipboard

'ambil
.GetFromClipboard 'ambil object dari clipboard
sTeksClipboard = .GetText 'simpan properti text milik
object ke variabel
Debug.Print sTeksClipboard 'lihat isi variabel

'kirim banyak
.SetText "Teks pertama", "myTxt1" 'tata teks yang akan dikirim
.PutInClipboard 'kirim ke clipboard
.SetText "Teks kedua", "myTxt2" 'tata teks yang akan dikirim
.PutInClipboard 'kirim ke clipboard

'ambil banyak berdasar id format
.GetFromClipboard
Debug.Print .GetText("myTxt1"), .GetText("mytxt2") 'lihat isi
clipboard

'simpan ke variabel
sTeksClipboard = "Data pertama" & vbTab & ": " & .GetText("myTxt1")
& vbCrLf & _
"Data kedua" & vbTab & ": " & .GetText("myTxt2")

MsgBox sTeksClipboard, vbInformation, "Isi Variabel" 'lihat isi
variabel
End With
End Sub
5. coba run prosedur tersebut.

Wassalam,
Kid.

2012/12/7 Heru Safrudin <superheruu@gmail.com>

Dear Master,

Bisakah kita mengambil nilai dari clipboard dan memasukkan ke dalam variable
?

Mohon pencerahan dan contohnya

_

Wed Dec 19, 2012 5:39 pm (PST) . Posted by:

"Heru Safrudin" superheruu

Capture Error type mismatch.JPG

Pada 19 Desember 2012 18:59, Mr. Kid <mr.nmkid@gmail.com> menulis:

> **
>
>
> waduh masih error ya...
> masih belum sempet buka file nih...
>
> kira-kira yang bikin error bagian mana ?
> Jangan-jangan yang baris RS.open blablabla
>
>
> Kid.
>
> 2012/12/19 Heru Safrudin <superheruu@gmail.com>
>
>> **
>>
>>
>> Dear Mr.Kid
>>
>> Karena putus asa itu dosa, terpaksa saya kuatkan hati dan beranikan diri
>> untuk terus bertanya.
>> Instruksi Mr. sudah saya laksanakan tapi belum berjalan seperti yg
>> diharapkan
>> Apalagi yang masih salah ? file terlampir
>>
>> Semoga Allah SWT memberi petunjuk dan pertolongan pada orang yg memberi
>> pertolongan
>> ÙˆَالسَّÙ„َامُ عَÙ„َÙŠْÙƒُÙ…ْ ÙˆَرَØ­ْÙ…َØ©ُ اللهِ ÙˆَبَرَÙƒَاتُÙ‡ُ
>>
>>
>> Pada 19 Desember 2012 12:35, Mr. Kid <mr.nmkid@gmail.com> menulis:
>>
>> **
>>>
>>>
>>> Maaf belum sempat lihat langsung dalam file.
>>>
>>> Pokok permasalahannya adalah bagaimana cara Anda menyusun query.
>>> Setiap field yang nilai blank di worksheet :
>>> 1. harus jadi 0 ketika dimasukkan ke field db bertipe numerik
>>> 2. boleh tetap nullstring '' jika field db bertipe text (string)
>>>
>>> Coba pada blok kondisi dalam for each teks1 blabla
>>> diubah jadi :
>>> select case teks1.column
>>> case 4,5 'tipe datetime
>>> teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
>>> case 3,11 'tipe string
>>> teks1="'" & teks1 & "'"
>>> case else 'numerik'
>>> teks1=clng(0 & teks1)
>>> end select
>>> teks=teks & "," & teks1
>>>
>>> kemudian bagian replace teks yag tadinya berbunyi :
>>> teks=replace( blabla )
>>> diganti menjadi :
>>> teks=mid$(teks,2)
>>>
>>> Wassalam,
>>> Kid.
>>>
>>>
>>>
>>>
>
>

--
Regards,

Heru Safrudin

Wed Dec 19, 2012 5:50 pm (PST) . Posted by:

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

Tuh kan...

Kalau begitu, coba pahami tentang tipe data (data type) lagi. Mulai dari
apa itu datatype, guna, cara pilih, batasan tipe data, hubungan antar data
type, akibat perbedaan data type, data type dalam db (mis access aja dulu).

Setelah itu baru tentang penyusunan query dan dampak perbedaan data type
dalam query.

Inti permasalahan masih tentang data type.

Coba cari tahi, di db kolom ref datatype nya apa. Kalau sudah dapat, cek di
query nya si data type itu dikenai proses terhadap data type apa. Ubah agar
sama datatypenya mengikuti yang di db.

Kalau belum bersedia mendalami datatype, maka cenderung muncul error query
akibat datatype.

Wassalam,
Kid.
On Dec 20, 2012 8:40 AM, "Heru Safrudin" <superheruu@gmail.com> wrote:

> **
>
>
> Capture Error type mismatch.JPG
>
>
> Pada 19 Desember 2012 18:59, Mr. Kid <mr.nmkid@gmail.com> menulis:
>
>> **
>>
>>
>> waduh masih error ya...
>> masih belum sempet buka file nih...
>>
>> kira-kira yang bikin error bagian mana ?
>> Jangan-jangan yang baris RS.open blablabla
>>
>>
>> Kid.
>>
>> 2012/12/19 Heru Safrudin <superheruu@gmail.com>
>>
>>> **
>>>
>>>
>>> Dear Mr.Kid
>>>
>>> Karena putus asa itu dosa, terpaksa saya kuatkan hati dan beranikan diri
>>> untuk terus bertanya.
>>> Instruksi Mr. sudah saya laksanakan tapi belum berjalan seperti yg
>>> diharapkan
>>> Apalagi yang masih salah ? file terlampir
>>>
>>> Semoga Allah SWT memberi petunjuk dan pertolongan pada orang yg memberi
>>> pertolongan
>>> ÙˆَالسَّÙ„َامُ عَÙ„َÙŠْÙƒُÙ…ْ ÙˆَرَØ­ْÙ…َØ©ُ اللهِ ÙˆَبَرَÙƒَاتُÙ‡ُ
>>>
>>>
>>> Pada 19 Desember 2012 12:35, Mr. Kid <mr.nmkid@gmail.com> menulis:
>>>
>>> **
>>>>
>>>>
>>>> Maaf belum sempat lihat langsung dalam file.
>>>>
>>>> Pokok permasalahannya adalah bagaimana cara Anda menyusun query.
>>>> Setiap field yang nilai blank di worksheet :
>>>> 1. harus jadi 0 ketika dimasukkan ke field db bertipe numerik
>>>> 2. boleh tetap nullstring '' jika field db bertipe text (string)
>>>>
>>>> Coba pada blok kondisi dalam for each teks1 blabla
>>>> diubah jadi :
>>>> select case teks1.column
>>>> case 4,5 'tipe datetime
>>>> teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
>>>> case 3,11 'tipe string
>>>> teks1="'" & teks1 & "'"
>>>> case else 'numerik'
>>>> teks1=clng(0 & teks1)
>>>> end select
>>>> teks=teks & "," & teks1
>>>>
>>>> kemudian bagian replace teks yag tadinya berbunyi :
>>>> teks=replace( blabla )
>>>> diganti menjadi :
>>>> teks=mid$(teks,2)
>>>>
>>>> Wassalam,
>>>> Kid.
>>>>
>>>>
>>>>
>>>>
>>
>
>
> --
> Regards,
>
> Heru Safrudin
>
>
>
>

Thu Dec 20, 2012 5:15 am (PST) . Posted by:

"Heru Safrudin" superheruu

Ya kalau begitu saya sok tahu banget setidaknya tentang type data, karena
udah merasa type data di REF dan lainnya udah sama, tapi kalau ternyata
belum sama ya mesti tanya ke siapa lagi ya.... atau Mr. punya referensi
bacaan ttg data type ? Makasih banyak

1534,200001,'A1',#2012-01-02#,#2012-01-02#,0,150,792,19858,30,''
nyerah deh kayaknya

Pada 20 Desember 2012 08:50, Mr. Kid <mr.nmkid@gmail.com> menulis:

> **
>
>
> Tuh kan...
>
> Kalau begitu, coba pahami tentang tipe data (data type) lagi. Mulai dari
> apa itu datatype, guna, cara pilih, batasan tipe data, hubungan antar data
> type, akibat perbedaan data type, data type dalam db (mis access aja dulu).
>
> Setelah itu baru tentang penyusunan query dan dampak perbedaan data type
> dalam query.
>
> Inti permasalahan masih tentang data type.
>
> Coba cari tahi, di db kolom ref datatype nya apa. Kalau sudah dapat, cek
> di query nya si data type itu dikenai proses terhadap data type apa. Ubah
> agar sama datatypenya mengikuti yang di db.
>
> Kalau belum bersedia mendalami datatype, maka cenderung muncul error query
> akibat datatype.
>
> Wassalam,
> Kid.
> On Dec 20, 2012 8:40 AM, "Heru Safrudin" <superheruu@gmail.com> wrote:
>
>> **
>>
>>
>> Capture Error type mismatch.JPG
>>
>>
>> Pada 19 Desember 2012 18:59, Mr. Kid <mr.nmkid@gmail.com> menulis:
>>
>>> **
>>>
>>>
>>> waduh masih error ya...
>>> masih belum sempet buka file nih...
>>>
>>> kira-kira yang bikin error bagian mana ?
>>> Jangan-jangan yang baris RS.open blablabla
>>>
>>>
>>> Kid.
>>>
>>> 2012/12/19 Heru Safrudin <superheruu@gmail.com>
>>>
>>>> **
>>>>
>>>>
>>>> Dear Mr.Kid
>>>>
>>>> Karena putus asa itu dosa, terpaksa saya kuatkan hati dan beranikan
>>>> diri untuk terus bertanya.
>>>> Instruksi Mr. sudah saya laksanakan tapi belum berjalan seperti yg
>>>> diharapkan
>>>> Apalagi yang masih salah ? file terlampir
>>>>
>>>> Semoga Allah SWT memberi petunjuk dan pertolongan pada orang yg memberi
>>>> pertolongan
>>>> ÙˆَالسَّÙ„َامُ عَÙ„َÙŠْÙƒُÙ…ْ ÙˆَرَØ­ْÙ…َØ©ُ اللهِ ÙˆَبَرَÙƒَاتُÙ‡ُ
>>>>
>>>>
>>>> Pada 19 Desember 2012 12:35, Mr. Kid <mr.nmkid@gmail.com> menulis:
>>>>
>>>> **
>>>>>
>>>>>
>>>>> Maaf belum sempat lihat langsung dalam file.
>>>>>
>>>>> Pokok permasalahannya adalah bagaimana cara Anda menyusun query.
>>>>> Setiap field yang nilai blank di worksheet :
>>>>> 1. harus jadi 0 ketika dimasukkan ke field db bertipe numerik
>>>>> 2. boleh tetap nullstring '' jika field db bertipe text (string)
>>>>>
>>>>> Coba pada blok kondisi dalam for each teks1 blabla
>>>>> diubah jadi :
>>>>> select case teks1.column
>>>>> case 4,5 'tipe datetime
>>>>> teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
>>>>> case 3,11 'tipe string
>>>>> teks1="'" & teks1 & "'"
>>>>> case else 'numerik'
>>>>> teks1=clng(0 & teks1)
>>>>> end select
>>>>> teks=teks & "," & teks1
>>>>>
>>>>> kemudian bagian replace teks yag tadinya berbunyi :
>>>>> teks=replace( blabla )
>>>>> diganti menjadi :
>>>>> teks=mid$(teks,2)
>>>>>
>>>>> Wassalam,
>>>>> Kid.
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>
>>
>> --
>> Regards,
>>
>> Heru Safrudin
>>
>>
>>
>

--
Regards,

Heru Safrudin

Thu Dec 20, 2012 5:15 am (PST) . Posted by:

"Heru Safrudin" superheruu

Dear Mr. Kid

Alhamdulillah ternyata banyak jalan menuju keberhasilan setelah pake
cara yang dari Mr. Kid yang lain yaitu RS.AddNew, ternyata sudah bisa
jalan dan tak perlu pikir type data, bahkan tidak perlu validasi. Tapi
kalau data mencapai 3000an record kok agak lama, apakah ada yg perlu
diperbaiki dari prosedur di bawah ini :

ConnectDB
With Sheets("P1")
For X = 2 To 10 ' .Range("A1").CurrentRegion.Rows.Count
REF = .Cells(X, 1).Value
RS.Open "select * from P1 Where P1.REF=" & REF, CON,
adOpenKeyset, adLockOptimistic
If RS.RecordCount = 0 Then
RS.AddNew
RS.Fields(0).Value = .Cells(X, 1).Value
RS.Fields(1).Value = .Cells(X, 2).Value
RS.Fields(2).Value = .Cells(X, 3).Value
RS.Fields(3).Value = .Cells(X, 4).Value
RS.Fields(4).Value = .Cells(X, 5).Value
RS.Fields(5).Value = .Cells(X, 6).Value
RS.Fields(6).Value = .Cells(X, 7).Value
RS.Fields(7).Value = .Cells(X, 8).Value
RS.Fields(8).Value = .Cells(X, 9).Value
RS.Fields(9).Value = .Cells(X, 10).Value
RS.Fields(10).Value = .Cells(X, 11).Value
RS.Update
End If
RS.Close
Next
End With
DisconnectDB

Thanks so much Mr. ...........

Pada tanggal 20/12/12, Heru Safrudin <superheruu@gmail.com> menulis:
> Ya kalau begitu saya sok tahu banget setidaknya tentang type data, karena
> udah merasa type data di REF dan lainnya udah sama, tapi kalau ternyata
> belum sama ya mesti tanya ke siapa lagi ya.... atau Mr. punya referensi
> bacaan ttg data type ? Makasih banyak
>
> 1534,200001,'A1',#2012-01-02#,#2012-01-02#,0,150,792,19858,30,''
> nyerah deh kayaknya
>
>
>
> Pada 20 Desember 2012 08:50, Mr. Kid <mr.nmkid@gmail.com> menulis:
>
>> **
>>
>>
>> Tuh kan...
>>
>> Kalau begitu, coba pahami tentang tipe data (data type) lagi. Mulai dari
>> apa itu datatype, guna, cara pilih, batasan tipe data, hubungan antar
>> data
>> type, akibat perbedaan data type, data type dalam db (mis access aja
>> dulu).
>>
>> Setelah itu baru tentang penyusunan query dan dampak perbedaan data type
>> dalam query.
>>
>> Inti permasalahan masih tentang data type.
>>
>> Coba cari tahi, di db kolom ref datatype nya apa. Kalau sudah dapat, cek
>> di query nya si data type itu dikenai proses terhadap data type apa. Ubah
>> agar sama datatypenya mengikuti yang di db.
>>
>> Kalau belum bersedia mendalami datatype, maka cenderung muncul error
>> query
>> akibat datatype.
>>
>> Wassalam,
>> Kid.
>> On Dec 20, 2012 8:40 AM, "Heru Safrudin" <superheruu@gmail.com> wrote:
>>
>>> **
>>>
>>>
>>> Capture Error type mismatch.JPG
>>>
>>>
>>> Pada 19 Desember 2012 18:59, Mr. Kid <mr.nmkid@gmail.com> menulis:
>>>
>>>> **
>>>>
>>>>
>>>> waduh masih error ya...
>>>> masih belum sempet buka file nih...
>>>>
>>>> kira-kira yang bikin error bagian mana ?
>>>> Jangan-jangan yang baris RS.open blablabla
>>>>
>>>>
>>>> Kid.
>>>>
>>>> 2012/12/19 Heru Safrudin <superheruu@gmail.com>
>>>>
>>>>> **
>>>>>
>>>>>
>>>>> Dear Mr.Kid
>>>>>
>>>>> Karena putus asa itu dosa, terpaksa saya kuatkan hati dan beranikan
>>>>> diri untuk terus bertanya.
>>>>> Instruksi Mr. sudah saya laksanakan tapi belum berjalan seperti yg
>>>>> diharapkan
>>>>> Apalagi yang masih salah ? file terlampir
>>>>>
>>>>> Semoga Allah SWT memberi petunjuk dan pertolongan pada orang yg
>>>>> memberi
>>>>> pertolongan
>>>>> ÙˆَالسَّÙ„َامُ عَÙ„َÙŠْÙƒُÙ…ْ ÙˆَرَØ­ْÙ…َØ©ُ اللهِ ÙˆَبَرَÙƒَاتُÙ‡ُ
>>>>>
>>>>>
>>>>> Pada 19 Desember 2012 12:35, Mr. Kid <mr.nmkid@gmail.com> menulis:
>>>>>
>>>>> **
>>>>>>
>>>>>>
>>>>>> Maaf belum sempat lihat langsung dalam file.
>>>>>>
>>>>>> Pokok permasalahannya adalah bagaimana cara Anda menyusun query.
>>>>>> Setiap field yang nilai blank di worksheet :
>>>>>> 1. harus jadi 0 ketika dimasukkan ke field db bertipe numerik
>>>>>> 2. boleh tetap nullstring '' jika field db bertipe text (string)
>>>>>>
>>>>>> Coba pada blok kondisi dalam for each teks1 blabla
>>>>>> diubah jadi :
>>>>>> select case teks1.column
>>>>>> case 4,5 'tipe datetime
>>>>>> teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
>>>>>> case 3,11 'tipe string
>>>>>> teks1="'" & teks1 & "'"
>>>>>> case else 'numerik'
>>>>>> teks1=clng(0 & teks1)
>>>>>> end select
>>>>>> teks=teks & "," & teks1
>>>>>>
>>>>>> kemudian bagian replace teks yag tadinya berbunyi :
>>>>>> teks=replace( blabla )
>>>>>> diganti menjadi :
>>>>>> teks=mid$(teks,2)
>>>>>>
>>>>>> Wassalam,
>>>>>> Kid.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>
>>>
>>> --
>>> Regards,
>>>
>>> Heru Safrudin
>>>
>>>
>>>
>>
>
>
>
> --
> Regards,
>
> Heru Safrudin
>

--
Regards,

Heru Safrudin

Thu Dec 20, 2012 6:06 am (PST) . Posted by:

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

ya... sayang sekali.

Coba perhatikan baris ini (mumpung sempet ada jeda waktu untuk buka Excel)
RS.Open "select * from P1 WHERE P1.REF='" & REF & "'", CON, adOpenKeyset,
adLockOptimistic
Dari baris itu, permasalahan ada di query-nya, yaitu yang berbunyi :
"select * from P1 WHERE P1.REF='" & *REF *& "'"

select * :: artinya Pilih semua kolom untuk ditampilkan.
from P1 :: artinya data dari tabel bernama P1 dalam database
WHERE :: yang memenuhi suatu kondisi tertentu
P1.REF= :: kolom bernama REF di tabel P1 dalam database itu bernilai sama
dengan *suatu nilai tertentu*
"'" & *REF *& "'" :: nilai tertentu itu adalah nilai dalam variabel VBA
bernama *REF *yang berupa data teks (ada petik 1 yang mengapit nilai dari
variabel VBA bernama *REF *)

Padahal di database, yang namanya kolom REF dalam tabel P1 memiliki tipe
data Number Long Integer yang artinya hanya berisi angka dan bilangan bulat
lagi.
Terus harus dibandingkan sama dengan suatu nilai bertipe text (string)
Andai variabel VBA bernama *REF *itu berisi angka *1234*, maka query diatas
akan berbunyi :
"select * from P1 WHERE P1.REF='" & *1234 *& "'"
yang kalimat lengkap query yang dikirim ke database adalah :
select * from P1 WHERE P1.REF='*1234***'
Bahasa manusia :
"Pilih semua kolom untuk ditampilkan dari data tabel bernama P1 yang ada di
database, yang memenuhi suatu kondisi bahwa nilai angka bilangan bulat
dalam kolom REF dalam tabel P1 yang ada di database bernilai sama dengan
suatu teks berbunyi 1234"

Database sangat ketat dalam penggunaan tipe data.

Jadi, bagian yang membuat variabel VBA bernama *REF *menjadi nilai bertipe
text-lah penyebab error-nya.
Lalu bagaimana cara mengubahnya agar nilai variabel VBA bernama *REF *tidak
lagi dinyatakan sebagai suatu data teks tapi beneran sebagai nilai number ?
Bukankah hanya dengan menghilangkan tanda petik 1 (') yang mengapit
variabel VBA bernama *REF *?
agar bunyi query menjadi :
select * from P1 WHERE P1.REF=*1234*

Jadi ekspresi penyusun query :
"select * from P1 WHERE P1.REF='" & *REF *& "'"
harus diubah menjadi :
"select * from P1 WHERE P1.REF=" & *REF *

Wassalam,
Kid.

2012/12/20 Heru Safrudin <superheruu@gmail.com>

> **
>
>
> Ya kalau begitu saya sok tahu banget setidaknya tentang type data, karena
> udah merasa type data di REF dan lainnya udah sama, tapi kalau ternyata
> belum sama ya mesti tanya ke siapa lagi ya.... atau Mr. punya referensi
> bacaan ttg data type ? Makasih banyak
>
> 1534,200001,'A1',#2012-01-02#,#2012-01-02#,0,150,792,19858,30,''
> nyerah deh kayaknya
>
>
>
> Pada 20 Desember 2012 08:50, Mr. Kid <mr.nmkid@gmail.com> menulis:
>
> **
>>
>>
>> Tuh kan...
>>
>> Kalau begitu, coba pahami tentang tipe data (data type) lagi. Mulai dari
>> apa itu datatype, guna, cara pilih, batasan tipe data, hubungan antar data
>> type, akibat perbedaan data type, data type dalam db (mis access aja dulu).
>>
>> Setelah itu baru tentang penyusunan query dan dampak perbedaan data type
>> dalam query.
>>
>> Inti permasalahan masih tentang data type.
>>
>> Coba cari tahi, di db kolom ref datatype nya apa. Kalau sudah dapat, cek
>> di query nya si data type itu dikenai proses terhadap data type apa. Ubah
>> agar sama datatypenya mengikuti yang di db.
>>
>> Kalau belum bersedia mendalami datatype, maka cenderung muncul error
>> query akibat datatype.
>>
>> Wassalam,
>> Kid.
>>
>
>

Thu Dec 20, 2012 6:33 am (PST) . Posted by:

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

Alhamdulillah...

*" ternyata sudah bisa jalan dan tak perlu pikir type data"*
>> Oh ya ? *bekerja dengan database tidak perlu memikirkan tipe data ?*ciiyuuzz ?
>> Bagaimana jika pada script :
REF = .Cells(X, 1).Value
RS.Open "select * from P1 Where P1.REF=*" & REF*, CON, adOpenKeyset,
adLockOptimistic
If RS.RecordCount = 0 Then
RS.AddNew
RS.Fields(0).Value = .Cells(X, 1).Value
RS.Fields(1).Value = .Cells(X, 2).Value
RS.Fields(2).Value = .Cells(X, 3).Value
RS.Fields(3).Value = .Cells(X, 4).Value
RS.Fields(4).Value = .Cells(X, 5).Value
RS.Fields(5).Value = .Cells(X, 6).Value
RS.Fields(6).Value = .Cells(X, 7).Value
RS.Fields(7).Value = .Cells(X, 8).Value
RS.Fields(8).Value = .Cells(X, 9).Value
RS.Fields(9).Value = .Cells(X, 10).Value
RS.Fields(10).Value = .Cells(X, 11).Value
RS.Update
End If

bagian yang dilatar kuning Anda ganti dengan yang ada pada script yang Anda
anggap bermasalah membuat muncul error yang berbunyi :
RS.Open "select * from P1 WHERE P1.REF=*'" & REF & "'"*, CON, adOpenKeyset,
adLockOptimistic
Apakah tetap tidak memikirkan datatype dengan AddNew dan Update ?

Jadi permasalah utama bukan masalah menggunakan AddNew atau Execute, tapi
masalah utama adalah cara menyusun query yang ndak peduli dengan tipedata.

*"Tapi kalau data mencapai 3000an record kok agak lama," *
>> Bagaimana jika ditelaah berdasar apple to apple dari 2 prosedur
tersebut, yaitu prosedur yang pakai con.execute dengan yang pakai addnew.

Baris pakai con.execute berbunyi :
CON.Execute sQuery

itu sama dengan :
RS.AddNew
RS.Fields(0).Value = .Cells(X, 1).Value
RS.Fields(1).Value = .Cells(X, 2).Value
RS.Fields(2).Value = .Cells(X, 3).Value
RS.Fields(3).Value = .Cells(X, 4).Value
RS.Fields(4).Value = .Cells(X, 5).Value
RS.Fields(5).Value = .Cells(X, 6).Value
RS.Fields(6).Value = .Cells(X, 7).Value
RS.Fields(7).Value = .Cells(X, 8).Value
RS.Fields(8).Value = .Cells(X, 9).Value
RS.Fields(9).Value = .Cells(X, 10).Value
RS.Fields(10).Value = .Cells(X, 11).Value
RS.Update
Banyak mana prosesnya ?

Lihat bagian yang *dibiru* *ditambah dengan penyusunan query oleh data
provider* itu sama dengan prosedur dengan con.execute bagian :
For Each TEKS1 In .Range(.Cells(X, 1).Address & ":" & .Cells(X, 11).Address)
select case teks1.column
case 4,5 'tipe datetime
teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
case 3,11 'tipe string
teks1="'" & teks1 & "'"
case else 'numerik'
teks1=clng(0 & teks1)
end select
teks=teks & "," & teks1
Next
teks=mid$(teks,2)
sQuery = "Insert Into P1 (
REF,JOB,MACHINE,START,STOP,DOWNTIME,GLD,PK,QTY,KA,REMARK ) select " & TEKS
RS.Open "select * from P1 Where P1.REF=*" & REF*, CON, adOpenKeyset,
adLockOptimistic
If RS.RecordCount = 0 Then
CON.Execute sQuery
End If
*penyusunan query oleh data provider* dilakukan sangat cepat oleh data
provider, lebih cepat dari baris :
sQuery = "Insert Into P1 (
REF,JOB,MACHINE,START,STOP,DOWNTIME,GLD,PK,QTY,KA,REMARK ) select " & TEKS

*Tapi bagian :*
RS.Fields(0).Value =
RS.Fields(1).Value =
RS.Fields(2).Value =
RS.Fields(3).Value =
RS.Fields(4).Value =
RS.Fields(5).Value =
RS.Fields(6).Value =
RS.Fields(7).Value =
RS.Fields(8).Value =
RS.Fields(9).Value =
RS.Fields(10).Value =
diproses *jauh lebih lambat *dibanding :
For Each TEKS1 In .Range(.Cells(X, 1).Address & ":" & .Cells(X, 11).Address)
select case teks1.column
case 4,5 'tipe datetime
teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
case 3,11 'tipe string
teks1="'" & teks1 & "'"
case else 'numerik'
teks1=clng(0 & teks1)
end select
teks=teks & "," & teks1
Next
teks=mid$(teks,2)

*Bagian :*
rs.addnew
dan
rs.update
diproses sangat-sangat jauh lebih lambat dibanding :
CON.Execute

*"apakah ada yg perlu diperbaiki "*
>> ndak ada. memang demikianlah karakteristik operasi recordset per record
berbasis field per field.

Wassalam,
Kid.

2012/12/20 Heru Safrudin <superheruu@gmail.com>

> **
>
>
> Dear Mr. Kid
>
> Alhamdulillah ternyata banyak jalan menuju keberhasilan setelah pake
> cara yang dari Mr. Kid yang lain yaitu RS.AddNew, ternyata sudah bisa
> jalan dan tak perlu pikir type data, bahkan tidak perlu validasi. Tapi
> kalau data mencapai 3000an record kok agak lama, apakah ada yg perlu
> diperbaiki dari prosedur di bawah ini :
>
> ConnectDB
> With Sheets("P1")
> For X = 2 To 10 ' .Range("A1").CurrentRegion.Rows.Count
> REF = .Cells(X, 1).Value
> RS.Open "select * from P1 Where P1.REF=" & REF, CON,
> adOpenKeyset, adLockOptimistic
> If RS.RecordCount = 0 Then
> RS.AddNew
> RS.Fields(0).Value = .Cells(X, 1).Value
> RS.Fields(1).Value = .Cells(X, 2).Value
> RS.Fields(2).Value = .Cells(X, 3).Value
> RS.Fields(3).Value = .Cells(X, 4).Value
> RS.Fields(4).Value = .Cells(X, 5).Value
> RS.Fields(5).Value = .Cells(X, 6).Value
> RS.Fields(6).Value = .Cells(X, 7).Value
> RS.Fields(7).Value = .Cells(X, 8).Value
> RS.Fields(8).Value = .Cells(X, 9).Value
> RS.Fields(9).Value = .Cells(X, 10).Value
> RS.Fields(10).Value = .Cells(X, 11).Value
> RS.Update
> End If
> RS.Close
> Next
> End With
> DisconnectDB
>
> Thanks so much Mr. ...........
>
> Pada tanggal 20/12/12, Heru Safrudin <superheruu@gmail.com> menulis:
>
> > Ya kalau begitu saya sok tahu banget setidaknya tentang type data, karena
> > udah merasa type data di REF dan lainnya udah sama, tapi kalau ternyata
> > belum sama ya mesti tanya ke siapa lagi ya.... atau Mr. punya referensi
> > bacaan ttg data type ? Makasih banyak
> >
> > 1534,200001,'A1',#2012-01-02#,#2012-01-02#,0,150,792,19858,30,''
> > nyerah deh kayaknya
> >
> >
> >
> > Pada 20 Desember 2012 08:50, Mr. Kid <mr.nmkid@gmail.com> menulis:
> >
> >> **
>
> >>
> >>
> >> Tuh kan...
> >>
> >> Kalau begitu, coba pahami tentang tipe data (data type) lagi. Mulai dari
> >> apa itu datatype, guna, cara pilih, batasan tipe data, hubungan antar
> >> data
> >> type, akibat perbedaan data type, data type dalam db (mis access aja
> >> dulu).
> >>
> >> Setelah itu baru tentang penyusunan query dan dampak perbedaan data type
> >> dalam query.
> >>
> >> Inti permasalahan masih tentang data type.
> >>
> >> Coba cari tahi, di db kolom ref datatype nya apa. Kalau sudah dapat, cek
> >> di query nya si data type itu dikenai proses terhadap data type apa.
> Ubah
> >> agar sama datatypenya mengikuti yang di db.
> >>
> >> Kalau belum bersedia mendalami datatype, maka cenderung muncul error
> >> query
> >> akibat datatype.
> >>
> >> Wassalam,
> >> Kid.
> >> On Dec 20, 2012 8:40 AM, "Heru Safrudin" <superheruu@gmail.com> wrote:
> >>
> >>> **
>
> >>>
> >>>
> >>> Capture Error type mismatch.JPG
> >>>
> >>>
> >>> Pada 19 Desember 2012 18:59, Mr. Kid <mr.nmkid@gmail.com> menulis:
> >>>
> >>>> **
>
> >>>>
> >>>>
> >>>> waduh masih error ya...
> >>>> masih belum sempet buka file nih...
> >>>>
> >>>> kira-kira yang bikin error bagian mana ?
> >>>> Jangan-jangan yang baris RS.open blablabla
> >>>>
> >>>>
> >>>> Kid.
> >>>>
> >>>> 2012/12/19 Heru Safrudin <superheruu@gmail.com>
> >>>>
> >>>>> **
>
> >>>>>
> >>>>>
> >>>>> Dear Mr.Kid
> >>>>>
> >>>>> Karena putus asa itu dosa, terpaksa saya kuatkan hati dan beranikan
> >>>>> diri untuk terus bertanya.
> >>>>> Instruksi Mr. sudah saya laksanakan tapi belum berjalan seperti yg
> >>>>> diharapkan
> >>>>> Apalagi yang masih salah ? file terlampir
> >>>>>
> >>>>> Semoga Allah SWT memberi petunjuk dan pertolongan pada orang yg
> >>>>> memberi
> >>>>> pertolongan
> >>>>> ÙˆَالسَّÙ„َامُ عَÙ„َÙŠْÙƒُÙ…ْ ÙˆَرَØ­ْÙ…َØ©ُ اللهِ ÙˆَبَرَÙƒَاتُÙ‡ُ
> >>>>>
> >>>>>
> >>>>> Pada 19 Desember 2012 12:35, Mr. Kid <mr.nmkid@gmail.com> menulis:
> >>>>>
> >>>>> **
>
> >>>>>>
> >>>>>>
> >>>>>> Maaf belum sempat lihat langsung dalam file.
> >>>>>>
> >>>>>> Pokok permasalahannya adalah bagaimana cara Anda menyusun query.
> >>>>>> Setiap field yang nilai blank di worksheet :
> >>>>>> 1. harus jadi 0 ketika dimasukkan ke field db bertipe numerik
> >>>>>> 2. boleh tetap nullstring '' jika field db bertipe text (string)
> >>>>>>
> >>>>>> Coba pada blok kondisi dalam for each teks1 blabla
> >>>>>> diubah jadi :
> >>>>>> select case teks1.column
> >>>>>> case 4,5 'tipe datetime
> >>>>>> teks1="#" & format$(teks1,"YYYY-MM-DD") & "#"
> >>>>>> case 3,11 'tipe string
> >>>>>> teks1="'" & teks1 & "'"
> >>>>>> case else 'numerik'
> >>>>>> teks1=clng(0 & teks1)
> >>>>>> end select
> >>>>>> teks=teks & "," & teks1
> >>>>>>
> >>>>>> kemudian bagian replace teks yag tadinya berbunyi :
> >>>>>> teks=replace( blabla )
> >>>>>> diganti menjadi :
> >>>>>> teks=mid$(teks,2)
> >>>>>>
> >>>>>> Wassalam,
> >>>>>> Kid.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Regards,
> >>>
> >>> Heru Safrudin
> >>>
> >>>
> >>>
> >>
> >
> >
> >
> > --
> > Regards,
> >
> > Heru Safrudin
> >
>
> --
> Regards,
>
> Heru Safrudin
>
>
>

Wed Dec 19, 2012 6:58 pm (PST) . Posted by:

"Jan Raisin"

Dear pak Wawan,

coba dibuat dahulu tabel penyusutan per bulan, nilai sisa tidak boleh 0
(NOL), nilai minimum yang diizinkan dalam dalam fungsi Excel adalah 1
(SATU) karena rumus yang digunakan oleh Excel untuk menghitung penyusutan
dengan metode Saldo Menurun adalah sbb:

(Harga_perolehan - Total_akumulasi_penyusutan) * rate

dimana

rate = 1 - ( (Nilai_sisa / Harga_perolehan) ^ (1 / masa_manfaat)) ,
dibulatkan sampai 3 angka di belakang koma

jika nilai sisa = 0 maka akan menghasilkan error,

Jika sudah ada tabel penyusutan per bulan untuk setiap aktiva, maka untuk
melangkah ke perhitungan lainnya tentu lebih mudah.

File terlampir adalah contoh - contoh tabel penyusutan aktiva dengan metode:

1. Saldo menurun (Diclining Balance), fungsi yang digunakan =DB()
2. Saldo menurun ganda (Double Declining Balance), fungsi yang digunakan
=DDB()
3. Garis lurus (Straight Line), fungsi yang digunakan =SLN()
4. Jumlah angka tahun (Sum Year's Digits), fungsi yang digunakan =SYD()

selain 4 fungsi di atas, coba pelajari juga fungsi-fungsi penyusutan
berikut:

AmorLinc() dan AmorDegRc() , kata Help-nya Excel kedua fungsi ini digunakan
untuk menghitung penyusutan Aktiva pada metode akuntansi Perancis..
hedew.. pusing deh.. fungsi apaan lagi ini..
tiba-tiba Jan merasa berputar, berat, dan gelap (edisi: mimpi naik komedi
putar sambil gendong beras sekarung disaat mati listrik)

Best Regard,

-Ms. Jan Raisin-

Pada 19 Desember 2012 09:45, Johanes Wawan <johaneswawan@yahoo.co.id>menulis:

> **
>
>
> Dear be exceler,
>
> Mohon bantuan dari rekan2 be exceler untuk formula penghitungan penyusutan
> aset dengan metode saldo menurun dengan file terlampir.
>
> Thank's
>
>
> Rgds,
> Wawan
>
>
>

Wed Dec 19, 2012 7:23 pm (PST) . Posted by:

"hendrik karnadi" hendrikkarnadi

Ini contoh yang menarik untuk orang2 yang bergelut dibidang Akuntansi (barangkali Ms. Jan Raisin selain pakar Excel juga pakar Akuntansi).

Sedikit pertanyaan (oot) apakah kita bisa merasa berputar di atas komedi putar ... di saat mati listrik ?

Salam,
Hendrik Karnadi

________________________________
From: Jan Raisin <miss.jan.raisin@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Thursday, 20 December 2012, 9:58
Subject: Re: [belajar-excel] Metode Penyusutan Saldo Menurun


 
Dear pak Wawan,

coba dibuat dahulu tabel penyusutan per bulan, nilai sisa tidak boleh 0 (NOL), nilai minimum yang diizinkan dalam dalam fungsi Excel adalah 1 (SATU) karena rumus yang digunakan oleh Excel untuk menghitung penyusutan dengan metode Saldo Menurun adalah sbb:

(Harga_perolehan - Total_akumulasi_penyusutan) * rate

dimana

rate = 1 - ( (Nilai_sisa / Harga_perolehan) ^ (1 / masa_manfaat)) , dibulatkan sampai 3 angka di belakang koma

jika nilai sisa = 0 maka akan menghasilkan error,

Jika sudah ada tabel penyusutan per bulan untuk setiap aktiva, maka untuk melangkah ke perhitungan lainnya tentu lebih mudah.

File terlampir adalah contoh - contoh tabel penyusutan aktiva dengan metode:

1. Saldo menurun (Diclining Balance), fungsi yang digunakan =DB()
2. Saldo menurun ganda (Double Declining Balance), fungsi yang digunakan =DDB()
3. Garis lurus (Straight Line), fungsi yang digunakan =SLN()
4. Jumlah angka tahun (Sum Year's Digits), fungsi yang digunakan =SYD()
selain 4 fungsi di atas, coba pelajari juga fungsi-fungsi penyusutan berikut:

AmorLinc() dan AmorDegRc() , kata Help-nya Excel kedua fungsi ini digunakan untuk menghitung penyusutan Aktiva pada metode akuntansi Perancis..
hedew.. pusing deh.. fungsi apaan lagi ini..
tiba-tiba Jan merasa berputar, berat, dan gelap (edisi: mimpi naik komedi putar sambil gendong beras sekarung disaat mati listrik)

Best Regard,

-Ms. Jan Raisin-

Pada 19 Desember 2012 09:45, Johanes Wawan <johaneswawan@yahoo.co.id> menulis:


>Dear be exceler,
>
>Mohon bantuan dari rekan2 be exceler untuk
formula penghitungan penyusutan aset dengan metode saldo menurun dengan
file terlampir.
>
>Thank's
>
>
>Rgds,
>Wawan

Wed Dec 19, 2012 8:31 pm (PST) . Posted by:

"Jan Raisin"

Ysh, sdr Depi Hariyanto,

saran dari Jan (boleh diterima boleh juga ditolak.. namanya juga saran)

1. agar dibuat sebuah Database di 1 buah sheet khusus, tidak
terpisah-pisah, dimulai dari cell A1 sebagai header dan data mulai dari
cell A2
2. tidak ada merge cell baik di data maupun di header
3. tidak ada baris kosong dan kolom kosong antar data
4. data disusun dengan orientasi Vertikal (dari atas ke bawah)
5. data memiliki Primary_key yang bersifat unik (tidak ada yang sama antara
satu data dengan data yang lain, misal: ID pegawai, Nomor Induk Siswa,
Nomor rekening nasabah dll)
6. tipe data untuk tiap kolom harus seragam dan sesuai

jika sudah ada database yang baik, maka pengolahan selanjutnya tentu akan
lebih mudah (perhitungan, pelaporan, dsb), Ingat, database bukanlah
laporan, jadi nanti format laporan bisa dibuat terpisah.

tampaknya akan sulit di awal, tetapi pak Depi jangan khawatir, *karena
setelah kesulitan ada kemudahan 2x*

contoh terlampir adalah solusi dengan memanfaatkan fitur Pivot Table-nya
Excel, tentunya setelah adanya database yang baik

Wassalamu'alaikum wr. wb.,

-Ms Jan Raisin-

Pada 19 Desember 2012 17:45, depi Hariyanto
<depi.hari_yanto@yahoo.co.id>menulis:

> **
>
>
> YSH Master Excel,
> mohon bantuan dan penyegarannya,
>
> bagai mana rumus formula untuk rekap data pada beberapa sheet ke dalam
> satu sheet, terlampir datanya.
>
> atas bantuannya saya ucapkan terima kasih.
>
> salam
> Dep_Har
>
>
>

Thu Dec 20, 2012 5:15 am (PST) . Posted by:

"the_x_mikey@yahoo.com" the_x_mikey

Saya pelajarin dl ya Mr Kid rada sulit dicerna kalau cm dibaca. Thanks a lot
-----Original Message-----
From: "Mr. Kid" <mr.nmkid@gmail.com>
Sender: belajar-excel@yahoogroups.com
Date: Thu, 20 Dec 2012 01:04:17
To: <belajar-excel@yahoogroups.com>
Reply-To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Image control mengacu ke cell

Hai Mikey,

Image control biasanya diisi dengan file gambar melalui LoadPicture nama
file gambarnya.
Ketika gambar sudah tersimpan dalam sebuah Shape, maka perlu proses untuk
membuat file gambar berisi gambar dalam shape tersebut.
Kemudian file gambar tersebut di-load ke image control melalui LoadPicture.

Excel chart menyediakan fitur untuk ekspor chart menjadi file gambar.
Jadi, chart kosong diisi copy-an shape. Kemudian chart diubah dimensinya
agar sama dengan si-shape.
Lalu chart diekspor menjadi file gambar.
Artinya, file gambar berisi gambar chart yang isinya shape bergambar.
Jadi tetap beda antara file gambar yang di-load ke shape dengan file gambar
hasil ekspor tersebut.

File terlampir adalah contoh yang dibuat dengan Excel 2007.
File juga bisa diunduh di Box Drive
disini<https://www.box.com/s/xt9m126qfn7c6znmjrv5>
Untuk versi Excel 2003, bisa diunduh juga di Box Drive pada link
ini.<https://www.box.com/s/10uzyw8tlgbn3ux9oa00>

File berisi 2 prosedur utama, yaitu :
1. GetShape -> untuk mendapatkan shape yang range pojok kiri atasnya shape
ada disebuah range tertentu (bisa digunakan untuk hal selain urusan picture
ini)
2. CreatePicFileFromShape -> untuk buat file gambar dari chart berisi shape
bergambar (bisa disesuaikan menjadi banyak hal tentang membentuk file
gambar)

cekrip prosedur GetShape :
'----------------------------------------------------------
'Prosedur : GetShape
'----------------------------------------------------------
'Input :
' - sht : Worksheet : Object worksheet yang berisi shape
gambar
' - sRngShpAddress : String : Alamat pojok kiri atas shape yang
akan diambil
' - shp : Shape : Object shape yang diambil
'----------------------------------------------------------
'Return :
' - shp akan nothing jika tidak ditemukan
'----------------------------------------------------------
Public Sub GetShape(sht As Worksheet, sRngShpAddress As String, shp As
Shape)
Set shp = Nothing 'kosongkan isi shape
For Each shp In sht.Shapes 'loop setiap shape dalam worksheet
kiriman (sht)
'cek, apakah shape (shp) yang sedang diproses oleh loop
'memiliki pojok kiri atas di alamat range yang ditunjuk
(sRngShpAddress)
If InStr(sRngShpAddress, shp.TopLeftCell.Address) <> 0 Then
'yup... sesuai, berarti sudah ketemu
'maka keluar dari loop (bisa langsung keluar dari prosedur
dengan exit sub)
Exit For
End If
Next shp
End Sub

cekrip prosedur CreatePicFileFromShape :
'----------------------------------------------------------
'Prosedur : CreatePicFileFromShape
'----------------------------------------------------------
'Input :
' - shp : Shape : Object shape berisi picture yang akan
diambil gambarnya
' - sFile : String : Nama file gambar hasil pengambilan
gambar dalam shape
'----------------------------------------------------------
'Return :
' - sFile akan berisi NULLSTRING jika gambar dalam shape tidak bisa
diambil
'----------------------------------------------------------
'Attention :
' - Struktur isi sFile :
' [nama
komputer\\]drive:\folder\subfolder\......\subfolderchild_n\filename.ext
' - Contoh :
' -> ke local computer
' E:\myData\myPic\myTemporaryPicFile.jpg
' -> ke network computer bernama myComputer
' myComputer\\E:\myData\myPic\myTemporaryPicFile.jpg
'----------------------------------------------------------
Public Sub CreatePicFileFromShape(shp As Shape, _
sFile As String)
Dim sType As String 'var string tipe file gambar (ekstensi file
gambar)
Dim cht As Chart 'var object chart sebagai jembatan untuk export
gambar jadi file

Err.Clear 'hapus error proses lain (kalau ada)
On Error GoTo Keluar 'trap error ke blok Keluar (jika terjadi error
akan ke blok bernama Keluar)

Application.DisplayAlerts = False 'turn off kecerewetan excel
yang suka konfirmasi

sType = Replace$(Right$(sFile, 4), ".", vbNullString) 'simpan
ekstensi file gambar
Set cht = Charts.Add 'buat sheet chart baru
With cht 'pada sheet chart tersebut
With .ChartArea 'di chart area nya
'ubah dimensi chart area dan hilangkan border nya
.Height = shp.Height
.Width = shp.Width
.Border.LineStyle = xlLineStyleNone
End With 'selesai di chart area

shp.Copy 'copy shape berisi
gambar
.Paste 'paste ke dalam sheet
chart
Application.CutCopyMode = False 'buang data dari
clipboard

'export sheet chart jadi file gambar
'jadi bukan gambar dalam shape yang diambil jadi file,
'tetapi sheet chart yang seukuran gambar dan berisi gambar
'yang dijadikan file gambar
.Export sFile, sType

.Delete 'hapus sheet chart
End With 'selesai dengan sheet chart

Keluar: 'blok Keluar yang dituju oleh si trap error
If Err.Number <> 0 Then 'cek kalau ada error terjadi
sFile = vbNullString 'nama file diubah jadi karakter
kosong
End If 'selesai cek
Err.Clear 'hapus error
On Error GoTo 0 'set trap error kembali ke default
perlakuannya

Application.DisplayAlerts = True 'turn on kecerewetan Excel
End Sub

Wassalam,
Kid.

2012/12/19 <the_x_mikey@yahoo.com>

> **
>
>
> Hi all,
>
> Saya ingin membuat sebuah userform dimana didalamnya terdapat image
> control yg mengacu kepada sebuah cell di sheet tertentu.
>
> Misalnya pada jika txtnorecord= 1 maka image control tersebut menampilkan
> foto yg ada di worksheet foto range a1
> Saya sudah coba imgfoto.picture = worksheet("foto").range("a1")
> Atau
> Imgfoto.rowsource = "photo"
> Dimana foto adalah define name dari range a1
> Tapi ga bisa
>
> Tolong dibantu ya kawan
>
>
>

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