• DİKKAT

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

Kullanıcı Tanımlı Fonksiyonda Değişkeni Hücreye Bağlamak.

  • Konbuyu başlatan Konbuyu başlatan ikikan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Amaç;
Örnek V1 sayfamızdaki "B:YZ" aralığını index deki " Dizi " değişkenine sabitlemek,
sonra formülün bulunduğu safada "BB7" ve "AY7" hücrelerinden aynı yola veya başka bir yöntemle veri almak.
Buradaki mantık değişkenleri istediğimiz sayfadaki hücrelere bağlamak.

Function ELE(Dizi, Satır_say, Sütun_say)
ELE = WorksheetFunction.Index(Dizi, Satır_say, [Sütun_say])
End Function
-------------------------------------
Function ELE()
Dizi = ?
Satır_say = ?
Sütun_say = ?
ELE = WorksheetFunction.Index(Dizi, Satır_say, [Sütun_say])
End Function
---------------------------------
 

Ekli dosyalar

Amaç;
Örnek V1 sayfamızdaki "B:YZ" aralığını index deki " Dizi " değişkenine sabitlemek,
sonra formülün bulunduğu safada "BB7" ve "AY7" hücrelerinden aynı yola veya başka bir yöntemle veri almak.
Buradaki mantık değişkenleri istediğimiz sayfadaki hücrelere bağlamak.

Function ELE(Dizi, Satır_say, Sütun_say)
ELE = WorksheetFunction.Index(Dizi, Satır_say, [Sütun_say])
End Function
-------------------------------------
Function ELE()
Dizi = ?
Satır_say = ?
Sütun_say = ?
ELE = WorksheetFunction.Index(Dizi, Satır_say, [Sütun_say])
End Function
---------------------------------

Yazıdığınız function istediğiniz işlemi yapmıyormu tam anlayamadım.
 
V1 sayfamdaki B:YZ aralıgım sabit BB ve AY de sabit olacak ben neden formule başlarken
sürekli aralık ve başvurular vermek istemiyorum bun direk sabitlemek istiyorum,
=ELE() yaptıgımda direk veriyi alsın istiyorum.
 
Arkadaşlar ban sadece altaki fonksiyonda Dizi değişkeninin fonksiyondan değilde
sayfadaki A1 hücresinden alınmasını gösterin yeterli olcak.

-------------------------------------
Function ELE()
Dizi = ? Burayı sayfada herhangibir hücreden değer alması gerekiyor?
Satır_say = ?
Sütun_say = ?
ELE = WorksheetFunction.Index(Dizi, Satır_say, [Sütun_say])
End Function
 
Merhaba,

Yapmak istediğinizi umarım doğru anlamışımdır. Aşağıdaki fonksiyonu denermisiniz.

Kod:
Function ELE()
    Dim Dizi As Variant, Satir As Long, Sutun As Integer
    
    Application.Volatile
    Dizi = Sheets("V1").Range("B:YZ")
    Satir = 15
    Sutun = 3
    ELE = WorksheetFunction.Index(Dizi, Satir, Sutun)
End Function
 
Korhan Ayhan; Bey yapmak istediğim oldu birazdaha geliştirmeye çalışıyorum,
Aşadaki kodlar ile ay 7 ve bb7 hücresi artık değişken olarak işlev görüyor

Function ELE(Dizi, Satır_say, Sütun_say, HAY)
Application.Volatile
'HAY = Range("AY" & 7).Value
HBB = Range("BB" & 7).Value
SSA = Satır_say.row
USA = Sütun_say.Column
'Dizi = Sheets("V1").Range("B" & 4 & ":IV" & 1000)
EL = WorksheetFunction.Index(Dizi, HAY + (SSA), (USA))
EK = WorksheetFunction.Index(Dizi, (SSA), (USA))
yada = (EL = EK)
If HBB > (SSA) - 4 = True Then
If WorksheetFunction.Or(yada) = True Then
ELE = "yada dogru ise olacak deger"
Else
ELE = EL
End If
Else
ELE = "eger yanlışsa olacak değer"
End If
End Function
 
