• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Düşeyara Fonksiyonu kodu

  • Konbuyu başlatan Konbuyu başlatan Ridan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Temmuz 2005
Mesajlar
306
Excel Vers. ve Dili
excel 2021 tr
Aşağıdaki şekilde kullanıcı tanımlı Düşeyara fonksiyonu yapmaya çalıştım ama.. DEĞER hatası alıyorum. ActiveCell.Offset(0, -10).Value kısmı sabit değil, formülün uygulandığı hücrenin 10 hücre solunda...

Function AGİTUTARI(M)
M = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -10), PERSONEL.Range("B2:W50"), 8, False)
End Function
 
ActiveCell olarak hangi hücre seçili ? Örn: A1 ise hata almanız doğal. Açıkcası fonksiyonun kullanımı konusunda biraz daha detay verirseniz farklı çözümler gelecektir.
 
ActiveCell olarak hangi hücre seçili ? Örn: A1 ise hata almanız doğal. Açıkcası fonksiyonun kullanımı konusunda biraz daha detay verirseniz farklı çözümler gelecektir.

L7-L9-L11.. formül aşağı doğru hücrelere girilecek. Bakılan yer B7-B9-B11 hücreleri.. Formül aşağı doğru çekilince haliyle bakılan hücreler de değişiyor.
 
Deneyiniz.

L9 hücresine =AGİTUTARI(L9) olarak uygulayıp deneyiniz.

Kod:
Function AGİTUTARI(Adres As Range)
    AGİTUTARI = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -10), PERSONEL.Range("B2:W50"), 8, False)
End Function
 
Deneyiniz.

L9 hücresine =AGİTUTARI(L9) olarak uygulayıp deneyiniz.

Kod:
Function AGİTUTARI(Adres As Range)
    AGİTUTARI = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -10), PERSONEL.Range("B2:W50"), 8, False)
End Function

Maalesef olmadı.. DEĞER hatası aldım. Örnek dosyayı yükledim. (İşlerin yoğunluğundan ilk mesajda yükleyemedim...)
Örnek Dosya
 
İlk mesajınızda aşağıdaki gibi yazdığınız için bende değişiklik yapmamıştım.

PERSONEL.Range("B2:W50")

Bu şekilde kullanabilmeniz için sayfa adınızın kod editöründeki ismi "PERSONEL" olmalıdır. Oysaki sizin sayfanızın sekme adı "PERSONEL" olarak görünüyor. İşte örnek dosya talebimizin en büyük nedenlerinden biriside budur. Bu tarz karışıklıkların önüne geçmek içindir.

Kodu aşağıdaki şekilde revize ederseniz çalıştığını görebilirsiniz.

Formülün dinamik hesaplama yapması için ayrıca "Application.Volatile True" satırı ilave edilmiştir.

Kod:
Function AGİTUTARI(Adres As Range)
    Application.Volatile True
    AGİTUTARI = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -10), Sheets("PERSONEL").Range("B2:W50"), 8, False)
End Function
 
Haklısınız..çok teşekkür ederim.
 
Geri
Üst