• DİKKAT

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

foksiyon ekleme makrosunda yardım

  • 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
Function AYNI(alan As Range)
Dim hcr As Range
For Each hcr In alan
If WorksheetFunction.CountIf(alan, hcr.Value) > 1 Then
AYNI = "YANLIŞ"
Exit Function
End If
Next
AYNI = "DOGRU"
End Function

bu kod işe yarıyor fakat eğer foksiyonunun içinde hata veriyor ne eklemem lazım ?
 
Merhaba,

Ne hatası veriyor ki?
 
bu şekilde dener misiniz,


Kod:
Function AYNI(hcr, alan As Range)

For Each hcr In alan
If WorksheetFunction.CountIf(alan, hcr.Value) > 1 Then
AYNI = "YANLIŞ"
Exit Function
End If
Next
AYNI = "DOGRU"

End Function
 
bu şekilde dener misiniz,


Kod:
Function AYNI(hcr, alan As Range)

For Each hcr In alan
If WorksheetFunction.CountIf(alan, hcr.Value) > 1 Then
AYNI = "YANLIŞ"
Exit Function
End If
Next
AYNI = "DOGRU"

End Function

formül içine alamıyorum kurmak istediğim


Function Benzer(Aralik As Range, i As Integer)
Application.Volatile
Dim ciftolmayan As New Collection
For Each ce In Aralik
On Error Resume Next
ciftolmayan.Add ce, CStr(ce)
Next ce

If i > ciftolmayan.Count Then
Benzersiz = ""
Else
Benzer = ciftolmayan(i)
End If
End Function


bu formüle daha yakın aslında istedigim veriyi alacagı aralıgı değişken yapmak
mümkünmü yapmaya calıştıgım doyayıda eke koyuyorum formülle olacak gibi drmuyor
 

Ekli dosyalar

konu tekrarı acıl yardım

formül içine alamıyorum kurmak istediğim


Function Benzer(Aralik As Range, i As Integer)
Application.Volatile
Dim ciftolmayan As New Collection
For Each ce In Aralik
On Error Resume Next
ciftolmayan.Add ce, CStr(ce)
Next ce

If i > ciftolmayan.Count Then
Benzersiz = ""
Else
Benzer = ciftolmayan(i)
End If
End Function


bu formüle daha yakın aslında istedigim veriyi alacagı aralıgı değişken yapmak
mümkünmü yapmaya calıştıgım doyayıda eke koyuyorum formülle olacak gibi drmuyor
konu tekrarı acıl yardım
 
Diye sormuşum ama yanıt alamadık.

Sorunuzu örnek dosya ile destekleyiniz ki anlaşılması kolay olsun.

hatadan ziyade necdet bey

EĞER(YADA(İNDİS('D1'!B:B;$U$1+SATIR('D1'!A1);1)=İNDİS('D1'!B:B;$U$1+SATIR('D1'!A1)-1;1));"";EĞER($V$1>SATIR('D1'!A1)-1;İNDİS('D1'!B:B;$U$1+SATIR('D1'!A1);1);""))

bu formülü foksiyona cevirmeye calışıyorum
 
hatadan ziyade necdet bey

EĞER(YADA(İNDİS('D1'!B:B;$U$1+SATIR('D1'!A1);1)=İNDİS('D1'!B:B;$U$1+SATIR('D1'!A1)-1;1));"";EĞER($V$1>SATIR('D1'!A1)-1;İNDİS('D1'!B:B;$U$1+SATIR('D1'!A1);1);""))

bu formülü foksiyona cevirmeye calışıyorum

Merhaba
Aşağıdaki gibi kullanabilirmisiniz veya bir fikir verebilirmi?
Sub işlemyap()
Application.ScreenUpdating = False
With Range("A2:A600") 'işemin yapılması istenen aralık
.Formula = "=IF(OR(INDEX('D1'!C[1],R1C21+ROW('D1'!R[-1]C),1)=INDEX('D1'!C[1],R1C21+ROW('D1'!R[-1]C)-1,1)),"""",IF(R1C22>ROW('D1'!R[-1]C)-1,INDEX('D1'!C[1],R1C21+ROW('D1'!R[-1]C),1),""""))"
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub
 
Merhaba
Aşağıdaki gibi kullanabilirmisiniz veya bir fikir verebilirmi?
Sub işlemyap()
Application.ScreenUpdating = False
With Range("A2:A600") 'işemin yapılması istenen aralık
.Formula = "=IF(OR(INDEX('D1'!C[1],R1C21+ROW('D1'!R[-1]C),1)=INDEX('D1'!C[1],R1C21+ROW('D1'!R[-1]C)-1,1)),"""",IF(R1C22>ROW('D1'!R[-1]C)-1,INDEX('D1'!C[1],R1C21+ROW('D1'!R[-1]C),1),""""))"
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub

TEŞEKÜRLER fakat formülün bileşeni çok fazla foksiyon da kullanmam lazım
 
Geri
Üst