Çözüldü Çok mutluyum

Public Function YA(Dizi, satır, Ax)
Application.Volatile
ay7 = Range("AY" & 7).Value
Sat = satır + ay7

aa = WorksheetFunction.Index(Dizi, (Sat - (0 - Ax)))
a = WorksheetFunction.Index(Dizi, (Sat - (9 - Ax)))
b = WorksheetFunction.Index(Dizi, (Sat - (8 - Ax)))
c = WorksheetFunction.Index(Dizi, (Sat - (7 - Ax)))
d = WorksheetFunction.Index(Dizi, (Sat - (6 - Ax)))
e = WorksheetFunction.Index(Dizi, (Sat - (5 - Ax)))
f = WorksheetFunction.Index(Dizi, (Sat - (4 - Ax)))
g = WorksheetFunction.Index(Dizi, (Sat - (3 - Ax)))
h = WorksheetFunction.Index(Dizi, (Sat - (2 - Ax)))
i = WorksheetFunction.Index(Dizi, (Sat - (1 - Ax)))
j = WorksheetFunction.Index(Dizi, (Sat - (0 - Ax)))

x1 = WorksheetFunction.Or(a = aa)
x2 = WorksheetFunction.Or(b = a)
x3 = WorksheetFunction.Or(c = b, c = a)
x4 = WorksheetFunction.Or(d = c, d = b, d = a)
x5 = WorksheetFunction.Or(e = d, e = c, e = b, e = a)
x6 = WorksheetFunction.Or(f = e, f = d, f = c, f = b, f = a)
x7 = WorksheetFunction.Or(g = f, g = e, g = d, g = c, g = b, g = a)
x8 = WorksheetFunction.Or(h = g, h = f, h = e, h = d, h = c, h = b, h = a)
x9 = WorksheetFunction.Or(i = h, i = g, i = f, i = e, i = d, i = c, i = b, i = a)
x10 = WorksheetFunction.Or(j = i, j = h, j = g, j = f, j = e, j = d, j = c, j = b, j = a)

If Ax = 0 Then
If x10 = True Then
YA = ""
Else
YA = j
End If
End If

If Ax = 1 Then
If x9 = True Then
YA = ""
Else
YA = i
End If
End If

If Ax = 2 Then
If x8 = True Then
YA = ""
Else
YA = h
End If
End If

If Ax = 3 Then
If x7 = True Then
YA = ""
Else
YA = g
End If
End If

If Ax = 4 Then
If x6 = True Then
YA = ""
Else
YA = f
End If
End If

If Ax = 5 Then
If x5 = True Then
YA = ""
Else
YA = e
End If
End If

If Ax = 6 Then
If x4 = True Then
YA = ""
Else
YA = d
End If
End If

If Ax = 7 Then
If x3 = True Then
YA = ""
Else
YA = c
End If
End If

If Ax = 8 Then
If x2 = True Then
YA = ""
Else
YA = b
End If
End If

If Ax = 9 Then
If x1 = True Then
YA = ""
Else
YA = a
End If
End If

End Function

Bu Kodla işlemi çözdüm fakat ben ilk on satıra veri alıyorum, sonsuz döngü mümkümmü bilmiyorum geliştirmek istiyenlere kodu ve örnek dosyayı gönderiyorum
herşey için teşekürler...
 
Merhaba,

Sorunuzdan tam olarak neye ulaşmak istediğiniz anlaşılmıyor. Kendi kendinize çözüm bulmanız güzel. Eğer örnek üzerinde hücre adresleri vererek neye ulaşmak istediğinizi açıklarsanız daha esnek bir fonksiyon hazırlanabilir.
 
Merhaba,

Sorunuzdan tam olarak neye ulaşmak istediğiniz anlaşılmıyor. Kendi kendinize çözüm bulmanız güzel. Eğer örnek üzerinde hücre adresleri vererek neye ulaşmak istediğinizi açıklarsanız daha esnek bir fonksiyon hazırlanabilir.

Örnek bir dosya ekliyorum bir kac sorunu var ama..
 

Ekli dosyalar

Geri
Üst