• DİKKAT

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

çoklu düşeyara formülünü makro ile yaptırmak

Katılım
15 Eylül 2007
Mesajlar
1,312
Excel Vers. ve Dili
2013 türkçe
iyi çalışmalar
ekdeki dosyada sayfa1 de bir örnek var formül var yapmak istediğimi yapıyor bu nu gelir sayfasında vasıta sütununda makro ile yapılabilirmi yardımlarınız için şimdiden teşekkür ederim

yapmak istediğim şu yıl-alacak adı-adı soyadı alacak sayfasındaki ile aynı olursa alacak sayfasındaki vasıtayı gelir sayfasındaki vasıtaya getirmek
tabiki verileri yazdıkca
 

Ekli dosyalar

formülü ben sayfanıza göre yazdım, siz kendinize göre uyarlayın

Sub Formul()

Range("P5").Select
ActiveCell.FormulaR1C1 = _
"=INDEX(RC[-11]:R[6]C[-11],SUMPRODUCT((MATCH(RC[-3]&""@""&RC[-2]&""@""&RC[-1],RC[-14]:R[6]C[-14]&""@""&RC[-13]:R[6]C[-13]&""@""&RC[-12]:R[6]C[-12],0))))"
Range("P6").Select
End Sub
 

Ekli dosyalar

ilginiz için teşekkür ederim
ancak yapmak istediğim şu gelir sayfasına yıl-alacak adı-adı soyadı buralara veri yazınca alacak sayfasındaki ile aynı ise vasıya getirmesi
bu şekilde yardımcı olabilirmisiniz
 
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Not Intersect(Target, Range("D5:D1048576")) Is Nothing Then
If Target = "" Then Exit Sub
If WorksheetFunction.CountIf(Sheets("ALACAK").Range("D:D"), Cells(Target.Row, "D")) > 0 Then
Cells(Target.Row, "E") = WorksheetFunction.VLookup(Cells(Target.Row, "D"), Sheets("ALACAK").Range("D:E"), 2, 0)
Else
Cells(Target.Row, "D") = ""
MsgBox " YAZDIĞINIZ BULUNAMADI ", vbCritical, " DİKKAT !!!!! "
End If
End If

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
BU KOD SADECE ADI SOYADI TUTUYORSA VASITAYI GETİRİYOR
BİRİNCİ MESAJIMDAKİ YAZDIĞIM GİBİ BİR KOD LAZIM YARDIMCI OLABİLEN OLURMU
 
bu kodu dener misiniz
Kod:
Sub çoklu()
Dim i As Long
Dim a As Long
a = Cells(65536, "B").End(xlUp).Row
For i = 5 To a
Cells(i, "E") = Evaluate("=INDEX(Sayfa1!E5:E65536,SUMPRODUCT(MATCH(B" & i & "&C" & i & "&D" & i & ",Sayfa1!B5:B65536&Sayfa1!C5:C65536&Sayfa1!D5:D65536,0)),1)")
Next i
End Sub
 
ihsan bey ilginiz için teşekkür ederim ancak ben bütona tıklamalı istemiyorum
kodun başlığı Private Sub Worksheet_Change(ByVal Target As Range) bunun gibi olsa gelir sayfasında yıl alacak adı adı soyadı süütunlarını yazınca alacak sayfasından vasıtayı getirse

4. mesajdaki kod sadece bir sütunu eşleştiriyor ben 3 sütunu eşleştirmek istiyorum yıl alacak adı adı soyadı alacak sayfasındakilerle eşleştirip eşleşen varsa vasıtasını gelir sayfasına getirmesi
 
hangi sütunda işlem yaptığınızda otomatik bu hesabı yapsın.
onu söyleyin ona göre düzenleme yapalım.
bir de hangi sayfada istiyorsunuz
 
ihsan hocam özürdilerim herhalde derdimi anlatamdım
istediğim şu 1. mesajımdaki ekdeki dosyada sayfa1 örnek o sayfa çalışmamda yok sadece alacak ve gelir sayfaları var
sayfa1 de sağda vasıta bölümünde bir formül var o formülün yaptığı mantık doğru şu işlemi yapıyor yıl alacak adı adı soyadı bölümlerine veri yazınca alacak sayfasındaki aynı sütunlarda ekşleşiyorsa alacak sayfasındaki vasıtayı gelir sayfasındaki vasıtaya getirmesini istiyorum


"hangi sütunda işlem yaptığınızda otomatik bu hesabı yapsın"
gelir sayfasının "e" vasıta sütununa otomatik sağtarafındaki veriler alacak sayfasındaki ile eşleşince gelmesi
 
inanın ne dediğinizi anlamadım örnek dosyayı ona söylediğinize göre düzenleyin
öyle bakayım
 
iyi günler yeni dosya ekledim
gelir sayfasındaki sarı dolgulu yere makro ile gelmesini istiyorum

yıl alacak adı adı soyadını yazınca geliryor ancak sadece adı soyadına göre eşleştiriyor b-c-d- sütunlarını alacak sayfası ile eşleitirip eşleşenin vasıtasını getirmesi

