Çözüldü Resim olarak yapıştırılan şekle atanan formülün çalışmaması

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
638
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Arkadaşlar,
Konu şöyle:
Ekli dosyanın modülündeki RESİM_SEÇ makrosu hatasız çalışıyor.
RESİM AL butonuna tıklayınca J1:M5 aralığını kopyalayıp resim olarak D8:G12 aralığına yapıştırıyor.
Yapıştırılan resme Selection.Formula = "='ANA SAYFA'!J1:M5" formülü atanıyor.

Sorun:
Oluşturulan resim J1:M5 aralığını alıp ilgili yerer yapıştırıyor fakat J1:M5 aralığında değişim yapılınca değişimi göstermiyor.
Ancak
Oluşturulan resim seçilip formül çubuğunda yazan ='ANA SAYFA'!J1:M5 yere tıklayıp Enter tuşuna basınca J1:M5 aralığında değişim yapılınca canlı olarak gösteriyor.

Çözüm isteği:
Yukarıda ancak ile ifade ettiğim işlemi yapmadan J1:M5 aralığındaki değişimi canlı olarak oluşturulan resimde görmek istiyorum.
Yani makro çalışınca değişimi canlı olarak göstersin.

Yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Ben paylaştığınız dosyada şimdi bir deneme yaptım. Bir sorun göremedim. Resim oluştuktan sonra J1:M5 aralığındaki değerleri değiştirdiğimde resim üzerinde de anlık olarak değişiyor.

Belki sizde HESAPLAMA YÖNTEMİ manuel olarak ayarlı olabilir.. Bunu kontrol ediniz.
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
638
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Korhan Ayhan,
Hesaplama seçeneklerinde Otomatik olarak seçili.

Oluşan resme hiç dokunmadan verileri güncelliyorsa garip bir durum.
Ofis ve Windows'u yakın zamanda temiz kurulum yaptım. Program kaynaklı bir sorun olmaması gerekiyor.
Microsoft 365 kullanıyor görünüyorsunuz, acaba bununla bir ilgisi olabilir mi diye düşünüyorum şimdi.

Deneme ve bilgilendirme için teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,257
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Bende de bir değişikliik olmadı, resmi seçip Enter tuşuna manuel olarak yapınca formül çalışıyor.
Tuhaftır ben de bir kaç gündür bu konu ile ilgileniyorum.

Tek bir işlem yaptığımda çalışıyor ama döngü ile birden fazla resim oluşturup formül verdiğimde sadece son resmin formülü etkinleşiyor.
Bu işlemden sonra resim seçili iken sendkeys ile F2 sonra da ENTER tuşu kullanıyorum.
Ben çözüm bulamadım.
Ben de Ofis 365 kullanıyorum.
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
638
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
İlk iletimdeki ekli dosyadaki kodu aşağıdaki gibi düzenledim ve sorun çözüldü.
Çözümün güvenilir olup olmadığından emin değilim.
Koda SendKeys "{F2}" ve SendKeys "{ENTER}" satırlarını ekledim ve kodun oluşturduğu resim hücrelerde yapılan değişimi canlı olarak göstermeye başladı.
Bununla birlikte Num Lock tuşunu pasif etti yeni kod.
Bu sorunu da SendKeys "{NUMLOCK}" satırını ekleyerek çözdüm.

VBA'da SendKeys ile başlayan kod satırlarının sorunlara neden olabileceğine ilişkin internette yorumlar var.
Tecrübeli arkadaşlar görüşleri varsa paylaşabilirler mi?


SON HÂLİ:
Kod:
Sub RESİM_SEÇ()
    Dim shp1 As Shape
        
        Sheets("ANA SAYFA").Range("J1:M5").CopyPicture Appearance:=xlScreen, Format:=xlPicture
        ActiveSheet.[D8].PasteSpecial
        
        Set shp1 = Selection.ShapeRange.Item(1)
        
        shp1.Name = "Bağlı_Resim"
        Selection.Locked = msoFalse   'Resmin kilidini kaldır.
        Selection.Formula = "='ANA SAYFA'!J1:M5"   'Resme formül ata.
        SendKeys "{F2}"
        SendKeys "{ENTER}"
        SendKeys "{NUMLOCK}"
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,257
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Ben de biraz önce Çoklu olanını yaptım. E sütununda Resim Oluşturuyor.
250294
Kod:
Public adt As Integer

Sub Kamera_Olustur()

    Dim UserRange As Range
    Dim OutputRange As Range
    Dim i As Long
    Dim shp As Shape

    For Each shp In ActiveSheet.Shapes
        If shp.AutoShapeType = 1 Then shp.Delete
    Next shp
    adt = 0
    Application.ScreenUpdating = True

    For i = 2 To Cells(Rows.Count, "B").End(3).Row Step 7
        Set UserRange = Range("B" & i).Resize(6, 2)
        Set OutputRange = UserRange(1, 1).Offset(0, 3)
        UserRange.CopyPicture
        OutputRange.PasteSpecial
        Selection.Formula = UserRange.Address
        adt = adt + 1
        Selection.Name = "Resim_" & adt
        With Application
            .SendKeys "{F2}", True
            .SendKeys "{ENTER}", True
        End With
        DoEvents
        Application.SendKeys "{ENTER}", False
    Next i
Application.SendKeys "{NUMLOCK}"

End Sub
 
Üst