• DİKKAT

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

Makro butonunu sabitleme

Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Arkadaşlar, pivot kullandığım bir sayfaya adımla makro kaydedip buton atadım. fakat sayfada daha önceden butonsuz başka bir makro vardı. Şimdi buton atanmış makroyu çalıştırınca buton kayboluyor. Özelliklerinden "Hücrelerle taşıma ve boyutlandırma" yı seçiyorum yinede kayboluyor. Yardımınızı rica ederim. Sayfadaki diğer makro kodu aşağıdaki gibi :
Kod:
Public Function DosyaVarmi(dosyayolu As String) As Boolean
    On Error GoTo Çikis
    If Not Dir(dosyayolu, vbDirectory) = vbNullString Then DosyaVarmi = True
     
Çikis:
    On Error GoTo 0
End Function
 
'worksheette bir degisiklik oldugunda bu kisim çalisiyor
Private Sub Worksheet_Change(ByVal Target As Range)
 
'degisiklik b sutunundami olmus diye kontrol et, degilse direk olarak fonksiyondan çik
If Intersect(Target, [E1]) Is Nothing Then Exit Sub
 
'herhangi bir hata olusursa Çikis labelina git
On Error GoTo Çikis:
 
' ilk olarak yüklü olan Resimleri silelim
ActiveSheet.DrawingObjects.Delete
 
Dim ResimDosyaYolu As String
Dim Resim As Object
Dim Resim_yolu


'b deki 5 ile 12 arasindaki satirlari kontrol edip resim atamasi yapiyoruz, siz burayi isteginize göre artirabilirsiniz
'For i = 5 To 12
    'aktif sayfanin path bilgisini alip, seçilen ürün idyi sonuna ekliyoruz ve dosyayi aliyoruz
    ResimDosyaYolu = Resim_yolu & "\\orfs1\depo\Planlama\Desen_resimler\" & Range("e" & 1) & ".jpg"
 
    'dosya yok ise hataya düsmemek için asagidaki kontrolü yapiyoruz.
    If DosyaVarmi(ResimDosyaYolu) Then
         ResimDosyaYolu = Resim_yolu & "\\orfs1\depo\Planlama\Desen_resimler\" & Range("e" & 1) & ".jpg"
   Else
         ResimDosyaYolu = Resim_yolu & "\\orfs1\depo\Planlama\Desen_resimler\yok.jpg"
   End If
         
    'resmi olusturuyoruz.
     Set Resim = ActiveSheet.Pictures.Insert(ResimDosyaYolu)
     'Resmi boyutlandiriyoruz
     With Range("m1:n20")
     Resim.ShapeRange.LockAspectRatio = msoFalse
     Resim.Top = .Top
     Resim.Left = .Left
     Resim.Height = .Height
     Resim.Width = .Width
     End With
 
'Next i
Çikis:
End Sub
 
Kod:
ActiveSheet.DrawingObjects.Delete

Satırı siliyor.
Eğer silinmesi gereken başka nesneler yoksa bu satırı silerseniz düğme silinmez.
 
Yukarıda kodları bulunan makroyu değişen değerlere bağlı olarak otomatik resim gelmesi için kullanıyorum. Ne yazık ki makro bilgim zayıf, o yüzden detayına hakim değilim ama sanırım o silme kodunu sayfadan eski resimi silmek için kullanıyor. O yüzden o kodu iptal etmemiz halinde resimler üstüste binecek diye tahmin ediyorum.

Bu arada yukarıdaki koddaki resim konumunu N9:O28 olarak güncelledim. Makro butonlarını da C1 ile C7 arasına konumlamak istiyorum.

Destekleriniz için teşekkür ederim.
 
Son düzenleme:
yukarıdaki makro kodunu ilk 8 satırı silmeyeceği şekilde revize edebiliyor muyuz acaba?
 
Geri
Üst