Sayfadaki Image nesnesine resim atma

Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Selam arkadaşlar.
Uzun zamandır ortalıkta yoktum,malum çoluk çocuğa karışınca işler alıp başını gidiyor.
üzerinde çalıştığım bir projede aşağıdaki kodları kullanıyorum.ancak önemli bir sorun var;
Kod:
Private Sub CommandButton1_Click()
yol = ThisWorkbook.Path
'sayfadaki hücrelerde bir değişiklik olduğunda image1 nesnesine Resim çağırır
Range("AE7").Value = yol & "/1/0000" & ['NOTLİSTESİ'!C7] & ".jpg"
Sheets(NOTDEFTERİARKA).Image1.PictureSizeMode = fmPictureSizeModeStretch
Sheets(NOTDEFTERİARKA).Image1.Picture = LoadPicture(['NOTLİSTESİ'!AE7])

End Sub
Daha doğrusu sanırım iki önemli sorun var.
1. Notlistesi-C7 den itibaren öğrenci numaraları sıralanıyor(daha önceleri çalıştığım NOTSAYAR programından bahsediyorum,sınıf mevcuduna göre otomatik tablo yaptırıyor).Bu numaralar yukarıdaki gibi AE7 sütununa numaraya göre foto yolları sıralanmalı

2. Bu fotoları yine sırasıyla fotoğraflı hazırladığım not defterinde bulunan max. 40 Image nesnesine göndermeli,ancak yukarıdaki gönderme kodları nedense işe yaramadı.

3. (aslında bu sonraki aşamada rastlayacağımı düşündüğüm bir sorun) Not defterini de otomatik tablolandırma ile yapmayı düşünüyorum.Ancak Image nesnesini belirlenen yerlere nasıl ekletmem gerektiği düşündürüyor,bunun yolu nedir?
(galiba uzun süre ara verince böyle oluyor)
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Tankut bey,

Neden ve niçinine hiç dokunmadan, bir önerim olacak. Çıkış yolu da; Worksheet üzerinde resim(foto) göstermek için, -eğer geçerli bir sebep yoksa- MS Forms Control'lerinden Image nesnesini neden kullanalım?

Bence, tüm resimleri "shape" olarak düşünün ve bu şekliyle, worksheet üzerine ekleyin. 40 tane shape'i de önceden eklemek zorunda kalmazsınız... Gerektiğinde varolanı silip, yerine yenisini yerleştirirsiniz.

Ama dediğim gibi, worksheet üzerindeki Image nesnelerinin event'larını kullanmayacaksanız bu geçerlidir.

Değerlendiriniz...


..
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kod:
Sheets(NOTDEFTERİARKA).Image1.Picture = LoadPicture(['NOTLİSTESİ'!AE7])
Yukarıdaki satırı aşağıdaki ile değiştirerek deneyin.

Kod:
Sheets(NOTDEFTERİARKA).Image1.Picture = LoadPicture(sheets("NOTLİSTESİ").[AE7])
Not: Uzun zamandır görünmüyordunuz. Foruma tekrar hoşgeldiniz Tankut bey.
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Ferhat Bey;
Açıkçası shape hiç kullanmadım.Ama VB yatkınlığım olduğundan nesne tercih ettim,böylelikle nesnenin resim boyutlandırma özelliklerini de kullanacağımı düşündüm.

Levent Hocam,sizi yeniden görmek çok güzel.
Nasılsınız?
Haklısınız bu yıl çok yoğun geçti.Üstüne ikinci kız babası olmak iyiden iyiye tüm meşguliyetimi elimden aldı.

Verdiğiniz kod ne yazık ki hata verdi.
Aşağıda örnek bir dosya gönderiyorum,sanırım bu şekilde daha iyi olacak.

http://rapidshare.com/files/240521588/oernek.rar

Not=Dosya boyutu izin verilenden daha büyük olduğundan upload etmek zorunda kaldım.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sheets(NOTDEFTERİARKA) şeklindeki sayfa tanımlamasında hata var. Yazım şekli aşağıdaki gibi olmalıdır.

Sheets("NOTDEFTERİARKA")
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Teşekkür ederim Levent hocam,ara verince küçük ayrıntılar nasıl da gözden kaçıyor.Resim görüntüleme işlemi tamamdır.
 
Üst