Soru Makro çözümü

Katılım
27 Kasım 2019
Mesajlar
44
Excel Vers. ve Dili
excell
803339203 nolu ID için -1500 ile -15 değerleri nasıl aynı olabilir? Bunun formatla ilişkisini açıkçası ben bilemedim.
Hocam,

Haklısınız şöyle ifade edeyim VERİ5 ve VERİ6 sayfalarındaki tutarların son 2 hanesi kuruş fakat dediğim üzere formatları farklı.

803339203 ID tutarı -15,00
713111260 ID tutarı -167,99
668681248 ID tutarı -619,52

şeklinde.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yani DATA sayfasındaki TUTAR'lar VERİ6 sayfasındaki tutarların 100'e bölünmüş hali mi?

Eğer durum böyleyse tüm tutarlar aynı mantıkla mı değerlendirilecek?
 
Katılım
27 Kasım 2019
Mesajlar
44
Excel Vers. ve Dili
excell
Yani DATA sayfasındaki TUTAR'lar VERİ6 sayfasındaki tutarların 100'e bölünmüş hali mi?

Eğer durum böyleyse tüm tutarlar aynı mantıkla mı değerlendirilecek?
Evet Hocam sadece VERİ5 ve VERİ6 sayfalarındaki tutarlar DATA sayfasındaki tutarlara uyarlanarak değerlendirilecek. Diğer sayfalardaki tutarlar DATA sayfası ile aynı formatta.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Uyarlanarak derken hepsi 100'e bölünmüş hali değil mi?

Bir kural yoksa işin içinden nasıl çıkılacak?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Peki bir şey soracağım bu bilgiyi neden şimdi paylaşıyorsunuz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

VERİ5 isimli sayfanızda D2 hücresindeki verinizi kontrol edersiniz.

Bu kod diğer koda göre daha hızlı sonuç verecektir. Test edip süreyi bildirirseniz sevinirim.

C++:
Option Explicit

