• DİKKAT

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

Veri Yenileme Satır Satır Farklı Olanları Renklendirme

  • Konbuyu başlatan Konbuyu başlatan mukoli
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Merhaba Aşagıdaki kod sayfa1 den hücreleri kopyalıyor fakat eşit olmayanları sayfa1de renklendirme yapmıyor . yardımcı olabilirmsiniz . Yada daha iyi çözümü olan varsada olur sql gelen bilgide farklılık olmuşmu diye kontrol etmek istiyorum
Kod:
Sub DegisiklikKontrol()
Dim s1 As Worksheet, s2 As Worksheet
Dim son As Long

Set s1 = ThisWorkbook.Sheets("Sayfa1")
Set s2 = ThisWorkbook.Sheets("Gecici")
s2.Cells.Clear

son = s1.Range("A" & Rows.Count).End(3).Row
s1.Range("A1:C" & son).Copy s2.Cells(1, 1)

Call Yenile

For x = 1 To son
    For y = 1 To 3
        If s1.Cells(x, y) <> s2.Cells(x, y) Then
            s1.Cells(x, y).Interior.Color = vbRed
        End If
    Next y
Next x

End Sub
 
Merhaba.
Örnek dosyanızı ekleyin kontrol edelim ama kodlara bakılırsa bir sorun görünmüyor.
 
Merhaba hocam dosyayı ekledim. Verileri yenile yaptıgımda c sutunundaki tutarlarda farklılık oldugunda renk olması lazım.Teşekkür ederim
 

Ekli dosyalar

Eklediğiniz dosyada kod yok, neyi nasıl kontrol edeceğiz?
Dosyanızda var olan hiçbir kodu silmemelisiniz.
 
Merhaba zaten dosyada kod yok hocam . Dışveri al ile sqlden bilgi almaktayım . Butona activeworkbook.refreshall ile yenile yapıyorum. Kodlar da üste zaten o kod dediğim gibi farkları yenile yapmıyordu
 
Ben bu hali ile nasıl karşılaştırma yapacağım?
Kodda bir sorun yok. Eğer hücreler arasında bir farklılık olsa Sayfa1 de mutlaka hücreyi kırmızı yapar.
Demek ki sqlden gelen veri aynı, farklı değil.
 
Hocam önce sayfa1 deki leri kopyalayıp gecici sayfasına yapıstırıyor ondan sonra fark varmı hücrede kontrol edemiyor kendiniz deneyebiliryisiz ben size sql kodlarımı veriyim ne istiyorsunuz benden peki
 
Kodları çalıştırdığımda Call Yenile kodları olmadığı için hata veriyor.
Bu satırı silip kodları çalıştırmanın da bir mantığı yok. Çünkü kopyaladığı şeyin aynısını kontrol ediyor ve zaten aynı veriler olduğu için hiçbir hücre kırmızıya boyanmıyor.
 
Manuel hücre değiştirin hocam sanki sqlden değişmiş gibi yaparsınız call yenile sildinix zaten c sütunundaki herhangi hücrenin tutarını değiştirn renk yine değişmesi lazım değilmi sorun orda çalışmıyor for kısmı
 
O zaman kodların nasıl çalıştığını izah etmeliyim.
Manuel değişiklik yapsanız da Gecici sayfasını kodlar sildiği için bir işe yaramıyor.

Aşağıdaki kodları bir kod sayfasına kopyalayın, yeşil renkli açıklamaları okuyun.

Kod:
Sub DegisiklikKontrol()
Dim s1 As Worksheet, s2 As Worksheet
Dim son As Long
Set s1 = ThisWorkbook.Sheets("Sayfa1")
Set s2 = ThisWorkbook.Sheets("Gecici")
s2.Cells.Clear 'Gecici adlı sayfayı sil. Manuel değişiklik yapmak hiçbir şey ifade etmiyor çünkü burada Gecici sayfası siliniyor.
son = s1.Range("A" & Rows.Count).End(3).Row
s1.Range("A1:C" & son).Copy s2.Cells(1, 1) ' Sayfa1 A:C sütunlarını Gecici sayfasına kopyala.
'Buradan sonra Sayfa1 ile Gecici sayfaları aynı.
Call Yenile 'Burada Yenile adlı bir prosedüre(makro-kod) çalıştırılıyor. İçeriğini bilmediğim için açıklama yapamıyorum.
'Sayfa1 ile Gecici de var olan veriler zaten aynı olduğu için aşağıdaki kontrolde herhangi bir işlem yapılmıyor.
For x = 1 To son
    For y = 1 To 3
        If s1.Cells(x, y) <> s2.Cells(x, y) Then
            s1.Cells(x, y).Interior.Color = vbRed
        End If
    Next y
Next x
End Sub

Sanırım sorun kodların ne yaptığını bilmemenizden kaynaklanıyor.

Yenile adlı kodları bilseydim yada orijinal dosyanızı gönderseydiniz konu bu kadar uzamaz daha hızlı cevap bulabilirdiniz.
Umarım şimdi anlaşılmış ve sorun çözülmüştür.
 
Merhaba hocam öncelikle sabrınız için teşekkür ederim. Sqlden veri çektiğimde hızlı veri aktarımı oldugu için dediğiniz gibi değişikliği algılamıyor . Arkaplan yenilemesini tikini kaldırıp denedim. Sıkıntısız şekilde renklendirme yaptı. Teşekkür ederim tekrardan
 
Kolay gelsin. Güzel çalışmalar.
 
Geri
Üst