örnekdeki dosyada bilgileri yazınca vasıtaya hep ali getiriyor çünkü sadece düşeyara mantığı ile isimler eşleşiyorsa mantığı ile çalışıyor halbüki yılı ve alacak adına görede eşleştirmesi lazım ikin ci alinin vasıtasına mehmet getimesi lazım
 

Ekli dosyalar

hocalarım anlaşılmayan kısmını sorarsanın anlatmaya çalışayım derdimi anlatamadım herhalde
 
iyi günler yeni dosya ekledim
gelir sayfasındaki sarı dolgulu yere makro ile gelmesini istiyorum

yıl alacak adı adı soyadını yazınca geliryor ancak sadece adı soyadına göre eşleştiriyor b-c-d- sütunlarını alacak sayfası ile eşleitirip eşleşenin vasıtasını getirmesi

örnekdeki dosyada bilgileri yazınca vasıtaya hep ali getiriyor çünkü sadece düşeyara mantığı ile isimler eşleşiyorsa mantığı ile çalışıyor halbüki yılı ve alacak adına görede eşleştirmesi lazım ikin ci alinin vasıtasına mehmet getimesi lazım

lütfen özelden mesaj atmayın bu son bir daha yanıt vermeyeceğim.
kod olarakta bunu kullanabilirsiniz
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B5:D65536")) Is Nothing Then Exit Sub
Dim i As Long
Dim a As Long
a = Cells(65536, "B").End(xlUp).Row
For i = 5 To a
Cells(i, "E") = Evaluate("=INDEX(ALACAK!E5:E65536,SUMPRODUCT(MATCH(B" & i & "&C" & i & "&D" & i & ",ALACAK!B5:B65536&ALACAK!C5:C65536&ALACAK!D5:D65536,0)),1)")
Next i
End Sub
 
ihsan hocam ilginiz için teşekkür ederim ancak gelir sayfasında işlem bir satır için yapmıyormu yani diyelimki ben 5. satıra veri yazıyorum onun vasıtasını getirse diğer satırları o satıra veri yazınca getirse
 
iyide onu nasıl getirecek üç sorgulu olarak değil mi_?
yoksa siz yıl yazdığınızda onun vasıtasını
yıl ve alacak adını yazdığınızda ikisinin ortak vasıtasını
yıl , alacak adı , adı soyadını yazdığınızda ortak vasıtayı mı getirecek.
inanın tabirimi kötü bulmazsanız cımbızla soru çözmeye çalışıyoruz gibi geliyor bana
 
ihsan bey sizi üzdüm çok özür dilerim ancak derdimi anlatamıyorum
yapmak istediğim şu gelir sayfasında b5 den başlıyorum yıla yılı yazıyorum alacak adını yazıyorum adı soyadını yazıyorum bunları düşey ara mantığında üçünü alacak sayfası ile karşılaştırıp tutan vasıtayı vasıta sütunun ageitmesi sadece gelir sayfasındaki 5. satıra karşılaştırıken alacak sayfasının tüm satırlarında karşılaştırması yani düşeyarada da o şekilde olmuyormu formülün yaptığı işlemde yani düşeyardan farklı olarak şu desem doğru ifade olurmu oarda bir sütunu karşılaştırıyor ben üç sütunu karşılaştırmak istiyorum
 
iyi çalışmalar 12. mesajdaki kod her veri yazdığımda bütün satırları kontrol ediyor jerhalde buda yavaşlamaya neden oluyor sadece hangi satıra veri yazıyorsam o satırın vasıtasını getirse
 
Merhaba,

Kodları aşağıdakilerle değiştiriniz. Kodu D sütunu tetikler.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim c As Range, Sa As Worksheet, ilkadres As Variant
 
Set Sa = Sheets("ALACAK")
 
If Intersect(Target, Range("D5:D" & Rows.Count)) Is Nothing Then Exit Sub
Target.Offset(0, 1).ClearContents
 
With Sa.Range("B4:B" & Rows.Count)
    Set c = .Find(Target.Offset(0, -2), LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        ilkadres = c.Address
        Do
            With Target
                If bHarf(Sa.Range("C" & c.Row)) = bHarf(.Offset(0, -1)) And _
                    bHarf(Sa.Range("D" & c.Row)) = bHarf(.Value) Then
                    .Offset(0, 1) = Sa.Range("E" & c.Row)
                End If
            End With
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> ilkadres
    End If
End With
End Sub
 
Function bHarf(Veri As String)
    bHarf = UCase(Replace(Replace(Veri, "i", "İ"), "ı", "I"))
End Function
Not : Aynı konuyla ilgili birden fazla konu başlığı açmamanızı rica ederim.

.
 
ömer bey çok teşekkür ederim çok iyi oldu tam istediğim gibi sizlerin sayesinde işlerimizi dah iyi hızlı ve hatasız yapıyoruz emeklerinize sağlık
 
Rica ederim, işinize yaradığına sevindim. İyi çalışmalar...
 
If bHarf(Sa.Range("C" & c.Row)) = bHarf(.Offset(0, -1)) And _
bHarf(Sa.Range("D" & c.Row)) = bHarf(.Value) Then

iyi günler excel 2003 de liste oluştur özelliğini kullanarak liste yaptım anca üsteki kod sarı dolgu oluyor hata veriyor yardımcı olabilirmiisniz
 
Geri
Üst