AccessTr.neT
Vba İndis Kısaltma - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Vba İndis Kısaltma (/konu-vba-indis-kisaltma.html)

Sayfalar: 1 2


Vba İndis Kısaltma - malatyalı - 04/05/2021

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s1 As Worksheet
Dim s2 As Worksheet
Set s1 = Sheets("Okul")
Set s2 = Sheets("İlçe")
s2.Range("G9") = WorksheetFunction.VLookup(s2.Range("B9"), s1.Range("B9:h54"), 4, 0)
s2.Range("H9") = WorksheetFunction.VLookup(s2.Range("B9"), s1.Range("B9:h54"), 5, 0)
s2.Range("G10") = WorksheetFunction.VLookup(s2.Range("B10"), s1.Range("B9:h54"), 4, 0)
s2.Range("H10") = WorksheetFunction.VLookup(s2.Range("B10"), s1.Range("B9:h54"), 5, 0)
s2.Range("G11") = WorksheetFunction.VLookup(s2.Range("B11"), s1.Range("B9:h54"), 4, 0)
s2.Range("H11") = WorksheetFunction.VLookup(s2.Range("B11"), s1.Range("B9:h54"), 5, 0)

End Sub

Ustam ben bildiğim şekilde yaptım ama bayağı uzun bir iş oldu.

dosya ekte gönderilmiştir. İlçe sayfasında B9:B54 arasında bir hücreye tıklayınca Okul sayfasında ki bilgileri getiriyor.

Bu kodu en kısa şekli ile düğmeye bağlamak istiyorum. Yardımcı olabilir misiniz?


RE: Vba İndis Kısaltma - berduş - 04/05/2021

bu soru da fonksiyona gerek var mı ki?
doğrudan hücre içi düşeyAra kullanılamaz mı?
erkeklerin olduğu G9 için =DÜŞEYARA(B9;Okul!B9:G54;4;YANLIŞ)
kadınların olduğu H9 için =DÜŞEYARA(B9;Okul!B9:G54;5;YANLIŞ)
toplam sayının olduğu I9 için =DÜŞEYARA(B9;Okul!B9:G54;6;YANLIŞ)
formüllerini girip aşağı sürüklemeniz yeterli bence


RE: Vba İndis Kısaltma - malatyalı - 04/05/2021

ustam
erkeklerin olduğu G9 için =İNDİS(Okul!$E$9:$E$54;KAÇINCI(B9;Okul!$B$9:$B$54;0))
kadınların olduğu H9 için =İNDİS(Okul!$F$9:$F$54;KAÇINCI(B9;Okul!$B$9:$B$54;0))
toplam sayının olduğu I9 için =İNDİS(Okul!$G$9:$G$54;KAÇINCI(B9;Okul!$B$9:$B$54;0))
formülünü kullanıyorum.
Eyvallah. Ama yine de makrosunu öğrenmek isterim.


RE: Vba İndis Kısaltma - berduş - 04/05/2021

kodu aşağıdaki gibi düzenleyebilirsiniz?
burada b sütununda aşağı gidildikçe o satıra değer gelir
yok eğer ben b de harekettiğimde hepsi gelsin derseniz o da yapılır ama fazla veri olduğunda ağırlaşabilir
If Not Intersect(Target, Range(" B9:B54")) Is Nothing Then
Dim s1 As Worksheet
Dim s2 As Worksheet
Set s1 = Sheets("Okul")
Set s2 = Sheets("İlçe")
StrNo = Target.Row
s2.Range("G" & StrNo) = WorksheetFunction.VLookup(s2.Range("B" & StrNo), s1.Range("B9:h54"), 4, 0)
s2.Range("H" & StrNo) = WorksheetFunction.VLookup(s2.Range("B" & StrNo), s1.Range("B9:h54"), 5, 0)

End If



RE: Vba İndis Kısaltma - malatyalı - 04/05/2021

Ustam
StrNo = Target.Row

ile ne söylemek istedik kod kısmına


RE: Vba İndis Kısaltma - berduş - 04/05/2021

StrNo = Target.Row
Target.Row bulunulan hücrenin satır numarası
eğer biz B20 de isek bize 20 değerini verir