Bul işleminde sorun

Katılım
11 Mayıs 2005
Mesajlar
104
Merhaba,
Kod:
Private Sub ComboBox1_Change()
On Error Resume Next
Dim bul As Range
Sheets("Sayfa1").Select
For Each bul In Range("A2:A" & WorksheetFunction.CountA(Range("A2:A500")))
If StrConv(bul.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
bul.Select
End If
Next bul
End Sub
Yukarıdaki kodlarla A sütununda ardığım değeri bulmaya çalışıyorum. Ancak kodlar, A sütunundaki değerlerin son satırındaki değeri bulmuyor.
Ã?rneğin A sütununda 18 satır varsa, 17. satıra kadar buluyor. Son değeri bulamıyor. Neden olabilir?
Selamlar
 
Katılım
11 Mayıs 2005
Mesajlar
104
Sevgili nziya,
ilgilendiğiniz için teşekkür ederim. Kodlarınız çalışmadı ama bir fikir verdi. Sağolun

Kod:
Private Sub ComboBox1_Change()
On Error Resume Next
Dim bul As Range
Dim sonsat As Integer
sonsat = Sheets("Sayfa1").Cells(65536, 1).End(xlUp).Row

Sheets("Sayfa1").Select
For Each bul In Range("A2:A" & sonsat)
If StrConv(bul.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
bul.Select
End If
Next bul
End Sub
 
Katılım
3 Nisan 2005
Mesajlar
347
Excel Vers. ve Dili
office xp tr
yanıt

nasıl olur bende bulunuyor istediğiniz verinin baş harfini girmeniz yeterli.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Dosyanızdaki User formdaki Combobox1'in Properties'ne girip RowSource'nu örneğin A1:A500 yapın. (Sizinkinde sayfa2!A1:A20 şeklindedir. Verileri hangi sayfadan alınacağına da dikkat edin.)
 
Katılım
11 Mayıs 2005
Mesajlar
104
Sayın nziya,
Ben problemi yanlış veya eksik anlatmış olabilirim.
İstediğim şey, Combobox1 deki değeri seçince, sayfa 1 de comboboxla aynı değeri taşıyan hücrenin aktif hale gelmesi idi.
Yani: Comboboxta "çarşamba" değerini seçtiğim zaman, sayfa1 de A sütununda yazılı olan "çarşamba" yazısının bulunması...

Sayın yurttaş,
Combobox1'e veriyi Ã?zellikler bölümünden değil de kod yazarak almak zorundayım. Çünkü başka combolarla ilişkisi var.

Zaten sorunu nziya arkadaşımın ilhamıyla halletik. Sağolun
Saygılarımla
 

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
Aşağıdaki şekilde deneyin.

[vb:1:da6cd8a939]Private Sub ComboBox1_Change()
sat = ComboBox1.ListIndex + 1
Cells(sat, "a").Select
End Sub
[/vb:1:da6cd8a939]
 
Katılım
27 Aralık 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2000
Türkçe
Selamlar,
Sayın Leventm'in verdiği kod gayet iyi çalışmakla birlikte, aranan sütununda yoksa hata veriyor.
Hata yerine aranan kelime yok mesajı verecek şekilre düzenlenmesi mümkün müdür.
 

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
Sayın Leventm'in verdiği kod gayet iyi çalışmakla birlikte, aranan sütununda yoksa hata veriyor.
Hata yerine aranan kelime yok mesajı verecek şekilre düzenlenmesi mümkün müdür.
Bu dediğiniz ancak comboboxa klavyeden veri girerseniz gerçekleşir. Combobox bir açılan kutu olduğundan klavyeden veri girilmesi bence çok mantıklı değil, bunun yerine textbox kullanılabilir. Ama ısrar ederseniz kodu aşağıdaki gibi değiştirin.

[vb:1:2ebd22e3fd]Private Sub ComboBox1_Change()
on error goto 10
sat = ComboBox1.ListIndex + 1
Cells(sat, "a").Select
exit sub
10 msgbox "aranan veri bulunamadı"
End Sub
[/vb:1:2ebd22e3fd]
 
Katılım
27 Aralık 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2000
Türkçe
Evet, çok haklısınız. Klavye ile giriş yapıldığında hata vermekte idi. Bu son kod çok iyi. Eline sağlık
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Yukarıdaki kodlarla A sütununda ardığım değeri bulmaya çalışıyorum. Ancak kodlar, A sütunundaki değerlerin son satırındaki değeri bulmuyor.
Ã?rneğin A sütununda 18 satır varsa, 17. satıra kadar buluyor. Son değeri bulamıyor. Neden olabilir?
Sorunuz bu olunca ve dosyanızdaki Combobox1'in Properties'indeki RowSource'u sayfa2!A1:A20 şeklinde olunca öyle cevap verdim. Problem çözüldüğüne göre mesele yok.
 
Katılım
11 Mayıs 2005
Mesajlar
104
Belki biraz kafaları karıştıracağım ama,
leventm arkadşımızın kodları, kaynağını aynı sütundan alıyorsa doğru çalışıyor.
Ekteki dosyada, Combo nun Rowsource unu 2. sayfadan alırsak kodların çalıştığını ancak istediğimiz hücreyi seçmediğini görürüz.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Böyle bir şey deneseniz ...

sheets("sayfa2").Cells(sat, "a").Select
 
Katılım
11 Mayıs 2005
Mesajlar
104
Sevgili haluk,
Sorun aslında çözümlendi. Ama biz fikir jimnastiği, yenilerin deyimiyle beyin fırtınası yapıyoruz. Fena da olmuyor hani. :D

NOT:kodlar "Range sınıfının Select yöntemi başarısız" hatası verdi.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ehem, ehum .... dediğim gibi olmuyor galiba ama, şöyle bir şey çalışır ...

Kod:
Private Sub ComboBox1_Change()
    sat = ComboBox1.ListIndex + 1
    Sheets("Sayfa2").Select
    Range("a" & sat).Select
End Sub
 
Katılım
11 Mayıs 2005
Mesajlar
104
Haluk Kardeş,

Benim anlatma özürlü oluşumdan dolayı, nice koçyiğitler bul uğruna heba oluyor...

Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa2!A1:A20"
End Sub
Kod:
Private Sub ComboBox1_Change()
    sat = ComboBox1.ListIndex + 1
    Sheets("Sayfa2").Select
    Range("a" & sat).Select
End Sub
combonun bulması gereken değer 1. sayfada. Veriler 2. sayfada
İyice karıştırdım galiba :(
 
Katılım
11 Mayıs 2005
Mesajlar
104
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa2!A1:A20"
End Sub
Kod:
  Private Sub ComboBox1_Change()
On Error Resume Next
Dim bul As Range
Dim sonsat As Integer
sonsat = Sheets("Sayfa1").Cells(65536, 1).End(xlUp).Row
Sheets("Sayfa1").Select
For Each bul In Range("A1:A" & sonsat)
If StrConv(bul.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
bul.Select
End If
Next bul
End Sub
biraz uzun ama iyi çalışıyor.
NOT:Arkadaşlar, beni gaza getirdiniz. Sizlerden öğrendiğimi sizlere satmaya çalıştırdınız. Alacağınız olsun.
 

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
Madem beyin fırtınası yapıyoruz o zaman birde aşağıdakileri deneyin. :D

[vb:1:96d86bb7df]Private Sub ComboBox1_Change()
On Error Resume Next
sat = WorksheetFunction.Match(ComboBox1.Value, [a1:a65536], 0)
Cells(sat, "a").Select
End Sub
[/vb:1:96d86bb7df]

yada

[vb:1:96d86bb7df]Private Sub ComboBox1_Change()
On Error Resume Next
sat = [a1:a65536].find(combobox1.value).row
Cells(sat, "a").Select
End Sub
[/vb:1:96d86bb7df]
 
Katılım
11 Mayıs 2005
Mesajlar
104
Sayın leventm,
Kodları denedim. Gayet güzel çalışıyor.
Demek ki:
"Doğru bir tanedir. Ama doğruya giden yollar birden fazla olabilir."

Saygılarımla
 
Üst