• DİKKAT

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

2 Adet ComboBox ile 2 Aşamalı Sorgu

  • Konbuyu başlatan Konbuyu başlatan s.savas
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Merhaba Arkadaşlar.
Aşağıdaki kod ile ComboBox1 de tanımlanan bütçe koduna ait ilgili yıla ait kullanılabilir ödenek tutarını _BÜTÇESİ isimli sayfadan bulduruyorum.
1.Aşama:

Kod:
Private Sub ComboBox1_Change()
    Dim Bul As Range, Sayfa As String
    Sayfa = Left(Sheets("Sabit").Range("F1"), 4)
    For Each Bul In Sheets(Sayfa & "_BÜTÇESİ").Range("B10:m" & Sheets(Sayfa & "_BÜTÇESİ").Range("B65536").End(3).Row)
       If Bul.Value = ComboBox1.Value Then
          TextBox5.Value = FormatCurrency(Bul.Offset(0, 11).Value, 2)
        End If
    Next Bul
End Sub
2.Aşama:
ComboBox1 de seçilen bütçe kodundan sonra ComboBox2 de tanımlanmış alım yöntemine göre yeni değerin bulunmasını sağlamak.

Örnek1:
ComboBox1: 253-02 bütçesi seçildiği zaman TextBox5'in aldığı değer: 283.500,00 TL oluyor, ComboBox2 den sadece m.21-f ve m.22-d seçildiği zaman TextBox5 alması gereken değer 1.752.184,80 TL, yani _BÜTÇESİ isimli sayfanın L7 hücresi.

Örnek2:
ComboBox1: 740-104 bütçesi seçildiği zaman TextBox5'in aldığı değer: 80.865,00 TL oluyor, ComboBox2 den sadece m.21-f ve m.22-d seçildiği zaman TextBox5 alması gereken değer 1.382.911,10 TL, yani _BÜTÇESİ isimli sayfanın L8 hücresi.

Örnek3:
ComboBox1: 253-01 bütçesi seçildiği zaman TextBox5'in aldığı değer: 511.830,00 TL oluyor, ComboBox2 den sadece m.21-f ve m.22-d seçildiği zaman TextBox5 alması gereken değer 87.870,00 TL, yani _BÜTÇESİ isimli sayfanın L9 hücresi.

Burada dikkat edimesi gereken nokta hangi bütçenin hangi alım grubuna ait olduğunun bilinmesidir. Bu da _BÜTÇESİ isimli sayfanın A sütununda tanımlanmıştır. M Mal Alımını, H Hizmet Alımını, Y Yapım İşlerini tanımlamaktadır.

m.21-f ve m.22-d seçildiği zaman, bakanlık genelgesine göre mal, hizmet ve yapım işlerine tahsis edilen bütçelerin ayrı ayrı olmak üzere tamamının %10 nun kullanılabileceği içindir. Diğer alım yöntemlerinden m.19, m.21-b, m.22-a, m.22-f, Çerçeve ve D.M.O alımlarında her bütçenin kendisinin %90 nını kullanabiliyoruz.

L7 hücresi m.21-f ve m.22-d ile kullanılabilecek Mal Alımlarına ait toplam kullanılabilir bütçedir.
L8 hücresi m.21-f ve m.22-d ile kullanılabilecek Hizmet Alımlarına ait toplam kullanılabilir bütçedir.
L9 hücresi m.21-f ve m.22-d ile kullanılabilecek Yapım İşlerine ait toplam kullanılabilir bütçedir.

Spesifik bir talep olduğunundan umarım anlaşılabilir bir şekilde izah etmişimdir.
 

Ekli dosyalar

Talep Husgvarna üstat tarafından aşağıdaki yöntemle yerine getirilmiştir.
Kendisine teşekkür ederim.
Kod:
Private Sub ComboBox2_Change()
Dim Bul As Range, Sayfa As String
Sayfa = Left(Sheets("Sabit").Range("F1"), 4)

   If ComboBox1 <> "" And ComboBox2 <> "" Then
    b = 13 '"M" sütunu
    Select Case ComboBox2.Value
    Case "m.21-f", "m.22-d"  'combo value "m.21-f", "m.22-d" ise
    If CheckBox1.Value = True Then
    grup
    Exit Sub
    End If
   b = 12 '"L" sütunu
    End Select
        With Sheets(Sayfa & "_BÜTÇESİ")
            For x = 10 To .Range("B65536").End(3).Row
                  If .Cells(x, 2) = ComboBox1 Then
                  TextBox5 = .Cells(x, b)
                  TextBox5.Value = FormatCurrency(.Cells(x, b).Value, 2)
                    Exit For
                    End If
            Next
        End With
    End If
 
End Sub


Sub grup()

Sayfa = Left(Sheets("Sabit").Range("F1"), 4)
Select Case ComboBox1.ListIndex
Case 1 To 21, 34, 37 To 42
TextBox5.Value = FormatCurrency(Sheets(Sayfa & "_BÜTÇESİ").Range("l7").Value, 2)

Case 22 To 30, 33, 35, 36
TextBox5.Value = FormatCurrency(Sheets(Sayfa & "_BÜTÇESİ").Range("l8").Value, 2)

Case 0, 31, 32
TextBox5.Value = FormatCurrency(Sheets(Sayfa & "_BÜTÇESİ").Range("l9").Value, 2)

End Select
End Sub
 
Geri
Üst