terimakasih jawabannya mr.kid Dari tadi saya coba untuk memahami apa yang dijelaskan oleh mr.kid,tapi dari tadi juga saya gak mudeng2 apalagi masalah macro..bisa dipersingkat gak mr.kid atau klo boleh dikasih contoh file jadinya hehehe..biar nanti saya coba pelajari di filenya atas bantuannya saya ucapkan terimakasih
Pada 24 Oktober 2016 18.15, 'Mr. Kid' [email protected] [belajar-excel] < [email protected]> menulis: > > > Wa'alaikumussalam wr wb > > Hai Farud, > > Setiap image memiliki ukuran lebar dan tinggi tertentu. Ketika dipaksakan > agar mengikuti dimensi sebuah range, bisa jadi gambarnya akan mletot-mletot > tidak proporsional lagi. Jadi, untuk memproporsionalkannya, silakan > dipikirkan sendiri ya.... Konsepnya tetap saja seperti hal di bawah sana > pada bagian penentu dimensi si shapes picture penampung si image. > > Misal, > 1. sebuah potonya Kid dengan ukuran 1500 x 2000 > 2. poto tersimpan di file bernama Kid.gif yang tersimpan di drive D dengan > fullpath berbunyi : D:\Kid.gif > 3. poto akan dimuat ke range A1 di sheet bernama 'poto' > 4. range A1 dah diset berukuran 80 x 60 (gambar bakalan gak proporsional > karena dari 1500 jadi 80, tapi yang 2000 harus jadi lebih pendek dari 80, > yaotu 60 > 5. poto akan dimasukkan dalam sebuah wadah berupa shape (sebenernya enakan > pakai activex image control, karena gak perlu mikirin ukurannya, asal > loadpicture juga bisa jadi dan proporsional) > 6. si shape wadah poto akan diberi nama dengan tetap, yaitu bernama > 'shpKid' > > Prosesnya begini : > 1. deklarasikan dulu object shape > dim shp as shape > > 2. cari shape bernama 'shpKid' (kalo ada) di sheet 'poto', terus buang > (delete) [gak mau kalau filenya jadi gede banget karena kebanyakan shapes > berisi gambar kan...], > pake loop for each biar gampang walau agak lambat > for each shp in sheets("poto").shapes > if lcase(shp.name)="shpkid" then > exit for > else > set shp=nothing > endif > next shp > > 3. sekarang baru bikin shapes baru berupa picture yang diisi gambar > tertentu (potonya kid ding) > > 'ini cara pasang shape picture LANGSUNG disebuah range, > lengkap dengan set dimensi si shapes (potonya mengikuti si shape) > 'yang perlu diingat, methods addpicture dilakukan > terhadap sheet, tapi butuh inputan berikut : > '1. nama file image yang mau di pasang > '2. status link ke file (selalu isi dengan > msotristatemixed) > '3. status save salinan picture dalam document > (diisi msofalse) > '4. posisi sisi kiri si shape (ini yang menentukan > mau dipasang di kolom apa) > '5. posisi sisi atas si shape (ini yang menentukan > mau dipasang di baris berapa) > '6. lebarnya si shape (ya tentukan lebarnya sesuai > kebutuhan) > '7. tingginya si shape (ya tentukan tingginy > sesuai kebutuhan) > 'simpan hasil addpicture ke sebuah object variable > bertipe shape, biar bisa diatur-atur kelengkapan lainnya > > with sheets("poto").range("a1") 'kerja di sheet poto range > a1 [KAGAK PAKE select-select-an ato activate-activate-an, buang-buang > energi > 'di sheets poto, range a1, si shape didalam range dengan > jarak 1 twip dari pinggiran range, biar cakep beneran dalam range dan garis > pinggirnya batas range > 'jangan tanya kenapa +1 dan -2 atau apa itu left, top, > width, height ya... lihat helep ajah... > set shp=sheets("poto").shapes.addpicture( "d:\kid.gif" > , msotristatemixed , msofalse , .left+1 , .top+1 , .width-2 , .height-2 > ) 'picture dah di-insert-ken tuh > > 'si shape bisa diatur kelengkapan lainnya, seperti : > with shp 'kerja dengan si shape baru > .name="shpKid" 'kasih nama, > supaya gampang nyarinya > .lockaspectratio=msotrue 'biar kalo di-resize > user, perbantingannya tetap > .placement=xlmove 'cuma move doiang > bareng cells, tapi gak bakal ikutan resize kalo si cell di resize > end with > end with > > 4. save > > > Cara lainnya untuk insert shape selain dengan Shapes.AddPicture adalah > dengan Pictures.Insert > Pictures.Insert menghasilkan object Picture. Shapes.AddPicture > menghasilkan object Shape. > Pictures.Insert bisa jadi meng-embed disertai link, sehingga akan > kesulitan saat file dipindah ke komputer lain yang tidak ada file gambar > yang dibutuhkan. Tapi bisa mengambil picture dengan sebuah URL (kalau belum > di-obsolete sama si ms ya) > Shapes.AddPicture hanya bisa local picture (file image di dalam komputer > setempat saat akan di-insert, tapi akan ikut serta dengan file saat pindah > komputer) > > Cara dengan Pictures.Insert begini : > nomor 1 : > ubah datatype dalam deklarasi menjadi Picture, kalau error, ubah jadi > Object > > nomor 2 : tetap > > nomor 3 : > with sheets("poto").range("a1") > set shp=sheets("poto").pictures.insert("d:\kid.gif") > shp.name="shpKid" > shp.placement=xlmove > shp.left= .left > shp.top=.top > shp.width=.width > shp.height=.height > 'jika lockaspectratio diletakkan sebelum pengaturan width, maka bisa > dilakukan resize mengikuti proporsi si image, > 'bisa berdasar lebarnya atau berdasar tingginya tergantung kondisi > perbandingan asli si image > 'misal, kalo tinggi si image > lebarnya, berarti lockaspect true terus > atur berdasar tingginya setinggi range > 'begitu pula kalau si lebar > tinggi, berarti loacaspect true atur > berdasar lebar > 'jadi, kadang si image pas lebarnya tapi nggantung tingginya, kadang pas > tingginya tapi lebih langsing lebarnya, yang jelas tetap proporsional > mengikuti asli si image > shp.shaperange.lockaspectratio=msotrue > > > Jadi, silakan gunakan manapun yang sesuai kebutuhan dan terasa nyaman > untuk dipahami > (kadang Pictures.Insert juga error di beberapa versi, dan mungkin butuh > update dengan service pack yang terbaru) > > > Wassalamu'alaikum wr wb > Kid > > > > end with > > > > > > > > > Wassalamu'alaikum wr wb > Kid > > > > 2016-10-23 13:20 GMT+07:00 farud oke [email protected] [belajar-excel] < > [email protected]>: > >> >> >> Assalamualaikum >> mohon bantuan para master sekalian >> saya sudah googling cara ganti logo dengan button dan sudah saya >> coba,tapi yang jadi masalah gambarnya tidak sesuai dengan ukuran sell yang >> di inginkan. >> untuk lebih jelasnya saya lampirkan filenya >> atas bantuannya saya ucapkan banyak2 terimakasih >> >> > >

