• DİKKAT

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

Kapalı Dosyadan Veri Karşılaştırma ve Sonuç Yazdırma

Katılım
28 Haziran 2007
Mesajlar
246
Excel Vers. ve Dili
Excel 2003 Tr
Arkadaslar merhabalar

Aynı klasörde bulunan Kontrol ve Kodliste isminde iki dosyam var. Yapmak istediğim Kontrol dosyasındaki Sayfa1 A sutununda bulunan vergi numaralarını/ya da tc kimlik nolarını Kapalı Kodliste dosyasının tüm sayfalarında D ve E sutunlarında arayıp aynı numaraları bulması durumunda o numaranın karşısına kontrol dosyasındaki sayfa adını yazdırmak. Birden fazla sayfada bulunması durumunda isimlerin yanyana yazdırılması gerekiyor

Olayın arka planını da şöyle anlatmak isterim. Biliyorsunuz ülkemizde maalesef sahte fatura kullanımı oldukça yaygın. Maliye sahte belge kullanan ya da kullanandan belge alan mükellefleri belirli aralıklarla yayınlamakta. Örneğin Ahmet arkadaş Mehmet arkadaştan sahte fatura aldı. Ben de gidip Ahmet arkadaştan alışveriş yapıp belge alırsam sahte belge kullanmış sayılıyorum. Meslek icabı mükelleflerimi böyle durumlardan korumak ve bilgilenmek amacıyla böyle bir çalışmaya ihtiyaç duydum.

Maliyenin yayınladığı liste kontrol dosyamdaki başlıklara göre olmakla beraber bazı sayfalar da sutunların yeri değişiyor. Zaten aramanın D ve E'de yapılması gerekiyor dememin de sebebi budur. Listede sahte belge kullananın vergi nosu
sayfaların çoğunluğunda D sutununda olmasına rağmen 2-3 sayfada E sutununda kullanılmış.

Bu konuda yardımlarınızı rica ediyorum. İyi çalışmalar dilerim.
 

Ekli dosyalar

Teşekkür ediyorum sayın omerceri

istediğim sonucu almakla beraber işlem çok uzun sürüyor bunun için herhangi bir şey yapılabilir mi acaba?
 
Sizin PC biraz yavaş herhalde bende çok hızlı ama Aşağıdaki kodlarla bir deneyin.
Sub a()
Columns("B:B").Clear
say0 = Range("A1").CurrentRegion.Rows.Count
Workbooks.Open (ThisWorkbook.Path & "/Kodliste.xls")
say = ActiveWorkbook.Sheets.Count
For e = 2 To say0
For i = 1 To say
With Worksheets(i).Columns("D:E")
Set c = .Find(Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("A" & e), LookIn:=xlValues)
If Not c Is Nothing Then

Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("B" & e).Value = Trim(Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("B" & e) & " " & Worksheets(i).Name)

End If
End With
Next
Next
ActiveWorkbook.Close
End Sub
 
Merhaba,
Sn omerceri örnek1 dosyanız bence de hızlı çalışıyor, (10.000 satır için deneme yaptım) ancak A sütununda boş satır bulunması halinde boş satırdan sonrakileri sorgulamıyor.
İkinci çalışmada Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("B " & e).Value = Trim(Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("B" & e) & " " & Worksheets(i).Name)
satırında hata veriyor.
 
Son düzenleme:
Yeni kodlar aşağıda Boş satırdan sonrakileride işleme dahil ediyor.
Sub a()
Columns("B:B").Clear
say0 = [A65536].End(3).Row
Workbooks.Open (ThisWorkbook.Path & "/Kodliste.xls")
say = ActiveWorkbook.Sheets.Count
For e = 2 To say0
For i = 1 To say
If Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("A" & e) <> "" Then
With Worksheets(i).Columns("D:E")

Set c = .Find(Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("A" & e), LookIn:=xlValues)

If Not c Is Nothing Then

Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("B" & e).Value = Trim(Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("B" & e) & " " & Worksheets(i).Name)
End If

End With
End If
Next
Next
ActiveWorkbook.Close
End Sub
 
Merhabalar ilginiz için teşekkür. Ancak yanıtlama fırsatı bulabildim. Son yazdığınız kodların

If Workbooks("Kontrol.xls").Sheets("Sayfa1").Range("A " & e) <> "" Then

satırında application -defined or object-defined error hatası alıyorum.
 
Dosyalar aynı klasörde değil mi?
Ben Bir örnek daha gönderiyorum Bende hata vemiyor.
 

Ekli dosyalar

Bu çalışmada kod listesi dosyasının içerisinde belirttiğiniz E ve D ye bakılması özelliğinden farklı olarak herhangi bir hücrede ilgili vergi numarası var ise de o sayfa kontrol dosyasında belirtiliyor.

Özetle şirketin telefonu olmaz ama başka bir yerin vergi numarası ile aynı ise çakışma olarak gözükecektir.

Burada sadece E ve D sütunlarına bakılması sağlanabilir mi?
 
Geri
Üst