Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

ErolU

Normal Üye
Excel Versiyonu
Excel 2021
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Arkadaşlar,
Ekteki dosyada yer alan makro bir sayfadaki belli bir alanın görüntüsünü resim olarak kopyalayıp başka bir sayfaya formül atayarak getiriyor.
Yani Excelin kamera özelliği kullanılıyor.
Sorun şu: Kopyalanan resim excelin hafızasında kalıyor. Bunu engellemek istiyorum.
Ekli dosyada uygulamalı olarak sorunu görebilirsiniz.
Yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Ömer BARAN,​

Kod sorunu çözdü. Çok sağ olun.
Asıl belgem biraz karışık, buradaki belgeyi basitleştirmiştim. Bunu için biraz denemeler yapmak istiyorum. Konuyu çözüldü olarak yarın işaretleyeceğim. Belki hesapta olmayan bir durum ortaya çıkar.
 

Ömer BARAN,​

Kodu aşağıya eklediğim biçime dönüştürünce hiçbir sorun olmadan çalışıyor.
>>> İlk üç satırda 32/64 bit uyumu için PtrSafe ve Ptr ifadelerini ekledim.
>>> KAMERA adlı makroya Selection.Formula = "='Veri'!I2:M11" satırını ekledim. Bunu eklemeyince oluşturulan resim dinamik olmuyordu. Bu biçimi ile ilgili yerdeki değişim anlık olarak yansıtılabiliyor (Excel'in kamera özelliği oluşuyor yani.).

NOT: Asıl belgemde kullandığım kod yapıştırma satırında bazen hataya düşüyordu. Sanırım hafızada kalan resimden kaynaklıydı. Şimdi bu hata oluşmuyor.
Yardımınız sayesinde kodum sadeleşti ve sorunu kalmadı. Yeniden teşekkürlerimi sunuyorum. Sağ olun.


Kodun son şeklini aşağıya ekliyorum.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
 
Bir alternatif de; Declare vs kodları yazmadan sadece şu şekilde bir kod kullanmak olsun.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)

Baştaki For...Next döngüsü, düğmeye her tıklamada aynı resmin tekrar ve tekrar yapıştırılmaması için var ve
önce varsa mevcut görselin silinmesini sağlar.
Silme gerekli değil derseniz kodda ilgili kısmı silersiniz veya her satırın sol başına TEK TIRNAK eklersiniz.
 

Ömer BARAN,​

Yeni kod için teşekkürler.
Göderdiğiniz koddaki ActiveSheet.[A1].Activate: Selection.Copy: Application.CutCopyMode = False satırını kullanacağım. Daha basit bir yol olduğu için.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(7 satır)

Koddaki bu bölüm $B$2 hücresini referans aldığı için oluşturulan resim bu hücreden sağa sola vb. bir yere taşınınca silme işlemi yapılmıyor.
For Each bölümünü ben de kullanıyorum.
Önce sayfadaki resimlere ad veriyorum ve bu adları aratarak silme şeklinde kullanıyorum.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst