Skip to main content

AccessTr.neT


Vba İndis Kısaltma

Vba İndis Kısaltma

Çözüldü #1
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?
.zip sen.zip (Dosya Boyutu: 28,62 KB | İndirme Sayısı: 2)
malatyalı, 31-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
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
Cevapla
#3
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.
malatyalı, 31-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#4
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
Cevapla
#5
Ustam
StrNo = Target.Row

ile ne söylemek istedik kod kısmına
malatyalı, 31-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#6
StrNo = Target.Row
Target.Row bulunulan hücrenin satır numarası
eğer biz B20 de isek bize 20 değerini verir
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task