• DİKKAT

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

Klasörden JPG Resim Çağrılması "Kodu"

Katılım
10 Kasım 2006
Mesajlar
1,288
Excel Vers. ve Dili
Excel-2016
Saygıdeğer hocalarım..! Vaktiyle Moderatör Ömer hocamın, "Seçilen alanın JPG olarak kaydedilmesi ve kaydedildiği klasörden numarasına göre tekrar çağrılabilmesi" konusunda yazdığı makro kodunu kullanmaktaydım..

Ancak, 2010 Excel versiyonunda, klasörden çağrılan resmi boş olarak çağırıyor. Sanırım makro kodunda bir düzenleme gerekiyor. Bir bakabilirseniz, minnettarım..

Örnek dosyayı, mümkün olduğunca sade ve anlaşılır şekilde hazırlayarak ekledim..
 

Ekli dosyalar

İnceleyiniz.

 
Merhaba,

Alternatif:
Kod:
Sub alan_resim_kaydet()

    Dim dosya As String, alan As Range, Chrt As ChartObject, obj As Object, s As Long
 
    dosya = ThisWorkbook.Path & "\NsnJPG\"
    Set alan = Sheets("Sayfa1").Range(Selection.Address)
 
    Set obj = CreateObject("Scripting.FileSystemObject").GetFolder(dosya)
    s = obj.Files.Count + 1
    
    alan.CopyPicture xlScreen, xlBitmap
    Set Chrt = ActiveSheet.ChartObjects.Add(1, 1, alan.Width, alan.Height)
 
    Chrt.Activate
    ActiveChart.Paste
    ActiveChart.Export dosya & s & ".jpg"
    Chrt.Delete
 
End Sub
 
Korhan hocam..! Öncelikle teşekkürler.. Eklemiş olduğunuz örnek, bendeki konuya çok yakın, (bendeki sadece açıklama kutusuna değil de hücre alanına olması idi).. Buna rağmen uyarlamaya çalıştım, ancak yine boş olarak geliyor..

Ömer hocam..! Size de çok teşekkürler.. Eklediğim dosyadaki kodlar vakti zamanıyla size aitti.. Ancak yukarıdaki kod, resim çağırmadı..
Bir de eklenen JPG'lere kendisi sıra numarası veriyor. Normalde, numarayı VeriForm!A1 sayfasından alması lazım..
(Bu numara her işlem yaptıkça artan bir numara idi..) Önceki kod'da, aynı numara olursa üzerine yapıştırıyordu, yani çoğaltmıyordu..
Neticede, sayfadan aldığı numara ile isimlendiriliyordu ve resim çağırma işini, numaraya göre çağırıyordum..
 
Benim şuan kullandığım laptopta 2010 versiyon var. Kod sorun çıkmadan çalışıyor.
 
Deneyiniz.
Kod:
Sub CopyRangeToGIF()
 
    Dim dosya As String, alan As Range, Chrt As ChartObject, obj As Object, s As Long
 
    dosya = ThisWorkbook.Path & "\NsnJPG\"
    Set alan = Sheets("Sayfa1").Range(Selection.Address)
 
    'Set obj = CreateObject("Scripting.FileSystemObject").GetFolder(dosya)
    's = obj.Files.Count + 1
    
    alan.CopyPicture xlScreen, xlBitmap
    Set Chrt = ActiveSheet.ChartObjects.Add(1, 1, alan.Width + 10, alan.Height + 10)
 
    Chrt.Activate
    ActiveChart.Paste
    ActiveChart.Export dosya & Sheets("VeriForm").Range("A1") & ".jpg"
    Chrt.Delete

End Sub
 
Ömer hocam..! Küçük bir prüz dışında her şey tamam.. Sadece resim tekrar çağrıldığında (Sayfa2 butonu ile) alt ve sağ kenarlıkları çıkıyor.. Çok da önemli olmamakla birlikte, Nesnede alt ve sağ kenarlıkları kaldırılabilirse her şey tamam olacak..

Korhan hocam.. Benim ilk mesajda yüklediğim dosya çalışıyor ise, ?? Bilemiyorum.. Başka bilgisayarlarda deneyeceğim. Ama Ömer beyin en son kodu şimdi çalıştı..
 
Set Chrt = ActiveSheet.ChartObjects.Add(1, 1, alan.Width + 10, alan.Height + 10)

+10 ları silerek deneyiniz.
 
Ömer hocam, JPG tablonun alt ve sağ kısmında fazlalık vardı, o düzeldi..
(Küçük tabloları JPG olarak, Sayfa2'ye aktarımda sorun yok..
Sadece, Sayfa2'den JPG'yi silip, tekrar klasörden çağırınca, tablonun üst ve sol çizgilerini almıyor)
Ama çok da önemli değil, sorun halledildi sayılır, sizi uğraştırmak istemiyorum..
Ziyadesiyle teşekkürler hocam, elinize sağlık..
 
Geri
Üst