Sub Analiz()
    Dim S1 As Worksheet, S2 As Worksheet, Sayfa As Worksheet
    Dim Veri As Variant, Son As Long, X As Long, Satir As Long
    Dim Dizi_A As Object, Dizi_B As Object, Dizi_C As Object, Zaman As Double
   
    Zaman = Timer
   
    Application.ScreenUpdating = 0
    Application.Calculation = -4135
   
    Set S1 = Sheets("DATA")
    Set S2 = Sheets("KONTROL2")
    Set Dizi_A = CreateObject("Scripting.Dictionary")
    Set Dizi_B = CreateObject("Scripting.Dictionary")
    Set Dizi_C = CreateObject("Scripting.Dictionary")
   
    S2.Range("A2:R" & S2.Rows.Count).Clear
    S2.Range("B2:B" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("E2:E" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("H2:H" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("K2:K" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("N2:N" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("Q2:Q" & S2.Rows.Count).NumberFormat = "@"
   
    Son = S1.Cells(S1.Rows.Count, 3).End(3).Row
    Veri = S1.Range("A2:E" & Son).Value2
   
    For X = LBound(Veri, 1) To UBound(Veri, 1)
        Dizi_A.Item(Veri(X, 3) & "|" & Veri(X, 4)) = Array(Veri(X, 1), Veri(X, 4))
        Dizi_B.Item(Veri(X, 3) & "|" & Veri(X, 5)) = Array(Veri(X, 1), Veri(X, 4), Veri(X, 5))
        Dizi_C.Item(Veri(X, 4)) = Array(Veri(X, 1), Veri(X, 4), Veri(X, 5))
    Next
   
    ReDim Liste(1 To S1.Rows.Count, 1 To 18)
   
    For Each Sayfa In Sheets(Array("VERİ1", "VERİ2", "VERİ3", "VERİ4", "VERİ5", "VERİ6"))
        Select Case Sayfa.Name
            Case "VERİ1"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:L" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 7) = "00" Then
                        If Not Dizi_A.Exists(Veri(X, 3) & "|" & Veri(X, 11)) Then
                            Liste(Satir, 1) = CDate(Veri(X, 4))
                            Liste(Satir, 2) = Veri(X, 11)
                            Liste(Satir, 3) = Veri(X, 9)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ2"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:L" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 7) = "00" Then
                        If Not Dizi_A.Exists(Veri(X, 3) & "|" & Veri(X, 11)) Then
                            Liste(Satir, 4) = CDate(Veri(X, 4))
                            Liste(Satir, 5) = Veri(X, 11)
                            Liste(Satir, 6) = Veri(X, 9)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ3"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:K" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 6) = "00" Then
                        If Not Dizi_C.Exists(Veri(X, 10)) Then
                            Liste(Satir, 7) = CDate(Veri(X, 3))
                            Liste(Satir, 8) = Veri(X, 10)
                            Liste(Satir, 9) = Veri(X, 8)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ4"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:J" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 6) = "00" Then
                        If Not Dizi_C.Exists(Veri(X, 9)) Then
                            Liste(Satir, 10) = CDate(Veri(X, 3))
                            Liste(Satir, 11) = Veri(X, 9)
                            Liste(Satir, 12) = Veri(X, 7)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ5"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 2).End(3).Row
                Veri = Sayfa.Range("A2:J" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Not Dizi_B.Exists(Veri(X, 2) & "|" & Veri(X, 4) / 100) Then
                        Liste(Satir, 13) = CDate(Replace(Replace(Veri(X, 9), "Z", ""), "T", " "))
                        Liste(Satir, 14) = Veri(X, 2)
                        Liste(Satir, 15) = Veri(X, 4)
                        Satir = Satir + 1
                    End If
                Next
            Case "VERİ6"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 7).End(3).Row
                Veri = Sayfa.Range("A2:K" & Son).Value2
           
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Not Dizi_B.Exists(Veri(X, 7) & "|" & Veri(X, 4) / 100) Then
                        Liste(Satir, 16) = CDate(Replace(Replace(Veri(X, 10), "Z", ""), "T", " "))
                        Liste(Satir, 17) = Veri(X, 7)
                        Liste(Satir, 18) = Veri(X, 4)
                        Satir = Satir + 1
                    End If
                Next
        End Select
    Next
   
    S2.Range("A2").Resize(Satir, 18) = Liste
    S2.Range("A2:C" & S2.Rows.Count).Sort S2.Range("A2"), xlAscending
    S2.Range("D2:F" & S2.Rows.Count).Sort S2.Range("D2"), xlAscending
    S2.Range("G2:I" & S2.Rows.Count).Sort S2.Range("G2"), xlAscending
    S2.Range("J2:L" & S2.Rows.Count).Sort S2.Range("J2"), xlAscending
    S2.Range("M2:O" & S2.Rows.Count).Sort S2.Range("M2"), xlAscending
    S2.Range("P2:R" & S2.Rows.Count).Sort S2.Range("P2"), xlAscending

    S2.Columns.AutoFit
   
    Set S1 = Nothing
    Set S2 = Nothing
    Set Dizi_A = Nothing
    Set Dizi_B = Nothing
    Set Dizi_C = Nothing
   
    Application.Calculation = -4105
    Application.ScreenUpdating = 1
   
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hata veren satırın üzerine mouse ile gelince ekrana aldığı değer görünür.

Aşağıdaki bölümün üzerine mouse ile gidip biraz bekleyin ve aldığı değer kontrol edin.

Veri(X, 4)

Ya da hata veren verinizi paylaşın inceleyelim.
 
Katılım
27 Kasım 2019
Mesajlar
44
Excel Vers. ve Dili
excell
Hata veren satırın üzerine mouse ile gelince ekrana aldığı değer görünür.

Aşağıdaki bölümün üzerine mouse ile gidip biraz bekleyin ve aldığı değer kontrol edin.

Veri(X, 4)

Ya da hata veren verinizi paylaşın inceleyelim.
Sorun çözüldü @Korhan Ayhan hocam çok teşekkür ederim elinize-emeğinize sağlık kod 2,38 zaman diliminde çalışıyor bu benim için çok süper bir süre. Allah razı olsun.

Saygılar,
 
Katılım
27 Kasım 2019
Mesajlar
44
Excel Vers. ve Dili
excell
Deneyiniz.

VERİ5 isimli sayfanızda D2 hücresindeki verinizi kontrol edersiniz.

Bu kod diğer koda göre daha hızlı sonuç verecektir. Test edip süreyi bildirirseniz sevinirim.

C++:
Option Explicit

Sub Analiz()
    Dim S1 As Worksheet, S2 As Worksheet, Sayfa As Worksheet
    Dim Veri As Variant, Son As Long, X As Long, Satir As Long
    Dim Dizi_A As Object, Dizi_B As Object, Dizi_C As Object, Zaman As Double
  
    Zaman = Timer
  
    Application.ScreenUpdating = 0
    Application.Calculation = -4135
  
    Set S1 = Sheets("DATA")
    Set S2 = Sheets("KONTROL2")
    Set Dizi_A = CreateObject("Scripting.Dictionary")
    Set Dizi_B = CreateObject("Scripting.Dictionary")
    Set Dizi_C = CreateObject("Scripting.Dictionary")
  
    S2.Range("A2:R" & S2.Rows.Count).Clear
    S2.Range("B2:B" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("E2:E" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("H2:H" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("K2:K" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("N2:N" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("Q2:Q" & S2.Rows.Count).NumberFormat = "@"
  
    Son = S1.Cells(S1.Rows.Count, 3).End(3).Row
    Veri = S1.Range("A2:E" & Son).Value2
  
    For X = LBound(Veri, 1) To UBound(Veri, 1)
        Dizi_A.Item(Veri(X, 3) & "|" & Veri(X, 4)) = Array(Veri(X, 1), Veri(X, 4))
        Dizi_B.Item(Veri(X, 3) & "|" & Veri(X, 5)) = Array(Veri(X, 1), Veri(X, 4), Veri(X, 5))
        Dizi_C.Item(Veri(X, 4)) = Array(Veri(X, 1), Veri(X, 4), Veri(X, 5))
    Next
  
    ReDim Liste(1 To S1.Rows.Count, 1 To 18)
  
    For Each Sayfa In Sheets(Array("VERİ1", "VERİ2", "VERİ3", "VERİ4", "VERİ5", "VERİ6"))
        Select Case Sayfa.Name
            Case "VERİ1"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:L" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 7) = "00" Then
                        If Not Dizi_A.Exists(Veri(X, 3) & "|" & Veri(X, 11)) Then
                            Liste(Satir, 1) = CDate(Veri(X, 4))
                            Liste(Satir, 2) = Veri(X, 11)
                            Liste(Satir, 3) = Veri(X, 9)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ2"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:L" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 7) = "00" Then
                        If Not Dizi_A.Exists(Veri(X, 3) & "|" & Veri(X, 11)) Then
                            Liste(Satir, 4) = CDate(Veri(X, 4))
                            Liste(Satir, 5) = Veri(X, 11)
                            Liste(Satir, 6) = Veri(X, 9)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ3"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:K" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 6) = "00" Then
                        If Not Dizi_C.Exists(Veri(X, 10)) Then
                            Liste(Satir, 7) = CDate(Veri(X, 3))
                            Liste(Satir, 8) = Veri(X, 10)
                            Liste(Satir, 9) = Veri(X, 8)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ4"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:J" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 6) = "00" Then
                        If Not Dizi_C.Exists(Veri(X, 9)) Then
                            Liste(Satir, 10) = CDate(Veri(X, 3))
                            Liste(Satir, 11) = Veri(X, 9)
                            Liste(Satir, 12) = Veri(X, 7)
                            Satir = Satir + 1
                        End If
                    End If
                Next
            Case "VERİ5"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 2).End(3).Row
                Veri = Sayfa.Range("A2:J" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Not Dizi_B.Exists(Veri(X, 2) & "|" & Veri(X, 4) / 100) Then
                        Liste(Satir, 13) = CDate(Replace(Replace(Veri(X, 9), "Z", ""), "T", " "))
                        Liste(Satir, 14) = Veri(X, 2)
                        Liste(Satir, 15) = Veri(X, 4)
                        Satir = Satir + 1
                    End If
                Next
            Case "VERİ6"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 7).End(3).Row
                Veri = Sayfa.Range("A2:K" & Son).Value2
          
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Not Dizi_B.Exists(Veri(X, 7) & "|" & Veri(X, 4) / 100) Then
                        Liste(Satir, 16) = CDate(Replace(Replace(Veri(X, 10), "Z", ""), "T", " "))
                        Liste(Satir, 17) = Veri(X, 7)
                        Liste(Satir, 18) = Veri(X, 4)
                        Satir = Satir + 1
                    End If
                Next
        End Select
    Next
  
    S2.Range("A2").Resize(Satir, 18) = Liste
    S2.Range("A2:C" & S2.Rows.Count).Sort S2.Range("A2"), xlAscending
    S2.Range("D2:F" & S2.Rows.Count).Sort S2.Range("D2"), xlAscending
    S2.Range("G2:I" & S2.Rows.Count).Sort S2.Range("G2"), xlAscending
    S2.Range("J2:L" & S2.Rows.Count).Sort S2.Range("J2"), xlAscending
    S2.Range("M2:O" & S2.Rows.Count).Sort S2.Range("M2"), xlAscending
    S2.Range("P2:R" & S2.Rows.Count).Sort S2.Range("P2"), xlAscending

    S2.Columns.AutoFit
  
    Set S1 = Nothing
    Set S2 = Nothing
    Set Dizi_A = Nothing
    Set Dizi_B = Nothing
    Set Dizi_C = Nothing
  
    Application.Calculation = -4105
    Application.ScreenUpdating = 1
  
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
Hocam bir sorum vardı fakat biraz rahatsızdım bu nedenle ancak sorabiliyorum.
1. soru kod KONTROL sayfası 20. satır sonrasına yazmıyor bunu nasıl düzeltebilirim.
2. soru VERİ1 sayfası Veri(X, 11) değeri metinmiş sayıya çevir yapabililen bir kod ekleyebilir miyim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Öncelikle geçmiş olsun.

Son paylaştığınız dosyada KONTROL1 ve KONTROL2 sayfaları var.
Kodlarda bir kısıtlama yok. 20. satırdan sonra yazmaması için bir sebep yok.

2. sorunuza gelince. Sayıya çevirince verinin başındaki sıfır silinecektir. Bu sorun çıkarmaz derseniz aşağıdaki işlemi yapabilirsiniz.

Döngü içindeki Case "VERİ1" bloğundaki aşağıdaki satırı bir sonraki gibi değiştiriniz.

Eski hali ; Liste(Satir, 2) = Veri(X, 11)

Yeni hali ; Liste(Satir, 2) = CLng(Veri(X, 11))
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,553
Excel Vers. ve Dili
Pro Plus 2021
PowerQuery ile çözüm ektedir.

1. soru kod KONTROL sayfası 20. satır sonrasına yazmıyor bunu nasıl düzeltebilirim.
Korhan Beyin kodlarına ufak bir ekleme yaptım.
Kod:
Option Explicit
Sub Analiz()
    Dim S1 As Worksheet, S2 As Worksheet, Sayfa As Worksheet
    Dim Veri As Variant, Son As Long, X As Long, Satir As Long, MaxSatir As Long
    Dim Dizi_A As Object, Dizi_B As Object, Dizi_C As Object, Zaman As Double

    Zaman = Timer

    Application.ScreenUpdating = 0
    Application.Calculation = -4135

    Set S1 = Sheets("DATA")
    Set S2 = Sheets("KONTROL2")
    Set Dizi_A = CreateObject("Scripting.Dictionary")
    Set Dizi_B = CreateObject("Scripting.Dictionary")
    Set Dizi_C = CreateObject("Scripting.Dictionary")

    S2.Range("A2:R" & S2.Rows.Count).Clear
    S2.Range("B2:B" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("E2:E" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("H2:H" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("K2:K" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("N2:N" & S2.Rows.Count).NumberFormat = "@"
    S2.Range("Q2:Q" & S2.Rows.Count).NumberFormat = "@"

    Son = S1.Cells(S1.Rows.Count, 3).End(3).Row
    Veri = S1.Range("A2:E" & Son).Value2

    For X = LBound(Veri, 1) To UBound(Veri, 1)
        Dizi_A.Item(Veri(X, 3) & "|" & Veri(X, 4)) = Array(Veri(X, 1), Veri(X, 4))
        Dizi_B.Item(Veri(X, 3) & "|" & Veri(X, 5)) = Array(Veri(X, 1), Veri(X, 4), Veri(X, 5))
        Dizi_C.Item(Veri(X, 4)) = Array(Veri(X, 1), Veri(X, 4), Veri(X, 5))
    Next

    ReDim Liste(1 To S1.Rows.Count, 1 To 18)

    For Each Sayfa In Sheets(Array("VERİ1", "VERİ2", "VERİ3", "VERİ4", "VERİ5", "VERİ6"))
        Select Case Sayfa.Name
            Case "VERİ1"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:L" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 7) = "00" Then
                        If Not Dizi_A.Exists(Veri(X, 3) & "|" & Veri(X, 11)) Then
                            Liste(Satir, 1) = CDate(Veri(X, 4))
                            Liste(Satir, 2) = Veri(X, 11)
                            Liste(Satir, 3) = Veri(X, 9)
                            Satir = Satir + 1
                        End If
                    End If
                Next
                MaxSatir = Satir
            Case "VERİ2"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:L" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 7) = "00" Then
                        If Not Dizi_A.Exists(Veri(X, 3) & "|" & Veri(X, 11)) Then
                            Liste(Satir, 4) = CDate(Veri(X, 4))
                            Liste(Satir, 5) = Veri(X, 11)
                            Liste(Satir, 6) = Veri(X, 9)
                            Satir = Satir + 1
                        End If
                    End If
                Next
                If Satir > MaxSatir Then MaxSatir = Satir
            Case "VERİ3"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:K" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 6) = "00" Then
                        If Not Dizi_C.Exists(Veri(X, 10)) Then
                            Liste(Satir, 7) = CDate(Veri(X, 3))
                            Liste(Satir, 8) = Veri(X, 10)
                            Liste(Satir, 9) = Veri(X, 8)
                            Satir = Satir + 1
                        End If
                    End If
                Next
                If Satir > MaxSatir Then MaxSatir = Satir
            Case "VERİ4"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 3).End(3).Row
                Veri = Sayfa.Range("A2:J" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Veri(X, 6) = "00" Then
                        If Not Dizi_C.Exists(Veri(X, 9)) Then
                            Liste(Satir, 10) = CDate(Veri(X, 3))
                            Liste(Satir, 11) = Veri(X, 9)
                            Liste(Satir, 12) = Veri(X, 7)
                            Satir = Satir + 1
                        End If
                    End If
                Next
                If Satir > MaxSatir Then MaxSatir = Satir
            Case "VERİ5"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 2).End(3).Row
                Veri = Sayfa.Range("A2:J" & Son).Value2
                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Not Dizi_B.Exists(Veri(X, 2) & "|" & Veri(X, 4) / 100) Then
                        Liste(Satir, 13) = CDate(Replace(Replace(Veri(X, 9), "Z", ""), "T", " "))
                        Liste(Satir, 14) = Veri(X, 2)
                        Liste(Satir, 15) = Veri(X, 4)
                        Satir = Satir + 1
                    End If
                Next
                If Satir > MaxSatir Then MaxSatir = Satir
            Case "VERİ6"
                Satir = 1
                Son = Sayfa.Cells(Sayfa.Rows.Count, 7).End(3).Row
                Veri = Sayfa.Range("A2:K" & Son).Value2

                For X = LBound(Veri, 1) To UBound(Veri, 1)
                    If Not Dizi_B.Exists(Veri(X, 7) & "|" & Veri(X, 4) / 100) Then
                        Liste(Satir, 16) = CDate(Replace(Replace(Veri(X, 10), "Z", ""), "T", " "))
                        Liste(Satir, 17) = Veri(X, 7)
                        Liste(Satir, 18) = Veri(X, 4)
                        Satir = Satir + 1
                    End If
                Next
        End Select
    Next
    If Satir > MaxSatir Then MaxSatir = Satir
    S2.Range("A2").Resize(MaxSatir, 18) = Liste
    S2.Range("A2:C" & S2.Rows.Count).Sort S2.Range("A2"), xlAscending
    S2.Range("D2:F" & S2.Rows.Count).Sort S2.Range("D2"), xlAscending
    S2.Range("G2:I" & S2.Rows.Count).Sort S2.Range("G2"), xlAscending
    S2.Range("J2:L" & S2.Rows.Count).Sort S2.Range("J2"), xlAscending
    S2.Range("M2:O" & S2.Rows.Count).Sort S2.Range("M2"), xlAscending
    S2.Range("P2:R" & S2.Rows.Count).Sort S2.Range("P2"), xlAscending

    S2.Columns.AutoFit

    Set S1 = Nothing
    Set S2 = Nothing
    Set Dizi_A = Nothing
    Set Dizi_B = Nothing
    Set Dizi_C = Nothing

    Application.Calculation = -4105
    Application.ScreenUpdating = 1

    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 

Ekli dosyalar

Üst