• DİKKAT

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

ara bul ve aynı satırda son boş hücreyi bul (forumdakileri kendime uygulayamadım)

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
veriler:
1. aranacak kelime çıkacak olan mesaj kutusuna yazılacak.
2. arama yapılacak alan Range("G2:H" & Rows.Count)


istenenler:
1. kelimenin bulunduğu hücrenin satır hizasında (DA DZ) aralığında ilk boş hücre seçilecek.
2. ilk bulduğu kelimeden sonra istenen değilse tekrar aranacak. aramaya devam edecek. bunun için sanırım bir uyarı çıkabilir Bulundu mu? evet hayır şeklinde. bulunduysa evete basınca işlem sonlanır, hayırsa bir sonraki kelimeye göre tekrar arar.
3. kelime bulunmazsa bulunmadı mesajı çıkmalı
4. kelimeyi tam olarak değil, hücre içerisindeki cümle içinde aramalı. yani aranan "ali" ise "ali topu at" yazan hücreyi seçmeli.

sonuç:
sitedeki ara bul getir gibi kodları incelesem de kendime uyarlayamadım.
yardım edebilecek olursa sevinirim. teşekkürler.
 
Kod:
Sub bulgit()
If hcr = Empty Then hcr = 9
Set r = Range("g" & hcr & ":h" & Rows.Count).Find([f1].text, , xlFormulas, xlPart, _
xlByRows, xlNext, False, False)
If Not r Is Nothing Then
hcr = r.Row + 1
Cells(r.Row, Cells(r.Row, Columns.Count).End(xlToLeft).Column + 1).Select
Else
MsgBox "Başka Veri Bulunamadı"
hcr = Empty
End If
End Sub

bu kod çalışıyor gibi. eklemek istediğim bir iki şey kaldı.

1. aranacak kelimeyi çıkacak olan mesaj kutusuna (inputbox) yazmak istiyorum.

2. ilk bulduğu kelimeden sonra "Aradığınız Bulundu mu?" sorusuna karşılık verilecek evet hayır cevabına karşılık. bulunduysa evete basınca işlem sonlanacak, cevap hayırsa bir sonraki kelimeye göre tekrar arayacak. artık başka bulacak bir şey olmayınca zaten "Başka Veri Bulunamadı" mesajı çıkıyor.
 
şu kodu deneyiniz.
Kod:
Sub bulgit()
If hcr = Empty Then hcr = 9
aranan = InputBox("Bulunacak kelimeyi giriniz", "Bul")
If aranan <> "" Then
ara:
    Set r = Range("g" & hcr & ":h" & Rows.Count).Find(aranan, , xlFormulas, xlPart, _
    xlByRows, xlNext, False, False)
    If Not r Is Nothing Then  
        hcr = r.Row + 1
        Cells(r.Row, Cells(r.Row, Columns.Count).End(xlToLeft).Column + 1).Select
        sonuc = MsgBox("Aradığını buldun mu?", vbQuestion + vbYesNo, "İşlem sonucu bulundu mu?")
        If sonuc = 6 Then
            Exit Sub
        Else
            GoTo ara
        End If        
    Else
        MsgBox "Başka Veri Bulunamadı"
        hcr = Empty
    End If
End If
End Sub
 
çok teşekkürler. son bir merak gidermek için sorum olacak. benim da:dz aralığında aradığım bu kodun neresinde? hcr = 9 ve if sonuc = 6 daki rakamlar neyi ifade ediyor acaba.
 
bütün belgeyi göremediğim için hcr=9 değişkenin görevini tahmin edemem, global bir değişken olabilir.
sonuc=6 da VbYesNo tipindeki msgboxlarda basılan tuşun YES olduğunu tespit etmek için. HAYIR a basıldığını da sonuc=7 ile kontrol edebilirsiniz.
 
Oldu diye seviniyordum ama bu kod aranan kelimeyi bulup en son hücreden sola doğru ilk dolu hücreninin bir yanını seçiyor. zaten aklım da yatmamıştı. nasıl buluyor diye. bulması gereken aralığın ilerisini gizlemişim ve dolayısı ile doğru sonuç veriyordu (yanlışlıkla) bu koda aranan kelimeyi bulduktan sonra sadece da:dz aralığındaki ilk boş hücreyi bulmasını nasıl gösterebilirizin cevabı da sanırım
Cells(r.Row, Cells(r.Row, "dz").End(xlToLeft).Column + 1).Select şeklinde değişince oluyor. bilgi olarak kalsın istedim. 9 sayısı da 9. satırdan sonra arama yapıyor. aranan kelime 9. satırdan önce varsa göstermiyor. bu da diğer bilgi olsun tam olsun. teşekkürler.
 
Geri
Üst