• DİKKAT

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

combobox control ve kayıt

Katılım
25 Aralık 2007
Mesajlar
335
Excel Vers. ve Dili
exel 2000 türkçe
sorunum şöyle
ekteki dosyanın çek sayfasındaki butonla form açılıyor.
banka combosunda :
Private Sub UserForm_Activate()
ComboBox1.AddItem "YAPI KREDİ BANKASI" kodu ile banka isimleri kayıtlı
ancak kayıtlı olmayan bir banka yazıldığında
kod bunu kontrol edecek
msgbox ile bankanın kayıtlı olmadığını hatırlatacak kayıt yapıp yapmak istemediğimi sorup eğer evet dersem banka ismini combobox1 e kayıt edecek
örnek:
Private Sub UserForm_Activate()
ComboBox1.AddItem "YAPI KREDİ BANKASI"
ComboBox1.AddItem "GARANTİ BANKASI"
ComboBox1.AddItem "İŞ BANKASI"
ComboBox1.AddItem "KOÇ BANK"
ComboBox1.AddItem "FİNANS BANK"
End Sub
ile kayıtlı bankalar bulunmakta
fakat kullanıcı diyelimki OYAK BANK kayıt edecek ve bu banka comboda kayıtlı değil;
msgbox acılacak bu banka kayıtlı değil kayıt edeyimmi diye soracak evet denirse ;
Private Sub UserForm_Activate()
ComboBox1.AddItem "YAPI KREDİ BANKASI"
ComboBox1.AddItem "GARANTİ BANKASI"
ComboBox1.AddItem "İŞ BANKASI"
ComboBox1.AddItem "KOÇ BANK"
ComboBox1.AddItem "FİNANS BANK"
ComboBox1.AddItem "OYAK BANK"
olacak
saygılarımla
 

Ekli dosyalar

Merhaba,

Bu tür parametreleri sayfada saklamak konrol açısından daha kolay olur.

Parametre adlı bir sayfa açıp banka isimlerini oraya koydum ve comboda yazdığınız banka adı sayfada yoksa comboya ve sayfaya ekler.

Kod:
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim c       As Range
Dim sp      As Worksheet
Dim Evet    As String
Set sp = Sheets("Parametre")
    Set c = sp.Range("a:a").Find(ComboBox1.Value, LookIn:=xlValues)
    If c Is Nothing Then
        Evet = MsgBox(ComboBox1.Value & " Bankası Listede Yok, Eklensin Mi?", vbYesNo, "Banka Ekleme")
        If Evet = vbYes Then
            ComboBox1.AddItem ComboBox1.Value
            sp.Cells(sp.[A65536].End(3).Row + 1, "A") = ComboBox1.Value
        End If
    End If
End Sub


Kod:
Private Sub UserForm_Activate()
Dim sp  As Worksheet
Dim i   As Integer
Set sp = Sheets("Parametre")
For i = 1 To sp.[A65536].End(3).Row
    [B]ComboBox1.AddItem sp.Cells(i, "A")[/B]
Next i
ComboBox2.AddItem "402/BAKIRKÖY"
End Sub
 

Ekli dosyalar

ComboBox1 ' e verileri sayfadan alırsanız olabilir.

Ben yazarken Necdet hocam cevaplandırmış.
 
hocam teşşekkürler ederim
ancak ögrenmek adına bir şey daha sorucam müsadenizle
peki aynı şekilde şube icinde ayrı bir sayfamı açmam gerekli
yani ben formdan combo1 icin ornek alırsam combo 2 yi kendim yapabilirim diye düşündüm ancak yapmış olduğunuz kodlamayı combo 2 ye kendim uyarlayamadım
 
Merhaba,

Kodları aşağıdaki şekilde değiştirdim ve yeni kodlar ekledim. İnceleyiniz.

Kod:
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    
    Dim c           As Range
    Dim IlkAdres    As String
    Dim sp          As Worksheet
    Dim Evet        As String
    Set sp = Sheets("Parametre")
    Set c = sp.Range("a:a").Find(ComboBox1.Value, LookIn:=xlValues)
    If c Is Nothing Then
        Evet = MsgBox(ComboBox1.Value & " Bankası Listede Yok, Eklensin Mi?", vbYesNo, "Banka Ekleme")
        If Evet = vbYes Then
            ComboBox1.AddItem ComboBox1.Value
            sp.Cells(sp.[A65536].End(3).Row + 1, "A") = ComboBox1.Value
        End If
    End If
    
    ComboBox2.Clear
    With sp.Range("C:C")
        Set c = .Find(ComboBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            IlkAdres = c.Address
            Do
                ComboBox2.AddItem sp.Cells(c.Row, "D")
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> IlkAdres
        End If
    End With
End Sub


Kod:
Private Sub ComboBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Sonsat      As Long
    Dim c           As Range
    Dim IlkAdres    As String
    Dim sp          As Worksheet
    Dim Evet        As String
    Dim Bayrak      As Boolean
    Bayrak = False
    
    Set sp = Sheets("Parametre")
    
    With sp.Range("D:D")
        Set c = .Find(ComboBox2.Value, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            IlkAdres = c.Address
            Do
                If sp.Cells(c.Row, "C") = ComboBox1.Value Then
                    Bayrak = True
                    Exit Do
                End If
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> IlkAdres
        End If
        If Bayrak = False Then
            Evet = MsgBox(ComboBox2.Value & " Şubesi Listede Yok, Eklensin Mi?", vbYesNo, "Banka Ekleme")
            If Evet = vbYes Then
                ComboBox2.AddItem ComboBox2.Value
                Sonsat = sp.[C65536].End(3).Row + 1
                sp.Cells(Sonsat, "C") = ComboBox1.Value
                sp.Cells(Sonsat, "D") = ComboBox2.Value
            End If
        End If
    End With
    
End Sub

Userform active kodunu UserForm Initialize ile değiştirdim.

Kod:
Private Sub UserForm_Initialize()
Dim sp  As Worksheet
Dim i   As Integer
Set sp = Sheets("Parametre")
For i = 1 To sp.[A65536].End(3).Row
    ComboBox1.AddItem sp.Cells(i, "A")
Next i
End Sub
 

Ekli dosyalar

Geri
Üst