AccessTr.neT
Makro Veya Kod Nasıl Oluştururum - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Makro Veya Kod Nasıl Oluştururum (/konu-makro-veya-kod-nasil-olustururum.html)

Sayfalar: 1 2 3


Makro Veya Kod Nasıl Oluştururum - HORZUM - 16/10/2020

Deneme-1 dosyasındaki A1:A5000 hücreleri arasında herhangi bir hücreye  Sayfa2'de bulunan verilerden A,B,C girilince B2 hücresine karşısındaki rakamları getirecek makro veya kod nasıl oluştururum.

Not: A1:A5000 hücreleri arasına ekleme veya silme yapılabilir. VERİ DOĞRULAMA VEYA LİSTBOX HARİÇ. Direkt yazılınca verinin gelmesi gerekiyor.


RE: Makro Veya Kod Nasıl Oluştururum - berduş - 16/10/2020

B satırına aşağıdaki formülü girip aşağı sürükleyerek dener misiniz
=DÜŞEYARA(A1;Sayfa2!A:B;2)
yada
=EĞERHATA(DÜŞEYARA(A1;Sayfa2!A:B;2);"")



RE: Makro Veya Kod Nasıl Oluştururum - HORZUM - 16/10/2020

(16/10/2020, 16:06)berduş yazdı: B satırına aşağıdaki formülü girip aşağı sürükleyerek dener misiniz
=DÜŞEYARA(A1;Sayfa2!A:B;2)
yada
=EĞERHATA(DÜŞEYARA(A1;Sayfa2!A:B;2);"")
SAĞOLASIN 1.FORMUL İŞE YARADI


RE: Makro Veya Kod Nasıl Oluştururum - berduş - 16/10/2020

2. formülde boş alan olduğunda HATA iletisi yazmaz tek fark o


RE: Makro Veya Kod Nasıl Oluştururum - berduş - 16/10/2020

kusura bakmayın formül eksik olmuş
=DÜŞEYARA(A1;Sayfa2!A:B;2;0)
yada
=EĞERHATA(DÜŞEYARA(A1;Sayfa2!A:B;2;0);"")
düzeltmelisiniz
yoksa mesela siz Zyazsanız bile sonucu 30 gösteriyor


RE: Makro Veya Kod Nasıl Oluştururum - feraz - 16/10/2020

Sayfanın kod bölümüne alttaki kodları ekleyin alternatif olarak.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dict As Object, son As Long, veri(), i As Long
   
    Set dict = CreateObject("Scripting.dictionary")
    dict.comparemode = 1 '1 kücük büyük harf icin
   
    With ThisWorkbook.Sheets("Sayfa2")
        son = .Range("A" & Rows.Count).End(3).Row
        veri = .Range("A1:B" & son).Value
        If Target.Column = 1 Then
            If Target.Cells.Count = 1 Then
                For i = LBound(veri) To UBound(veri)
                    If Not dict.exists(veri(i, 1)) Then dict.Add veri(i, 1), veri(i, 2)
                Next
                Target.Offset(0, 1).Value = dict(Target.Value)
            End If
        End If
    End With
    Set dict = Nothing: Erase veri
End Sub

[Resim: do.php?img=10528]