Find Fonksiyonu 1. Satırı Aramadan 2. Satıra bakıyor...

Katılım
12 Ekim 2010
Mesajlar
224
Excel Vers. ve Dili
2013 türkçe
Altın Üyelik Bitiş Tarihi
01-03-2021
Arkadaşlar aşağıda paylaştığım 2 satırlık komut TextBox1 değerini b hücresinde arıyor.. B1 Hücresine "a" Yazsam B2 Hücresine de "a" yazsam
komut direk 2. satırı seçiyor.. İlk satırda olmasına rağmen neden onu seçmiyor.. Yardımcı olabilirmisiniz.

Range("B:B").Select
Selection.Find(What:=[TextBox1]).Select
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Aşağıdaki kodu deneyiniz.
Kod:
Private Sub CommandButton1_Click()
    Dim Rng As Range
        With ActiveSheet.Range("C:C")
            Set Rng = .Find(What:=Me.TextBox1.Value, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not Rng Is Nothing Then
                Application.Goto Rng, True
            Else
                MsgBox "Aradığınız değer bulunamadı."
            End If
        End With

End Sub
 
Katılım
12 Ekim 2010
Mesajlar
224
Excel Vers. ve Dili
2013 türkçe
Altın Üyelik Bitiş Tarihi
01-03-2021
Aşağıdaki kodu deneyiniz.
Kod:
Private Sub CommandButton1_Click()
    Dim Rng As Range
        With ActiveSheet.Range("C:C")
            Set Rng = .Find(What:=Me.TextBox1.Value, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not Rng Is Nothing Then
                Application.Goto Rng, True
            Else
                MsgBox "Aradığınız değer bulunamadı."
            End If
        End With

End Sub

Sayın Hocam yardımınız için çok teşekkür ederim... Affınıza sığınarak anlayamadığım kodu kopyala yapıştır yapınca içim hiç rahat etmiyor..
Kod hakkında kısa bir bilgilendirme istiyorum .. Kodu biraz kısalttım ama anlayamadığım yer şurası

After:=.Cells(.Cells.Count))

Afterdan sonra ne demek istiyor ve Cellslerin başında neden nokta var..





Dim Rng As Range
With ActiveSheet.Range("b:b")
Set Rng = .Find(What:=TextBox1.Value, After:=.Cells(.Cells.Count))

If Not Rng Is Nothing Then
Application.Goto Rng, False
Else
MsgBox "Aradığınız değer bulunamadı."
End If
End With
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Yukarıda sizinle paylaştığım kodda After:=.Cells(.Cells.Count), _ ifadesinin başındaki nokta ActiveSheet.Range("C:C") ifadesinin devamı anlamına geliyor. İlgili satır aslında şu kodun kısaltılmışı oluyor. ActiveSheet.Range("C:C").Cells(ActiveSheet.Range("C:C").Cells.Count)
With ile başlayan satırda Range tanımlaması yapıldığı için kodun devamında tekrar yazma ihtiyacı yoktur.

After:=.Cells(.Cells.Count) ifadesi de sütunun son hücresinden sonra aramaya devam et anlamına geliyor.

Aşağıdaki kodu çalıştırarak ne anlama geldiğini anlayabilirsiniz.
Sub a()
MsgBox ActiveSheet.Range("C:C").Cells.Count
End Sub
 
Katılım
12 Ekim 2010
Mesajlar
224
Excel Vers. ve Dili
2013 türkçe
Altın Üyelik Bitiş Tarihi
01-03-2021
Verdiğin bilgiler için çok teşekkür ederim.. Görsterdiğin bilgiler ışığında kendi kodumuda düzene sokabildim..

Dim satir As Range
Set satir = Range("B:B")
satir.Find(What:=TextBox1.Value, After:=satir.Cells(satir.Cells.Count)).Select
 
Katılım
12 Ekim 2010
Mesajlar
224
Excel Vers. ve Dili
2013 türkçe
Altın Üyelik Bitiş Tarihi
01-03-2021
Dim Rng As Range
Dim satir As Range
Set satir = Range("B:B")
Set Rng = satir.Find(What:=TextBox1.Value, After:=satir.Cells(satir.Cells.Count), _
LookIn:=xlValues, LookAt:=xlWhole)


If Not Rng Is Nothing Then
Rng.Select
Else
MsgBox "Aradığınız değer bulunamadı."
End If
 
Üst