Sayfa silme

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Arkadaşlar, sayın hocalarım, veri doğrulama olunca aklım karıştı, aktif sayfayı siliyorum, hücredeki sayfayı siliyorum. Yalnız A1 hücresinde Veri doğrulama ile sayfalarımın listesi var. Listeden sayfa seçince neden silmiyor?
Range("A1").Value diyerek buldurdum.
Yardımcı olabilir misiniz?
Teşekkür ederim.
Saygılarımla.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Kod:
Sub sayfasil()
a = Range("A1").Value
Application.DisplayAlerts = False
Sheets(a).Delete
Application.DisplayAlerts = True
End Sub
Şeklinde yazdım, A1'e 111 yazıyorum. 111 adlı sayfayı değil 222 adlı sayfayı siliyor.
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
451
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2021 TR - 64bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Kod:
Sub sayfasil2()
    Dim ws As Worksheet
    Dim SayfaAdi As String
   
    ' A1 hücresindeki sayfa ismini al
    SayfaAdi = ThisWorkbook.Sheets(ActiveSheet.Name).Range("A1").Value
   
    ' Eğer A1 boşsa işlem yapma
    If SayfaAdi = "" Then
        MsgBox "A1 hücresinde bir sayfa adı yok.", vbExclamation, "Uyarı"
        Exit Sub
    End If
   
    ' Çalışma kitabındaki tüm sayfaları kontrol et
    For Each ws In ThisWorkbook.Sheets
        If ws.Name = SayfaAdi Then
            Application.DisplayAlerts = False
            ws.Delete
            Application.DisplayAlerts = True
            MsgBox "Sayfa silindi: " & SayfaAdi, vbInformation, "Başarılı"
            Exit Sub
        End If
    Next ws
   
    ' Eğer döngü tamamlandıysa ve sayfa bulunamadıysa
    MsgBox "A1 hücresinde belirtilen sayfa bulunamadı.", vbExclamation, "Hata"
End Sub
Dosya paylaşmadığın için işine yarar mı bilmiyorum
 

Ekli dosyalar

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Kod:
Sub sayfasil2()
    Dim ws As Worksheet
    Dim SayfaAdi As String
  
    ' A1 hücresindeki sayfa ismini al
    SayfaAdi = ThisWorkbook.Sheets(ActiveSheet.Name).Range("A1").Value
  
    ' Eğer A1 boşsa işlem yapma
    If SayfaAdi = "" Then
        MsgBox "A1 hücresinde bir sayfa adı yok.", vbExclamation, "Uyarı"
        Exit Sub
    End If
  
    ' Çalışma kitabındaki tüm sayfaları kontrol et
    For Each ws In ThisWorkbook.Sheets
        If ws.Name = SayfaAdi Then
            Application.DisplayAlerts = False
            ws.Delete
            Application.DisplayAlerts = True
            MsgBox "Sayfa silindi: " & SayfaAdi, vbInformation, "Başarılı"
            Exit Sub
        End If
    Next ws
  
    ' Eğer döngü tamamlandıysa ve sayfa bulunamadıysa
    MsgBox "A1 hücresinde belirtilen sayfa bulunamadı.", vbExclamation, "Hata"
End Sub
Dosya paylaşmadığın için işine yarar mı bilmiyorum
Hocam, tam istediğim. Emeğinize sağlık. Var olun.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,727
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Döngüsüz bir alternatif...

C++:
Option Explicit

Sub Delete_Sheets()
    Dim Sh As Worksheet
    
    On Error Resume Next
    Set Sh = Nothing
    Set Sh = Sheets(CStr(Range("A1").Value))
    On Error GoTo 0
    
    If Not Sh Is Nothing Then
        Application.DisplayAlerts = False
        Sh.Delete
        Application.DisplayAlerts = True
        MsgBox "Sayfa silindi!", vbCritical
    Else
        MsgBox "Sayfa bulunamadı!", vbExclamation
    End If

    Set Sh = Nothing
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Döngüsüz bir alternatif...

C++:
Option Explicit

Sub Delete_Sheets()
    Dim Sh As Worksheet
   
    On Error Resume Next
    Set Sh = Nothing
    Set Sh = Sheets(CStr(Range("A1").Value))
    On Error GoTo 0
   
    If Not Sh Is Nothing Then
        Application.DisplayAlerts = False
        Sh.Delete
        Application.DisplayAlerts = True
        MsgBox "Sayfa silindi!", vbCritical
    Else
        MsgBox "Sayfa bulunamadı!", vbExclamation
    End If

    Set Sh = Nothing
End Sub
Teşekkür ederim hocam. Sağ olun.
 
Üst