• DİKKAT

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

Makro atanmış Düğme (Form Denetimi) butonlarının kaybolması

Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Arkadaşlar, Geliştirici > Ekle > Form Denetimleri > Düğme (Form Denetimi) nden makro atanmış butonlar ekledim. Hepsine makrolarını atadım, dosyayı kaydettim. Kapattım açtım butonların hepsi kaybolmuş (Herhangi bir gizleme/gösterme/filtreleme.. v.b yapmadım). Daha sonra denemek için 1 buton daha ekleyip dosyayı kaydettim ve yeniden kapatıp açtım buton yeniden kayboldu. Yani butonları bir türlü kalıcı hale getiremedim. Desteğinizi rica ederim.
 
Dosyanızı görmeden yorul yapmak zor ama ihtimalle açılış kodlarınız mevcut ve resimleri nesneleri sil komutları var. Onlar butonları silmeye yarıyor.
 
Makro kodları aşağıdaki gibi, acaba buradan bir sonuca varabilir miyiz?

Kod:
Sub Sbt_desen_tüm_ebatlar()
'
' Sbt_desen_tüm_ebatlar Makro
'

'
    Application.EnableEvents = False

    ActiveSheet.PivotTables("PivotTable1").PivotFields("Desen").CurrentPage = ActiveCell.Value
    
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").CurrentPage = _
        "(All)"
    
    Application.EnableEvents = True
        

End Sub


Sub Kalınlık_18_mm_ye_dön()
'
' Kalınlık_18_mm_ye_dön Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Desen").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Desen").CurrentPage = _
        "(All)"
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").CurrentPage = "18"
End Sub
Sub Kalınlık_18mm()
'
' Kalınlık_18mm Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").CurrentPage = "18"
End Sub
Sub Kalınlık_25mm()
'
' Kalınlık_25mm Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").CurrentPage = "25"
End Sub
Sub Kalınlık_30mm()
'
' Kalınlık_30mm Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").CurrentPage = "30"
End Sub
Sub en_210mm()
'
' en_210mm Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("En").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("En").CurrentPage = "210"
End Sub
Sub En_183mm()
'
' En_183mm Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("En").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("En").CurrentPage = "183"
End Sub
Sub Boy_280()
'
' Boy_280 Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Boy").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Boy").CurrentPage = "280"
End Sub
Sub Boy_366()
'
' Boy_366 Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Boy").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Boy").CurrentPage = "366"
End Sub
Sub Üretim_Durumu_Üretilebilir()
'
' Üretim_Durumu_Üretilebilir Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Üretim Durumu"). _
        ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Üretim Durumu"). _
        CurrentPage = "ÜRETİLEBİLİR"
End Sub
Sub Filtreleri_temizle()
'
' Filtreleri_temizle Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").ClearAllFilters
End Sub
Sub MAL_GRUBU_MKYL()
'
' MAL_GRUBU_MKYL Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("MAL GRUBU").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("MAL GRUBU").CurrentPage = _
        "MKYL"
End Sub
Sub MAL_GRUBU_YL()
'
' MAL_GRUBU_YL Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields("MAL GRUBU").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("MAL GRUBU").CurrentPage = _
        "YL"
End Sub
 
Evet haklısınız, başka bir makrodaki nesneleri silme alanını değiştirince düzeldi. Teşekkürler.
 
askm Bey/Hanım , 1 buton ekleyip denedim olmuştu. Şimdi yine olmuyor. Nesneleri silinmesini sağlayan kod aşağıdaki gibi, rica etsem yardımcı olabilir misiniz? Silinecek alanı N9:O40 olarak belirlemiştim, butonlar ise A1:K8 arasında yer alıyor.

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

Dim ResimDosyaYolu As String
Dim Resim As Object
Dim Resim_yolu
 
'herhangi bir hata olusursa Çikis labelina git
On Error GoTo Çikis:

'resimleri Sil
Set Alan = Range("N9:O40")
 For Each Resim In ActiveSheet.Pictures
        If Not Intersect(Resim.TopLeftCell, Alan) Is Nothing Then
            Resim.Delete
        End If
Next

'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("n9:o28")
     Resim.ShapeRange.LockAspectRatio = msoFalse
     Resim.Top = .Top
     Resim.Left = .Left
     Resim.Height = .Height
     Resim.Width = .Width
     End With
 
'Next i
Çikis:
End Sub
 
Son düzenleme:
Geri
Üst