• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Bağlantılı Resim Sorunu

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Üstadlar Merhaba;

Aşağıdaki makro ile otomatik proforma resmi çağırmaktayım. Ancak excelimi karşıya atınca resimler çıkmıyor. Bu sorunu çözmek adına nasıl bir revize yapmam gerekmekte? Yardımcı olur musunuz ?

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub

'----------------------------------------Mevcut Resmi Hücreden Kaldır-------------------------------

Dim ResimA As Picture, Alan As Range
Set Alan = Range("A8:A1000")
    
    For Each ResimA In ActiveSheet.Pictures
        If Not Intersect(ResimA.TopLeftCell, Alan) Is Nothing Then
            ResimA.Delete
        End If
    Next
    
    Set Alan = Nothing

'------Resmi Hücreye Çağır-------------------------------

Dim ResimYolu As Variant
Dim Resim As Object

For Satır = 8 To 1000
Yol = "\\Server\Proforma Resimler"

On Error GoTo 10
ResimYolu = Dir(Yol & "\" & Range("A" & Satır) & ".jpg", vbNormal)


If ResimYolu <> "" Then
Set Resim = ActiveSheet.Pictures.Insert(Yol & "\" & ResimYolu)

With Range("A" & Satır)
Resim.Top = .Top + 5 'Yukarıdan Mesafe
Resim.Left = .Left + 5 'Soldan Mesafe
Resim.Height = Resim.Height 'Resim yukseklik (şu an orjinal ayarlı)
Resim.Width = Resim.Width 'Resim genişlik (şu an orjinal ayarlı)

End With
End If

Next Satır
10
End Sub
 
.

Resimlerin hücrelere değil, resim özelliği olan nesnelerine eklenmesi gerekiyor.

Alternatif olarak karşıya PDF çevirerek ulaştırsanız...

.
 
Pdf lazim olduğu da oluyor. Excel lazim oldugu da oluyor üstadım.pdf zaten kullanıyorum ama excel lazim O yüzden derdime çare ariyorum :)
 
.

Biraz kurcalamak gerekiyor gibi...
Bu linkten yola çıkarak birşeyler denedim.

Kod:
If ResimYolu <> "" Then
'Set Resim = ActiveSheet.Pictures.Insert(Yol & "\" & ResimYolu)

With Range("A" & Satır)
'Resim.Top = .Top + 5 'Yukarıdan Mesafe
'Resim.Left = .Left + 5 'Soldan Mesafe
'Resim.Height = Resim.Height 'Resim yukseklik (şu an orjinal ayarlı)
'Resim.Width = Resim.Width 'Resim genişlik (şu an orjinal ayarlı)

    myPic = Yol & "\" & Range("A" & Satır) & ".jpg"
    picLeft = .Left
    picTop = .Top
    
        Sheets(1).Shapes.AddPicture Filename:=myPic, linktofile:=msoFalse, _
              SaveWithDocument:=msoCTrue, Left:=picLeft, Top:=picTop, Width:=100, Height:=100

End With

.
 
Malesef @Emir Hüseyin Çoban üstadım. Hem resim formlarım bozuluyor hem kalıcı olarak aktarmıyor. Burada
ActiveSheet.Pictures.Insert
kısmını Shapes olarak yapmanın olabilceği yazıyor bazı yerlerde ancak formülüme uyarlayamıyorum
 
.

Resim boyutları vs için biraz karıştırmak gerekiyor ayar kodlarını.
Örnek dosya ve resimler yükleyin. Kurcalayalım...

.
 
@Emir Hüseyin Çoban ve ilgili diğer üstadlarıım muadil bir dosya hazrıladım. A:A sütununa 100,101,102 gibi sayılar girerek test yapabilirsiniz. Resimleri önce sildirip sonra ekletme yapmamın nedeni her seferinde üst üste resim yazmasının önüne geçmektir. Yoksa binlerce resim üst üste excel çok şişiyor.

Ayrıca resim ebatları ile alakalı derdim yok. Hepsi örnek dosyadaki büyüklükte ve binlercesi hazır durumda.
Bu form küçük bir minyatür. 2000 satıra kadar resim eklediğim oluyor.
 

Ekli dosyalar

.

Merhaba,
bütün akşam uğraştırdı. 2 parçada çalışan kodlama oldu.

Proforma Sayfasında;

1.adım:
Geliştirici veya Görünüm Sekmesi > Makrolar >
Kod_Birinci_Adim_Baslat > Çalıştır
kodu çalıştırdığınızda resim nesnelerini ekler

2.adım
Geliştirici veya Görünüm Sekmesi > Makrolar >
Kod_Resimleri_Getir > Çalıştır
eklenen nesnelere resimleri yükler.

Umarım işinize yarar...


i0BuU9.png



.
 

Ekli dosyalar

Üstadım ellerine sağlık diyelim o zaman @Emir Hüseyin Çoban
1.Adım çalışınca ;
"visual basic projesine programlı olarak erişim güvenli değil" diyor
2.Adım çalışınca makro
Method or data member not found hatası veriyor.

Yani olmadı. Yabancı sitelerde Shapes olarak ekletme yapın diyorlar sanki ama tam olarak nasıl olur anlayamadım
 
Birde ben resim ekleme işini neden makrolara tek tek yazdığınızı anlayamadım. Bu şekilde dinamik yapı kuramayız diye düşünüyorum. Bana sanki çözüm işlem bitince resimlerin bağını excelden kopartmaktan geçiyor gibi geliyor.
 
.

Açıklamaları dikkatli okumalısınız.
Kodları Proforma sayfasında çalıştırın.

Makro güvenlik ayarlarından "VBA Projesi nesne modeli erişimine güven" işaretli olmalı.

İmage nesneleri tek kodda işlem yapmadı. O yüzden 2 parçada yaptım.

Akşam çalışan haliyle ilgili ekran görüntüsü eklerim.

.
 
Son düzenleme:
Üstadım evet şimdi erişim ayarını yapınca çalıştığını gördüm. Anladığım kadarı ile resim yolu makroya kayıt alan bir çözümleme yapmışsınız. Gayette güzel olmuş. Excel dosyasını karşıya atınca bu çıkacaksa işlem tamamdır. Yarın ofiste bu akşam oluşturduğumu testini yapacağım. Uğraştırdığım için kusura bakmayın. Tekrar teşekkür ederim :)
 
Geri
Üst