• DİKKAT

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

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....
 
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.
 
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:
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ış
 
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?
 
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:
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
 
Geri
Üst