Buda
Excel açılışında kod devreye girer sayfa aktif olunca devreye girer ve buton ekledim tıklayınca devreye girer.
Ve B11 değişincede veriler gelir.
Aslında KTF yazsakta olur birde onu yaparsam eklerim.
KTF yazmıştım.
Kullanmım örnekleri
Kod:
=getirAd($B11;REÇETELER!$B$11:$B$40;C10;REÇETELER!$10:$10)
=getirGram($B11;REÇETELER!$B$11:$B$40;C11;REÇETELER!C11:C40;C10;REÇETELER!$10:$10)
Dediğiniz aşağı olayınada sonra bakayım.
Function getirGram(aranan1 As String, alan1 As Range, _
aranan2 As String, alan2 As Range, _
aranan3 As String, alan3 As Range)
Dim kacinci1 As Integer
Dim kacinci2 As Integer
Dim kacinci3 As Integer
Const SatirBaslangic As Byte = 11
Application.Volatile
On Error Resume Next
kacinci1 = WorksheetFunction.Match(aranan1, alan1, 0) + SatirBaslangic
kacinci2 = WorksheetFunction.Match(aranan2, alan2, 0) + SatirBaslangic
kacinci3 = WorksheetFunction.Match(aranan3, alan3, 0)
On Error GoTo 0
If kacinci1 > 0 And kacinci2 > 0 And kacinci3 > 0 Then
getirGram = ThisWorkbook.Sheets("REÇETELER").Cells(kacinci1, kacinci3).Value
Else
getirGram = ""
End If
End Function
Function getirAd(aranan1 As String, alan1 As Range, _
aranan2 As String, alan2 As Range) As String
Dim kacinci1 As Integer
Dim kacinci2 As Integer
Const SatirBaslangic As Byte = 10
Application.Volatile
On Error Resume Next
kacinci1 = WorksheetFunction.Match(aranan1, alan1, 0) + SatirBaslangic
kacinci2 = WorksheetFunction.Match(aranan2, alan2, 0)
On Error GoTo 0
If kacinci1 > 0 And kacinci2 > 0 Then
getirAd = ThisWorkbook.Sheets("REÇETELER").Cells(kacinci1, kacinci2).Value
Else
getirAd = ""
End If
End Function
Birde böyle yaptım ya butona tıklayınca yada sayfa aktif olunca kod çalışır.
Sayfadaki değişiklik olayı içinde yaptım laki pasif yaptım kodları sonsuz döngüye sokuyor.Sokmaması için Application.EnableEvents = False bu kod kullanılıyor lakin bazen kodları durduruyor.
Yada sadece Sayfadaki veri değişincede kod çalışabilir sonra bakarım teferruatlıca bu dosyayı bir deneyin.
'Private Sub Worksheet_Change(ByVal Target As Range)
' Application.EnableEvents = False
' GetirMod.KacGetir
' Application.EnableEvents = True
'End Sub
Sanırım formülle oldu hemde dizi formülsüz.
Veriler yoksa 0 geliyor onu ayarlardan kapatabilirsiniz birde yaeşil hata şekil oluyor onuda kapatabilirsiniz.
C11;
Kod:
=EĞERHATA(DOLAYLI("REÇETELER!"&ADRES(KAÇINCI($B11;REÇETELER!$B$11:$B$40;0)+10;KAÇINCI(C$10;REÇETELER!$10:$10;0);2));"")
C12;
Kod:
=EĞERHATA(DOLAYLI("REÇETELER!"&ADRES(KAÇINCI($B11;REÇETELER!$B$11:$B$40;0)+11;KAÇINCI(C$10;REÇETELER!$10:$10;0);2));"")
Sıfır ve formül hata olayını kapatma için resimdeki yerleri kaldırın ilgili sayfayı açıp.