Hai Farud,

Kalau belum mudeng VBA, bisa dimulai dari sini
<http://b-excel.blogspot.co.id/2013/06/belajarvba-000-kenalan.html>.
Konsep dasar tentang memasukkan image ke object shape ada disini
<https://groups.yahoo.com/neo/groups/belajar-excel/conversations/messages/41032>
.
Kalau file tentang shape, sudah lama ada disini
<https://app.box.com/s/vp8lqos5zq0gb4kx94i6>.
Pasang gambar melalui properti Picture milik activex control ada disini
<https://app.box.com/s/xt9m126qfn7c6znmjrv5>.

Regards,
Kid




2016-10-24 21:20 GMT+07:00 farud oke farud....@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> 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' mr.nm...@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com> 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 farud....@gmail.com [belajar-excel]
>> <belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> 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
>>>
>>>
>>
> 
>

Reply via email to