• DİKKAT

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

ComboBox

Merhaba
"Userform1" kod sayfasını tamamen temizleyip aşağıdaki kodları ekleyip deneyin.
Yalnız açıklamamışsınız; mesela "madencilik" başlığı yanında ömür yılı var oda gelecektir
Kod:
[SIZE="2"]Private Sub UserForm_Initialize()
Set s2 = Sayfa2
b = s2.[F65536].End(3).Row
s2.Range("B6:B" & b).Replace "* ", ""
s2.Range("G6:G" & b).Replace "* ", ""
For a = 6 To s2.[F65536].End(3).Row
If s2.Cells(a, "B") <> "" Then
If UBound(Split(s2.Cells(a, "F").Value, ":")) = 0 Then
ComboBox1.AddItem s2.Cells(a, "F").Value
Else
ComboBox1.AddItem Split(s2.Cells(a, "F").Value, ":")(0)
End If
End If
Next
End Sub

Private Sub ComboBox1_Change()
ComboBox2.Clear
ListBox1.Clear
If ComboBox1 = "" Then Exit Sub
Dim s2 As Worksheet
Set s2 = Sayfa2
b = s2.[F65536].End(3).Row
Set ara = s2.Range("F6:F" & b).Find(ComboBox1.Value, , lookat:=xlPart)
If Not ara Is Nothing Then
b2 = s2.Cells(ara.Row, 2).End(xlDown).Row
For x = WorksheetFunction.Small(s2.Range("G" & ara.Row & ":G" & b2 - 1), 1) To _
WorksheetFunction.Large(s2.Range("G" & ara.Row & ":G" & b2 - 1), 1)
For a = ara.Row To b2 - 1
If Trim(s2.Cells(a, "G")) <> "" Then
If WorksheetFunction.CountIf(s2.Range("G" & ara.Row & ":G" & a), s2.Cells(a, "G").Value) = 1 Then
If x = CDbl(Trim(s2.Cells(a, "G").Value)) Then _
ComboBox2.AddItem s2.Cells(a, "G").Value
End If: End If
Next:
Next
End If
End Sub

Private Sub ComboBox2_Change()
ListBox1.Clear
If ComboBox1 = "" Or ComboBox2 = "" Then Exit Sub
Dim s2 As Worksheet
Set s2 = Sayfa2
b = s2.[F65536].End(3).Row
Set ara = s2.Range("F5:F" & b).Find(ComboBox1.Value, , lookat:=xlPart)
If Not ara Is Nothing Then
b2 = s2.Cells(ara.Row, 2).End(xlDown).Row
For a = ara.Row To b2 - 1
If Trim(s2.Cells(a, "G")) <> "" Then
If CDbl(ComboBox2.Value) = CDbl(Trim(s2.Cells(a, "G").Value)) Then
ListBox1.AddItem s2.Cells(a, "F").Value
End If: End If
Next
End If
End Sub

 [/SIZE]
 
Son düzenleme:
Merhaba
Ek dosyayı inceleyiniz
http://s2.dosya.tc/server3/wgf3l7/ornekler.zip.html
2. sayfa; "B" sütununda sıra no'lardan başka veri (ve karakter değeri) olmamalıdır
sizin 129. satırda boşluk (chr(160)) değeri bulunuyor. onun için o satır altındaki
"demirbaşlar" 'ı almıyor aşağıdaki ekleme ile bu sorun kalkacaktır.
Kod:
[SIZE="2"]Private Sub UserForm_Initialize()
Set s2 = Sayfa2
b = s2.[F65536].End(3).Row
For a = 6 To s2.[F65536].End(3).Row
[COLOR="Red"]If IsNumeric(Left(s2.Cells(a, "B"), 1)) = False Then s2.Cells(a, "B").ClearContents[/COLOR]
If s2.Cells(a, "B") <> "" Then
If UBound(Split(s2.Cells(a, "F").Value, ":")) = 0 Then
ComboBox1.AddItem s2.Cells(a, "F").Value
Else
ComboBox1.AddItem Split(s2.Cells(a, "F").Value, ":")(0)
End If
End If
Next
End Sub[/SIZE]
"Listbox" a sığmaması sorunu içinde; örnek dosyada sığmayanları alt satıra
yazacak bir çözüm var.
 
Son düzenleme:
Selamün Aleyküm Peki hocam söyle bir sayılarımız olsa 1,2,3,4,57,57,56,5,6,7,8,9,10 gibi sayılarımız olsa birinci en büyük sayı ve ikinci en büyük sayı nasıl bize verecek.

=MAX(....:....;1) YAPSAK 57 verecek =MAX(....:....;2) YAPSAK 57 gene verecek
=LARGE(....:....;1) YAPSAK 57 verecek =LARGE(....:....;2) YAPSAK 57 gene verecek

Peki hangi formül bize birincisini 57 ikincisini 56 olarak verecektir. Şimdiden teşekkür ederim.
 
Selamün Aleyküm Peki hocam söyle bir sayılarımız olsa 1,2,3,4,57,57,56,5,6,7,8,9,10 gibi sayılarımız olsa birinci en büyük sayı ve ikinci en büyük sayı nasıl bize verecek.
Aleyküm selam.

"Büyük" (large) ve "Eğersay" (countif) formüllerini kullanarak şöyle yapabilirsiniz:
Kod:
=BÜYÜK([COLOR="Blue"]A1:A7[/COLOR];EĞERSAY([COLOR="Blue"]A1:A7[/COLOR];BÜYÜK([COLOR="Blue"]A1:A7[/COLOR];1))+1)
 
Geri
Üst