Verilen Sayfaların Dışındaki Sayfaları Sil - Microsoft Excel


İlgili çalışma sayfalarının ismi girildiğinde bu çalışma sayfaları haricindeki diğer sayfaları silen VBA kodu alternatifidir.

Kod


Option Explicit

'---------------------------------------
'Çalışma kitabı kapatılırken işlem yap.
'---------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    VerilenSayfalarinDisindakiSayfalariSil
End Sub

'---------------------------------------
'Sayfa Silme Makrosu
'---------------------------------------
Sub VerilenSayfalarinDisindakiSayfalariSil()
    '---------------------------------------
    'Değişkenler
    '---------------------------------------
    Dim i       As Integer
    Dim dizi    As Variant
    Dim sayfa   As Worksheet
    Dim kontrol As Boolean
    
    '---------------------------------------
    'Değişkenlere değer ataması yap.
    '---------------------------------------
    dizi = Array("veri", "rapor", "satis")
    kontrol = False
    
    '---------------------------------------
    'Her sayfayı kontrol et.
    '---------------------------------------
    For Each sayfa In ThisWorkbook.Sheets
        
        '---------------------------------------
        'Dizideki her sayfa ismi için işlem yap.
        '---------------------------------------
        For i = LBound(dizi) To UBound(dizi)
            
            '---------------------------------------
            'Eğer dizideki sayfa adı varsa kontrol
            'değişkeninin değerini True yap.
            '---------------------------------------
            If dizi(i) = sayfa.Name Then
                kontrol = True
            End If
        Next
        
        '---------------------------------------
        'Eğer "kontrol" değişkeninin değeri False ise
        'ilgili sayfa dizideki sayfa isimlerinden
        'hiçbiriyle eşleşmemiş demektir. Sayfayı sil.
        '
        'Eğer "kontrol" değişkeninin değeri True ise
        'bir şey yapma, kontrol edilecek yeni sayfa
        'için "kontrol" değişkeninin değerini yeniden
        'ayarla.
        '---------------------------------------
        If kontrol = False Then
            Application.DisplayAlerts = False
            
            sayfa.Delete
            
            Application.DisplayAlerts = True
        Else
            kontrol = False
        End If
    Next
End Sub

Etiketler
microsoft excel microsoft excel vba microsoft excel vba çalışma sayfası işlemleri microsoft excel vba döngü işlemleri microsoft excel vba workbook_beforeclose