listbox ta sayfa silme

Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
arkadaşlar merhaba,
aşağıdaki kodlar ile litsboxta sayfa silebiliyorum, fakat döngüyü tam oluşturamadım galiba sürekli sayfaları sileyimmi diye soruyor.
listede kaç sayfa varsa bu soru bir o kadar soruluyor.
bu kodu biryerden kopyalayıp uyarlamaya çalıştım ama olmadı.

Private Sub del_Click()
On Error Resume Next
n = 0
For i = 1 To ActiveWorkbook.Worksheets.Count
If Sheets(i).delete Then n = n + 1
Next i
If n = 1 And Sheets(LB1.Value).delete Then GoTo Message
x = LB1.ListIndex
Sheets(LB1.Value).delete = False
If CKsorted.Value = False Then DefineList Else BubbleSort
LB1.ListIndex = x
Exit Sub
Message:
MsgBox ("En az bir sayfa kalmak zorunda.")

End Sub

neresinde eksiklik yada fazlalık var bulamadım.
yardımlarınızı bekliyorum.

iyi çalışmalar,
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
tabi hemen gönderiyorum,
bu dosya bir yerden elime geçti biraz değişiklik yaptım ama sili başaramadım,

iyi çalışmalar,
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
syn bekir38, aşağıdaki kodu del butonu ile ilişkilendirin.
Private Sub del_Click()
If LB1.Text = "" Then MsgBox "Ã?nce bir sayfa seçiniz!", vbExclamation: Exit Sub
If del.Caption = "Seç" Then
Worksheets(LB1.Text).Activate
Unload Me
Unload Startup_Form
Else

Worksheets(LB1.Text).Delete
Unload Me
Unload GotoSheet
End If

End Sub

KOLAY GELSİN
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
teşekkürler mahmut bey,

ellerinize sağlık, kod gayet güzel çalışıyor.

iyi çalışmalar,
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
bu soruya ilaveten bir sorum daha olacaktı,

bu olay yeni gelişti. şimdi sayfalarıı gayet güzel siliyor ama;
ana sayfa ve veri diye sayfalarım var buraları kullanıcıların silmemesi gerekiyor.
sayfalar buralardan veri alıyor. bu sorunu nasıl aşabilirim?

iyi çalışmalar,
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
syn bekir38, şöyle bir çözüm önersem.
VBA'da sayfaların properties penceresinde. İstenilen sayfayı Visible bölümünden
2-xlSheetVeryHidden yaparsanız.
Sayfa silenemeyecek ve form hata varecektir.
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
mahmut bey iyi günler,

dediğiniz özellikleri yaptım ama şöyle bir sıkıntı doğdu ;
bu sayfalar gizlendi. ama benim kitapta açılışta ana sayfadan açılıyordu. döngü her açıldığında hata veriyor bu yüzden ve veri sayfasına yeni kayıt giremiyorum.
en iyisi ben size bir örnek göndereyim.böyle daha açıklayıcı olur.

iyi çalışmalar,
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
syn bekir38,
Worksheets(2).Visible = xlVeryHidden 'sayfa 2 yi gizler 2 yazan yeri anasayfa olarak değiştir.

Worksheets(2).Visible = True ' bu kodda aynı sayfayı gösterir gizliliği kaldırır.
bunlarla birşeyler yapabilirsin
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
mahmut bey,
kodu ANASAYFA altında şu şekilde değiştirdim,

Worksheets(ANASAYFA).Visible = xlVeryHidden
Worksheets(ANASAYFA).Visible = True

ama yinede silmemem için uyarmadı. daha doğrusu sayfayı sil dediğimde sildi.
yanlış birşeyler yapıyorum herhalde.
örnekte de görüldüğü gibi bazı sayfalara erişim ve bilgi güncellemesi bu sayfadan yapılıyor. veri sayfasınada yeni bir güncelleme yapılması gerektiginde ihtiyaç duyuyor. dolayısı ile ne gizleyebiliyorum nede silmesine müsade. çünkü maliyet sayfası her iki sayfadanda bilgi alıyor. bu sayfaların silinmesi demek proğramın çalışmaması demektir. gizlenmeside güncelleme için sakıncalı oluyor.

sizden rica etsem gönderdiğim örnekte uygulamayı yapıp bana gönderebilirmisiniz?

iyi çalışmalar,
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
syn bekir38,
1.sayfanızın ismi "ANA SAYFA" diye geçiyor. Worksheets(ANA SAYFA)
2.Bir de Sayfa Sheet'i 5 olarak geçiyor. Worksheets(5)

bu iki olayı gözönünde bulundurarak tekrar deneyiniz.
olmazsa başka alternatiflere bakarız.
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
mahmut bey,
sayfa ismini "ANASAYFA" diye düzelttim, Worksheets(ANASAYFA) oldu.
birde ANASAYFA VBA da Sheet'i 5 olarak geçiyor demişsiniz. Worksheets(5) olarak onuda düzelttim. sonuç aşağıdaki gibi,

Worksheets(ANASAYFA).Visible = xlVeryHidden
Worksheets(5).Visible = True

ama yine silmeme izin verdi. ANASAYFA anında uçtu gitti,

iyi çalışmalar,
 
Katılım
5 Mayıs 2005
Mesajlar
72
Kod:
Private Sub del_Click()

If LB1.Text = "ANA SAYFA" Then Exit Sub

If LB1.Text = "" Then MsgBox "Ã?nce bir sayfa seçiniz!", vbExclamation: Exit Sub
If del.Caption = "Seç" Then
Worksheets(LB1.Text).Activate
Unload Me
Unload Startup_Form
Else

Worksheets(LB1.Text).Delete
Unload Me
Unload GotoSheet
End If
  
End Sub
 
Katılım
13 Temmuz 2005
Mesajlar
345
Altın Üyelik Bitiş Tarihi
28.05.2019
teşekkürler sayın cemil1,

kodlar çalıştı, proğramın bu aşaması bitti.
emeği geçen herkese teşekkürler.

iyi çalışmalar, :Dost: :mutlu:
 
Üst