Listboxdan hücre seçme Hk.

Katılım
9 Eylül 2023
Mesajlar
24
Excel Vers. ve Dili
Excel 2019 For Mac
İyi günler kolay gelsin,
Benim sorum filtreleme yaptığım veriyi listbox üzerinde çift tıkladığım bir verinin bulunduğu satırda ki ilk hücreyi seçsin, bunu yaptım ama filtre yaptığımda sectigim veri listbox üzerinde kaçıncı sıradaysa o satırı seçiyor.
örneğin; 15 tane veri listeledi sıra numarası 600 olan veri 8. Satırda ise 600. Satıra gitmiyor 8. Satırı seçiyor bu konuda yardımcı olabilirseniz sevinirim.

Kod:
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Sheets("Veri Girişi").Select
Sheets("Veri Girişi").Range("A" & ListBox1.ListIndex + 2).Select
End If
Next
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Siz Listboxa tıklayınca filtrelenen aralıktaki A sütunundaki son eşleşen satırı mı bulmak istiyorsunuz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Filtre yaptıktan sonra veriyi Listbox'a yüklerken satır numarasınıda yükleyebilirsiniz. Bu alanı listbox üzerinde gizleyebilirsiniz. Sonrasında tıkladığınızda bu satır numarası alanını seçtirebilirsiniz. İkinci bir yöntem ise FIND metodunu kullanmaktır.
 
Katılım
9 Eylül 2023
Mesajlar
24
Excel Vers. ve Dili
Excel 2019 For Mac
Siz Listboxa tıklayınca filtrelenen aralıktaki A sütunundaki son eşleşen satırı mı bulmak istiyorsunuz?
Ana liste üzerinde kaçıncı satırdaysa o satırın ilk hücresini seçsin.
Filtreleme yapıp Listboxta listelendiğinde, listbox üzerinde 5. Satirdaysa ana liste üzerinde 5. Satırı seçiyor oysa veri 200. Satırda gibi.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Şöyle yol göstereyim. Aslında Korhan hocam da bunu ifade etmeye çalıştı.
Filtreleme yaptıktan sonra Listboxda tek bir sütun olarak listeliyorsunuz.
Listbox için 2 kolon kullanın.
1.kolona filtrelenen satırların numarasını, 2 kolona normal listesinizde görmek istediğiniz sütundaki verileri yerleştirin.
1.Kolonun kolon genişiğini 0 olarak ayarlayın. ( Eğer satır numarasının gözükmesini istemiyorsanız)
Sonrasında
kodunuzdaki aşağıdaki satırı değiştirin.
C++:
Sheets("Veri Girişi").Range("A" & ListBox1.ListIndex + 2).Select

