Arama kriterine ilk ve son numara arasını dahil etmek

Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Arkadaşlar Hepinize Selam.

Userformda bir çalışma hazırladım sorunsuz çalışıyor. Fakat takıldığım iki soru belirdi kafamda şöyle ki;
1-Personele evrak koçanı zimmetliyorum her koçan 50 yaprak. Kayıt yaparken koçan ilk no ve son no.larını yazıyorum. Sonradan bunu sorgularken sorgulama kodu koçan ilk no.sunu B2 de arıyor ve sonucu veriyor.
Tabloda B2 kolonunda koçan ilk no yazıyor C-476501
Tabloda C2 kolonunda koçan son no yazıyor C-476550
Private Sub CommandButton5_Click()
If TextBox7.Value = "" Then
MsgBox "Tutanak İlk No'sunu Girmediniz!"
Exit Sub
End If
Dim i As Integer
On Error Resume Next
Selection.Find(What:=TextBox7.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
True, SearchFormat:=False).Activate
Sheets("Ara").Select
Range("A2:E3527").Select
Selection.ClearContents
Range("A2").Select
son = WorksheetFunction.CountA(Worksheets("KAYIT").Range("B2:B65536")) + 1
For i = 2 To son
If Sheets("KAYIT").Cells(i, 2).Value = TextBox7.Value Then
Sheets("Ara").Cells(a + 2, 1).Value = Sheets("KAYIT").Cells(i, 2).Value
Sheets("Ara").Cells(a + 2, 2).Value = Sheets("KAYIT").Cells(i, 3).Value
Sheets("Ara").Cells(a + 2, 3).Value = Sheets("KAYIT").Cells(i, 4).Value
Sheets("Ara").Cells(a + 2, 4).Value = Sheets("KAYIT").Cells(i, 5).Value
Sheets("Ara").Cells(a + 2, 5).Value = Sheets("KAYIT").Cells(i, 6).Value
Sheets("Ara").Cells(a + 2, 6).Value = Sheets("KAYIT").Cells(i, 7).Value
Sheets("Ara").Cells(a + 2, 7).Value = Sheets("KAYIT").Cells(i, 8).Value
End If
Next i
If ActiveCell.Value <> TextBox7.Value Then
MsgBox "Bu Tutanak Numarasına zimmet yapılmadığından kayıt bulunumadı."
Exit Sub
End If
End Sub
TextBox7 e C-476501 yazınca bu evrağın tüm dökümünü altta ListBoxta görüyorum merak ettiğim bu 50 rakam arasında bir değer örneğin TextBox7 ye C-476520 girilince yine aynı koçan bilgilerini görmek için bir kod yazılabilirmi. Yani C-476501 ile C-476550 arası bir değer girilincede sonuç aynı çıkmalı.

2- Private Sub ComboBox2_Change() kod başlığıyla başlayan ComboBox açılan listesinde Mouse tekeri aktif edilebilirmi.
Yine bu ComboBox ta isim seçiyoruz ALİ ve bu kişinin bilgilerini hazırladığımız Listboxt a görüyoruz. Sonra başka bir userforma geçip başka işlemlerimizi gerçekleştiriyoruz tekrar ComboBox un bulunduğu userforma dönüp bakıyoruz ComboBoxta aynı ALİ ismi aktif duruyor çıkarken ListBoxu temizlemiştik (UserFormdan Çıkış butonuna temizle kodu koyduğum için) o kısım boş duruyor Tekrar aktif duran ALİ ismine tıklayınca bu sefer ListBox ta bilgileri göstermiyor. İllaki başka bir isme tıklayıp tekrar ALİ ismine tıklayınca bilgileri gösteriyor. Kısaca ComboBoxtaki aktif durma işlemini nasıl bozabiliriz. ComboBox sın RowSource yaptığı kısma (LİSTE!B2:B100) bir boş hücre eklesem (LİSTE!B1:B100) her userformdan çıkışta Çıkış butonuna temizle kodu yanına ileve bir kodla yada direk Properties ComboBox penceresindeki işlemlerle ComboBox ın source sini boş hücreye yönlendirebilirmiyiz.
Saygılar.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam arkadaşlar
2.inci soruma cevabı yaklaşık olarak buldum tam istediğim bu değildi ama idare eder combobox ı temizle kodu yerleştirdim.
1.inci soruma bir çözüm yok gibi olsaydı arkadaşlar mutlaka bir şeyler yazardı. Ben yinede bir ek göndereyim belki başka çözümler üretilebilir.
Saygılar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ara butonundaki kodu a&#351;a&#287;&#305;daki ile de&#287;i&#351;tirin.

Kod:
Private Sub CommandButton5_Click()
If TextBox7.Value = "" Then
MsgBox "Tutanak &#304;lk No'sunu Girmediniz!"
Exit Sub
End If
aranan = Split(TextBox7, "-")
son = WorksheetFunction.CountA(Worksheets("KAYIT").Range("B2:B65536")) + 1
For i = 2 To son
deg1 = Split(Sheets("KAYIT").Cells(i, 2).Value, "-")
deg2 = Split(Sheets("KAYIT").Cells(i, 3).Value, "-")
If aranan(1) >= deg1(1) And aranan(1) <= deg2(1) Then
c = c + 1
Sheets("Ara").Cells(a + 2, 1).Value = Sheets("KAYIT").Cells(i, 2).Value
Sheets("Ara").Cells(a + 2, 2).Value = Sheets("KAYIT").Cells(i, 3).Value
Sheets("Ara").Cells(a + 2, 3).Value = Sheets("KAYIT").Cells(i, 4).Value
Sheets("Ara").Cells(a + 2, 4).Value = Sheets("KAYIT").Cells(i, 5).Value
Sheets("Ara").Cells(a + 2, 5).Value = Sheets("KAYIT").Cells(i, 6).Value
Sheets("Ara").Cells(a + 2, 6).Value = Sheets("KAYIT").Cells(i, 7).Value
Sheets("Ara").Cells(a + 2, 7).Value = Sheets("KAYIT").Cells(i, 8).Value
End If
Next i
If c = 0 Then
MsgBox "Bu Tutanak Numaras&#305;na zimmet yap&#305;lmad&#305;&#287;&#305;ndan kay&#305;t bulunumad&#305;."
Exit Sub
End If
End Sub
Bu arada temizle butonundaki koduda a&#351;a&#287;&#305;daki gibi de&#287;i&#351;tirirseniz daha iyi olur.

Kod:
Private Sub CommandButton11_Click()
sur = MsgBox("Temizlemekmi istiyorsunuz ?", vbYesNo, "   TEM&#304;ZLEME &#304;&#350;LEM&#304;")
If sur = vbYes Then Sheets("ARA").Range("A2:G3527").ClearContents
End Sub
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
&#304;lginize Te&#351;ek&#252;rler Say&#305;n Mente&#351;o&#287;lu
Ancak If aranan(1) >= deg1(1) And aranan(1) <= deg2(1) Then sat&#305;r&#305;na hata veriyor sebebini bulamad&#305;m
Temizleme i&#351;lemi TextBox7 de i&#231;ersin diye &#246;yle yazm&#305;&#351;t&#305;m.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Say&#305;n Mente&#351;o&#287;lu &#231;ok &#246;z&#252;rdiliyorum acelecili&#287;im y&#252;z&#252;nden &#246;rnek &#252;zerinde denedi&#287;imden veriyormu&#351; hatay&#305; a&#351;a&#287;&#305; do&#287;ru metinler oldu&#287;u i&#231;in.
Tekrar &#214;z&#252;rdiliyorum
Sayg&#305;lar.
 
Üst