• DİKKAT

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

Şartı sağlayan veriyi aktar.

  • Konbuyu başlatan Konbuyu başlatan manly
  • Başlangıç tarihi Başlangıç tarihi
Katılım
25 Nisan 2005
Mesajlar
690
Excel Vers. ve Dili
Excel 2003 Türkçe
Ek'te gönderdiğim dosyayı açınca ekrandaki AKTAR butonuna basılınca şunu yapmasını istiyorum.

Sayfa2 deki A sütununda ÇAP sütunundaki rakamın bir üstünü Sayfa1 deki A sütununda bulup D sütunundaki KALOT SAYISINI Sayfa2 deki B sütununa yazdırmak. Yardımcı olursanız sevinirim.
 

Ekli dosyalar

Merhaba,

Aynı çap değeri diğer sayfada varsa yinede bir üst değerini mi arayacak.
 
Merhaba
Olabilir mi?
Eğer en yakın olan değerler için virgülden önceki rakamları eşitse
Dener misiniz
Kod:
Sub Numan()
    Dim c As Range, S1, S2 As Worksheet, ilkadres As Variant, i, x As Long
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    Application.ScreenUpdating = False
    S1.Range("AA2:AB" & Rows.Count).ClearContents
      S2.Range("AA2:AB" & Rows.Count).ClearContents
    S2.Range("B2:B" & Rows.Count).ClearContents
   On Error Resume Next
 For x = 2 To S1.Cells(Rows.Count, "A").End(xlUp).Row
S1.Cells(x, "AA") = Split(S1.Range("A" & x), ",")(0)
S2.Cells(x, "AA") = Split(S2.Range("A" & x), ",")(0)
S1.Cells(x, "AB") = Split(S1.Range("A" & x), ",")(1)
S2.Cells(x, "AB") = Split(S2.Range("A" & x), ",")(1)
Next x
    For i = 2 To S2.Cells(Rows.Count, "AA").End(xlUp).Row
   With S1.Range("AA2:AA" & Rows.Count)
            Set c = .Find(S2.Cells(i, "AA"), , xlValues, xlWhole)
            If Not c Is Nothing Then
                ilkadres = c.Address
                Do
                    If S1.Cells(c.Row, "AA") = S2.Range("AA" & i) And _
                       S1.Cells(c.Row, "AB") > S2.Range("AB" & i) Then
                        S2.Cells(i, "B") = S1.Cells(c.Row, "D")
                        
                    End If
                    
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> ilkadres
            End If
        End With
    Next i
     S1.Range("AA2:AB" & Rows.Count).ClearContents
      S2.Range("AA2:AB" & Rows.Count).ClearContents
   Application.ScreenUpdating = True
End Sub
 
Son düzenleme:
Alternatif:

Kod:
Sub Aktar()
    
    Dim S2 As Worksheet, son As Long, i As Long, a, c As Range
    
    Set S2 = Sheets("Sayfa2")
        
    Application.ScreenUpdating = False
    Sheets("Sayfa1").Select
    S2.Range("B2:B" & Rows.Count).ClearContents
    son = Cells(Rows.Count, "A").End(xlUp).Row
    
    For i = 2 To S2.Cells(Rows.Count, "A").End(xlUp).Row
        a = Evaluate("=MIN(IF(A2:A" & son & ">" & S2.Cells(i, _
            "A").Address(external:=True) & ",A2:A" & son & "))")
        Set c = [A:A].Find(a, LookIn:=xlFormulas)
        If Not c Is Nothing Then
            S2.Cells(i, "B") = Cells(c.Row, "D")
        End If
    Next i
    
    Application.ScreenUpdating = True
    
End Sub

.
 
Doğrudur
Bizim kodların doğru çalışması için
karşılaştırılacak değerlerin bir üstü için
Kod:
virgülden önceki rakamları eşitse
Koşulu gerekiyor
Ömer beye bende teşekkür ederim
kodlarını arşivimize aldık.
 
Geri
Üst