Düşey ara fonksiyonunun kod ile yapılması

Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Selamlar,
Soru, başlıktaki gibi, mesela,
=DÜŞEYARA($B8;SABLON!$A$2:E$65536;SÜTUNSAY($B$2:E$8);0)
formülünün b8 den b200 e kadar işlem yapması için, nasıl bir kod yazılması gerekir?
Çok teşekkür ederim, iyi çalışmalar.
Yavuz Tümer
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodlar bulduğu değerleri C sütununa yazar.:cool:
Kod:
Sub bul()
Dim i As Integer, k As Range
For i = 8 To 200
    Set k = Sheets("SABLON").Range("A2:A65536").Find(Range("B" & i).Value, , xlValues, xlWhole)
    If Not k Is Nothing Then
        Cells(i, "C").Value = k.Offset(0, 3).Value
    End If
    Set k = Nothing
Next i
MsgBox "İşlem tamamlandı"
End Sub
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren hocam, teşekkür ederim,
Kendi sayfama koydum olmadı, rica etsem bir örnek dosya ile öğretebilirmisin bana, sanırım bu saatte kafam basmadı, anlamamış olabilirim.
Sevgiler, iyi geceler.
Yavuz Tümer
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren Bey,
Bugün tekrar baktım dosyada denedim yine olmadı.
Ekli dosyada sorun nedir, nerededir anlamadım.
İlgilenirseniz sevinirim.
İyi akşamlar.
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren hocam,
Sorumu görmediniz sanırım, bekledim ama cevap olmayınca
bir kez daha hatırlatmak istedim.
Yavuz Tümer
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ekte.:cool:
Kod:
Private Sub CommandButton1_Click()
Dim i As Integer, k As Range
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
Range("B8:B65536").ClearContents
For i = 8 To 200
    Set k = Sheets("SABLON").Range("A2:A65536").Find(Range("A" & i).Value, , xlValues, xlWhole)
    If Not k Is Nothing Then
        Cells(i, "B").Value = k.Offset(0, 1).Value
    End If
    Set k = Nothing
Next i
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı"
End Sub
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren bey, çok teşekkür ederim. Ellerinize sağlık, gayet güzel olmuş. Son bir soru, sablon sayfasındaki tabloda tekrar eden değerler olursa, ki zaten var ve bunların karşılıkları farklı olursa "mesela n7260 bir satırda 2 iken bir diğerinde 7 vs." ne yapabiliriz.
Saygılar.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren bey, çok teşekkür ederim. Ellerinize sağlık, gayet güzel olmuş. Son bir soru, sablon sayfasındaki tabloda tekrar eden değerler olursa, ki zaten var ve bunların karşılıkları farklı olursa "mesela n7260 bir satırda 2 iken bir diğerinde 7 vs." ne yapabiliriz.
Saygılar.
Ne yapacağınıza siz karar vereceksiniz.:cool:
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Ne yapacağınıza siz karar vereceksiniz.:cool:
Hocam, nasıl yapacağımı bilsem zaten sizlerin değerli vaktini almam. Verdiğiniz örnekte, bulduğu ilk n7260 değerini aktarıyor, aşağı doğru aramaya devam etmiyor. Ben sadece bunun devamlılığının nasıl olacağını sormuştum. ikinci n7260 ı bulduğunda da onun satırına denk gelen bilginin aktarılması...
İlginize teşekkür ederim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub CommandButton1_Click()
Dim i As Long, k As Range
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
Range("B8:B65536").ClearContents
ReDim myarr(1 To 2, 1 To 1)
With CreateObject("Scripting.Dictionary")
     .CompareMode = vbTextCompare
     For Each k In Range("A8:A200")
       If Not .exists(k.Value) Then
            .Add k.Value, Nothing
            a = a + 1
            ReDim Preserve myarr(1 To 2, 1 To a)
            myarr(1, a) = k.Value
            myarr(2, a) = 2
        End If
     Next
End With
For Each k In Range("A8:A200")
    For i = 1 To UBound(myarr, 1)
        If k.Value = myarr(1, i) Then
            For t = myarr(2, i) To Sheets("SABLON").Cells(65536, "A").End(xlUp).Row
                If k.Value = Sheets("SABLON").Cells(t, "A").Value Then
                    k.Offset(0, 1).Value = Sheets("SABLON").Cells(t, "B").Value
                    myarr(2, i) = t + 1
                   GoTo atla
                End If
            Next t
        End If
    Next i
atla:
Next k
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı"
End Sub
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren bey,
Ellerinize sağlık, gayet güzel çalışıyor.
Çok teşekkür ederim.
İyi çalışmalar.
Yavuz Tümer
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren bey,
Kabak tadı vermeye başladığımın farkındayım ama, sanırım aranan kodlar değişince hatalı sonuç vermeye başladı. Dosya ekte, rica etsem bir bakabilirmisiniz.
Yavuz Tümer
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren bey,
Kabak tadı vermeye başladığımın farkındayım ama, sanırım aranan kodlar değişince hatalı sonuç vermeye başladı. Dosya ekte, rica etsem bir bakabilirmisiniz.
Yavuz Tümer
Gerekli değişikliği yaptım.
Ekli dosyayı inceleyiniz.:cool:
 
Katılım
18 Mart 2008
Mesajlar
112
Excel Vers. ve Dili
Excel 2007 TR
Evren bey,
Tekrar çok çok teşekkürler, gayet güzel çalışıyor.
İyi çalışmalar, kolay gelsin.
Hoşçakalın.
Yavuz Tümer
 
Katılım
29 Mart 2007
Mesajlar
25
Excel Vers. ve Dili
xp türkçe
selam
sayfa3 de de aynı veriler olsaydı ve bu verilerin karşısındaki değerleri de c sütununa yeni bir buton sayesinde yazdırmak isteseydik kodda ne gibi değişiklik yapmamız gerekirdi
yardımlarınız için tşk.
 
Üst