• DİKKAT

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

Sayfa silme

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,452
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
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.
 
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.
 
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

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.
 
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
 
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.
 
Geri
Üst