Sheets("Veri Girişi").Range("A" & ListBox1.List(ListBox1.ListIndex + 2,0).Select
 
Katılım
9 Eylül 2023
Mesajlar
24
Excel Vers. ve Dili
Excel 2019 For Mac
Şöyle yol göstereyim. Aslında Korhan hocam da bunu ifade etmeye çalıştı.
Filtreleme yaptıktan sonra Listboxda tek bir sütun olarak listeliyorsunuz.
Listbox için 2 kolon kullanın.
1.kolona filtrelenen satırların numarasını, 2 kolona normal listesinizde görmek istediğiniz sütundaki verileri yerleştirin.
1.Kolonun kolon genişiğini 0 olarak ayarlayın. ( Eğer satır numarasının gözükmesini istemiyorsanız)
Sonrasında
kodunuzdaki aşağıdaki satırı değiştirin.
C++:
Sheets("Veri Girişi").Range("A" & ListBox1.ListIndex + 2).Select

Sheets("Veri Girişi").Range("A" & ListBox1.List(ListBox1.ListIndex + 2,0).Select
Yardımınız için teşekkür ederim gayet güzel çalışıyor fakat şöyle bir problem oluştu benim seçtirmek istediğim veri listindeksin 1 satır üzerinde yani listindeks 700 ama seçmesini istediğim 701 gibi.
Yazdığınız kodu bu şekilde düzenledim indeks olarak bir üst satırı offset ile nasıl seçtirebilirim
Kod:
ListBox1.List(ListBox1.ListIndex,0).Select
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Sheets("Veri Girişi").Range("A" & ListBox1.List(ListBox1.ListIndex + 2,0).Select
ListBox1.ListIndex + 2 kısmında +2 ifadesini değiştirerek bulabilirsiniz.
 
Katılım
9 Eylül 2023
Mesajlar
24
Excel Vers. ve Dili
Excel 2019 For Mac
C++:
Sheets("Veri Girişi").Range("A" & ListBox1.List(ListBox1.ListIndex + 2,0).Select
ListBox1.ListIndex + 2 kısmında +2 ifadesini değiştirerek bulabilirsiniz.
Cevabınız için teşekkür ederim,
tabi öncesinde denedim ama filtre yapınca doğru sonuç vermiyor listenin tamamını seçince doğru yeri seçiyor ama filtre yapınca farklı farklı yerleri seçiyor
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Filtre edip Listboxa verileri çektiğiniz kodlarınız paylaşır mısınız?
 
Katılım
9 Eylül 2023
Mesajlar
24
Excel Vers. ve Dili
Excel 2019 For Mac
Kod:
LisBoxtan seçmek için;
---------------------------
Private Sub ListBox1_Click()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Sheets("Veri Girişi").Select
Sheets("Veri Girişi").Range("A" & ListBox1.List(ListBox1.ListIndex + 1, 0)).Select

End If
Next
End Sub

---------------------------
TexBox arama alanı
---------------------------

Private Sub CommandButton1_Click()
On Error Resume Next
Me.ListBox1.Clear
Dim r, last_row As Integer
last_row = Sayfa2.Range("A10000").End(xlUp).Row
For r = 2 To last_row
          a = Len(Me.TextBox1.Text)
          If UCase(Left(Sayfa2.Cells(r, criterion).Value, a)) = UCase(Me.TextBox1.Text) Then
          With Me.ListBox1
          .AddItem Sayfa2.Cells(r, "A").Value
          .List(.ListCount - 1, 1) = Sayfa2.Cells(r, "B").Value
          .List(.ListCount - 1, 2) = Sayfa2.Cells(r, "C").Value
          .List(.ListCount - 1, 3) = Sayfa2.Cells(r, "D").Value
          .List(.ListCount - 1, 4) = Sayfa2.Cells(r, "E").Value
          .List(.ListCount - 1, 5) = Sayfa2.Cells(r, "F").Value
          .List(.ListCount - 1, 6) = Sayfa2.Cells(r, "G").Value
          .List(.ListCount - 1, 7) = Sayfa2.Cells(r, "H").Value
          .List(.ListCount - 1, 8) = Sayfa2.Cells(r, "I").Value

          End With
          End If
          Next r

End Sub
------------------------------
Private Sub ComboBox1_Change()
Dim c As Integer
Dim column_headers
column_headers = Array("A", "B", "C", "D", "E", "F", "G", "H", "I")

For c = 1 To 9
If Sayfa2.Cells(1, c).Value = Me.ComboBox1.Value Then
criterion = column_headers(c - 1)
End If
Next

Me.ListBox1.Clear
Me.TextBox1.Value = ""
Me.ListBox1.SetFocus

End Sub
-------------------------------
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu kodlarda #5 nolu mesajımda dediğim işlemi yapmamışsınız ki !!
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Butona aid kodlarınızı yeniden düzenledim.
Kolon genişliklerinizi verilerin uzunluğunu bilemediğim için ayarlamadım.
Siz görsel olarak düzgün olacak şekilde ListBox Properties kısmından gerekli ayarlamayı yapınız.
İlk kolon için genişliği 0-SIFIR olarak girin.

C++:
Private Sub CommandButton1_Click()
On Error Resume Next
Me.ListBox1.Clear
Me.ListBox1.ColumnCount = 10
Dim r, last_row As Integer
last_row = Sayfa2.Range("A10000").End(xlUp).Row
For r = 2 To last_row
          a = Len(Me.TextBox1.Text)
          If UCase(Left(Sayfa2.Cells(r, criterion).Value, a)) = UCase(Me.TextBox1.Text) Then
          With Me.ListBox1
          .AddItem r
          .List(.ListCount - 1, 1) = Sayfa2.Cells(r, "A").Value
          .List(.ListCount - 1, 2) = Sayfa2.Cells(r, "B").Value
          .List(.ListCount - 1, 3) = Sayfa2.Cells(r, "C").Value
          .List(.ListCount - 1, 4) = Sayfa2.Cells(r, "D").Value
          .List(.ListCount - 1, 5) = Sayfa2.Cells(r, "E").Value
          .List(.ListCount - 1, 6) = Sayfa2.Cells(r, "F").Value
          .List(.ListCount - 1, 7) = Sayfa2.Cells(r, "G").Value
          .List(.ListCount - 1, 8) = Sayfa2.Cells(r, "H").Value
          .List(.ListCount - 1, 9) = Sayfa2.Cells(r, "I").Value

          End With
          End If
          Next r

End Sub
 
Katılım
9 Eylül 2023
Mesajlar
24
Excel Vers. ve Dili
Excel 2019 For Mac
Butona aid kodlarınızı yeniden düzenledim.
Kolon genişliklerinizi verilerin uzunluğunu bilemediğim için ayarlamadım.
Siz görsel olarak düzgün olacak şekilde ListBox Properties kısmından gerekli ayarlamayı yapınız.
İlk kolon için genişliği 0-SIFIR olarak girin.

C++:
Private Sub CommandButton1_Click()
On Error Resume Next
Me.ListBox1.Clear
Me.ListBox1.ColumnCount = 10
Dim r, last_row As Integer
last_row = Sayfa2.Range("A10000").End(xlUp).Row
For r = 2 To last_row
          a = Len(Me.TextBox1.Text)
          If UCase(Left(Sayfa2.Cells(r, criterion).Value, a)) = UCase(Me.TextBox1.Text) Then
          With Me.ListBox1
          .AddItem r
          .List(.ListCount - 1, 1) = Sayfa2.Cells(r, "A").Value
          .List(.ListCount - 1, 2) = Sayfa2.Cells(r, "B").Value
          .List(.ListCount - 1, 3) = Sayfa2.Cells(r, "C").Value
          .List(.ListCount - 1, 4) = Sayfa2.Cells(r, "D").Value
          .List(.ListCount - 1, 5) = Sayfa2.Cells(r, "E").Value
          .List(.ListCount - 1, 6) = Sayfa2.Cells(r, "F").Value
          .List(.ListCount - 1, 7) = Sayfa2.Cells(r, "G").Value
          .List(.ListCount - 1, 8) = Sayfa2.Cells(r, "H").Value
          .List(.ListCount - 1, 9) = Sayfa2.Cells(r, "I").Value

          End With
          End If
          Next r

End Sub
İlgilendiğiniz için teşekkür ederim kolay gelsin
 
Üst