t = Sheets("data").[a1:a30000].Find(bilinmeyen).Row

Katılım
24 Aralık 2005
Mesajlar
56
Levent Beyin yol gostermesiyle(tekrar tesekkurler) makrolarima asagidaki satiri eklemistim.
...
bilinmeyen=sheets("sonuc").Cells(s, 1).Value
If WorksheetFunction.CountIf(Sheets("data").[a:a], bilinmeyen) > 0 Then
t = Sheets("data").[a1:a30000].Find(bilinmeyen).Row
End If
...
yukaridaki formul, bilinmeyen degiskeni hucrenin kendisini olustururken calisiyordu. simdi dosyayi kucultmek icin hucreleri birlestirdim ve bilinmeyen degiskeni hucre icinde bir kelime oldu. BU durumda yukaridaki if cumlesini nasil yazmaliyim ki o bilinmeyen ogrencinin oldugu ilk hucreyi "t" olarak tanimlayabileyim?

ek olarak ayni formul ile, o bilinmeyenin oldugu son hucreyi de bulabilir miyim?

Yardimci olacak ustalara cok tesekkurler.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Bilinmeyen kelimesi az kalır bunun yanında, tam bir muamma olmuş bu :)

Yazdığınız kodlar, zaten "bilinmeyen" değişkeninin bulunduğu ilk satırı, "t" değişkenine değer atayarak buluyor olmalı ... Buradaki sorun ne anlamadım ...
 
Katılım
24 Aralık 2005
Mesajlar
56
Sn.Ferhat, cevabiniz icin cok tesekkurler. bu cevap icin uzun bir zaman beklemistim.

t1 = Sheets("sonuc").[a1:a30000].Find(What:=bilinmeyen).Row
seklinde bir uygulamayi site icinde arayarak, buldum, uyguladim ve oldu.

benzer hizli-(dongusuz) bir formul ile, ayni bilinmeyenin oldugu son hucreyi de bulabilir miyim? yani bu formulun icinde bir yere, last gibi bir yorum eklenebilir mi? sonra ilk satirdan son satira dongumu kuracagim ve islemleri biraz olsun hizlandirmis olacagim.

tekrar cevabiniz icin tesekkurler
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şu şekilde, ilk ve son hücreyi bulabilirsiniz.

Kod:
Sub Bulmak()
    Dim bul As Range
    Dim adr As String
    Dim son As String
    Dim bilinmeyen As String
 
    bilinmeyen = "11111"
 
[COLOR=darkgreen]   'A1:A30000 aralığında, bilinmeyen değeri aranıyor[/COLOR]
    Set bul = Sheets("sonuc").Range("A1:A30000").Find(What:=bilinmeyen, Lookat:=xlWhole)
 
[COLOR=darkgreen]   'Eğer belirtilen aralıkra, bulunduysa[/COLOR]
    If Not bul Is Nothing Then
        'ilk bulunan hücre adresini al
        adr = bul.Address
 
[COLOR=darkgreen]       'Bulunan hücre, ilk bulunan hücreye eşit olmayıncaya[/COLOR]
[COLOR=darkgreen]       've yeni hücre bulundukça[/COLOR]
[COLOR=darkgreen]       'ilerle[/COLOR]
        Do
            Set bul = Range("N:N").FindNext(bul)
            If adr <> bul.Address Then: son = bul.Address
        Loop While Not bul Is Nothing And adr <> bul.Address
 
[COLOR=darkgreen]       'E&#287;er sadece tek bir de&#287;er bulunmu&#351;sa,[/COLOR]
[COLOR=darkgreen]       '&#304;lk bulunan h&#252;cre de&#287;eri, ayn&#305; zamanda[/COLOR]
[COLOR=darkgreen]       'son bulunan h&#252;cre de&#287;eridir[/COLOR]
        If son = "" Then: son = adr
 
[COLOR=darkgreen]       'Mesaj kutusu ile[/COLOR]
[COLOR=darkgreen]       '&#304;lk ve son h&#252;cre adreslerini g&#246;r&#252;nt&#252;le ...[/COLOR]
        MsgBox "&#304;lk Bulunan H&#252;cre : " & adr & vbLf & _
               "Son Bulunan H&#252;cre : " & son, vbInformation, "B&#304;LG&#304;LEND&#304;RME"
    End If
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
&#304;&#351;inizi g&#246;r&#252;r m&#252; bilmem ama bir de bunu deneyin.
Kod:
t1 = Sheets("sonuc").[a1:a30000].Find(What:=bilinmeyen, After:=[a30000], Searchdirection:=xlPrevious).Row
 
Son düzenleme:
Üst