Comboboxtan nesne çıkarma

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub Tsb_Yeni()
        'Sayfayı kopyala yeniden adlandır
        ckBU_sfTSB.Select
        ckBU_sfTSB.Copy After:=Sheets(ckBU_ss)
        ActiveSheet.Name = ycl_gsf_adı
        ActiveWorkbook.Sheets(ycl_gsf_adı).Tab.ColorIndex = 8
        'Userformdaki çalışma sayfa sayısını güncelle, comboboxta son sayfayı göster
[color="red"]    uf_isl.cb_syf.AddItem Sheets(ycl_gsf_adı).Name   ' 'son eklenen çalışma sayfası

        ckBU_ss = ckBU.Worksheets.Count                  'bu kitabın sayfa sayısı
        uf_isl.cb_syf.Value = Sheets(ckBU_ss).Name              'son sayfa         '||[/color]
End Sub
kırmızı kodlar ile son eklediğim çalışma sayfasını comboboxta seçili hale getirebiliyorum...
çalışma sayfasını user formdan sildirdiğimde silinen sayfanın combobota olmaması için ne yapmalıyım....
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Kod:
Sub Tsb_Yeni()
        'Sayfayı kopyala yeniden adlandır
        ckBU_sfTSB.Select
        ckBU_sfTSB.Copy After:=Sheets(ckBU_ss)
        ActiveSheet.Name = ycl_gsf_adı
        ActiveWorkbook.Sheets(ycl_gsf_adı).Tab.ColorIndex = 8
        'Userformdaki çalışma sayfa sayısını güncelle, comboboxta son sayfayı göster
[COLOR=red]   uf_isl.cb_syf.AddItem Sheets(ycl_gsf_adı).Name   ' 'son eklenen çalışma sayfası[/COLOR]
 
[COLOR=red]       ckBU_ss = ckBU.Worksheets.Count                  'bu kitabın sayfa sayısı[/COLOR]
[COLOR=red]       uf_isl.cb_syf.Value = Sheets(ckBU_ss).Name              'son sayfa         '||[/COLOR]
End Sub
kırmızı kodlar ile son eklediğim çalışma sayfasını comboboxta seçili hale getirebiliyorum...
çalışma sayfasını user formdan sildirdiğimde silinen sayfanın combobota olmaması için ne yapmalıyım....

Aşağıdaki kod ile combobox'ta o anda seçili olan satırı silebilirsiniz.

Kod:
deger = combobox1.listindex
combobox1.removeItem (deger)
Ama sizin bahsettiğiniz durumda ise, sayfayı sildirdikten sonra, sayfa isimlerini combobox'a alan uygulamayı tekrarlatın ( Mesela userform_initialize), o zaman güncel liste açılır kutuya gelecektir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam indeks değeri yerine sayfa adını vererek silemezmiyiz
bendeki değişken adı
ycl_gsf_adı

combobox1.removeItem (Sheets(ycl_gsf_adı).Name) gibi oabilirmi deeyemiyorum uygulama evdeki makinedek almış
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam indeks değeri yerine sayfa adını vererek silemezmiyiz
bendeki değişken adı

combobox1.removeItem (Sheets(ycl_gsf_adı).Name)

gibi olabilirmi şu an deneyemiyorum uygulama evdeki makinede kalmış
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
hocam indeks değeri yerine sayfa adını vererek silemezmiyiz
bendeki değişken adı
ycl_gsf_adı

combobox1.removeItem (Sheets(ycl_gsf_adı).Name) gibi oabilirmi deeyemiyorum uygulama evdeki makinedek almış
Bunu neden istediğinizi anlayamadım. Listindex değeri işinize yaramıyormu?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
kodu bu kodların arasına nasıl yerleştirmeliyim, ozaman öyle sorayım


Kod:
Private Sub UserForm_Initialize()  
..................
For sf_ind = 1 To ckBU_ss: uf_isl.cb_syf.AddItem Sheets(sf_ind).Name: Next  'Çalışma Sayfaları '||
cb_syf.Value = Sheets(ckBU_ss).Name                                         'son sayfa         '||
.............

Kod:
Private Sub Cmd_Gun_Aktar_Click()
...................................
    If sfAYL_str > isl_tar Then
    MsgBox "Daha Önce " & sfAYL_str & " tarihi için işlem yapmış bulunmaktasınız!" & vbCr & _
           isl_tar & " için işlem yapamazsınız!": Exit Sub
    ElseIf sfAYL_str = isl_tar Then
    cevap = MsgBox("Daha Önce " & isl_tar & " tarihi için işlem yapmış bulunmaktasınız!" & vbCr & _
           "Devam ederseniz önceki verileriniz silenecektir,  işlem yapmaya devam edecekmisiniz?", vbYesNo, "UYARI")
            If cevap = vbYes Then
                For i = 1 To Sheets.Count
[color="red"]
                    If Sheets(i).Name = ycl_gsf_adı Then
                        Application.DisplayAlerts = False
                        Sheets(i).Delete
                        Application.DisplayAlerts = True
                        Exit For
                    End If
[/color]
                Next i
            ElseIf cevap = vbNo Then
                MsgBox isl_tar & " tarihi için işlem iptal edilmiştir.": Exit Sub
            End If
    End If
kodlardan ilgili olanlar bunlar, istediğim comboboxtan silinen sayfanın çıkartılarak sayfanın güncellenmesi.
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub Cmd_Gun_Aktar_Click()
...................................
'------------ aynı güne ait çalışma sayfası varsa sil.
    'MsgBox sfAYL_str, , "sfAYL_str":    Exit Sub
    If sfAYL_str > isl_tar Then
    MsgBox "Daha Önce " & sfAYL_str & " tarihi için işlem yapmış bulunmaktasınız!" & vbCr & _
           isl_tar & " için işlem yapamazsınız!": Exit Sub
    ElseIf sfAYL_str = isl_tar Then
    cevap = MsgBox("Daha Önce " & isl_tar & " tarihi için işlem yapmış bulunmaktasınız!" & vbCr & _
           "Devam ederseniz önceki verileriniz silenecektir,  işlem yapmaya devam edecekmisiniz?", vbYesNo, "UYARI")
            If cevap = vbYes Then
                For i = 1 To Sheets.Count
                    If Sheets(i).Name = ycl_gsf_adı Then
                        Application.DisplayAlerts = False         'uyarı kapat
                        Sheets(i).Delete                              'sayfayı sil
[B][color="blue"] ' i-1 çünkü indexdeğerleri 0 dan başlar
                        uf_isl.cb_syf.RemoveItem (i - 1)         'sayfayı cbboxtan sil[/color][/B]
                        Application.DisplayAlerts = True          'uyarı aç
                        Exit For
                    End If
                Next i
            ElseIf cevap = vbNo Then
                MsgBox isl_tar & " tarihi için işlem iptal edilmiştir.": Exit Sub
            End If
    End If
'------------------------------<<<<<<&#199;al&#305;&#351;maSayfas&#305;Kontrol&#252;
&#350;&#304;mdilik halletim galiba... te&#351;ekk&#252;rler
 
Üst