Kapalı Dosyalarda Veri ve Sütun Silmek

Katılım
20 Ekim 2021
Mesajlar
104
Excel Vers. ve Dili
TR 2016
Altın Üyelik Bitiş Tarihi
21-10-2022
Değerli arkadaşlar AÇIK kitap isimli sayfamın "A" sütununa yazdığım TC kimlik numaralarını kapalı olan çalışma kitaplarında bulup TC kimlik numaralarının bulunduğu satırları komple silmek istiyorum. Yine Aynı zamanda bu işlemi yaparken Kapalı dosyalardaki G,H,I,J,K,L,M,N,Q,R,V sütunlarınıda silsin istiyorum. Kapalı olan çalışma kitapları aynı formatta bulunmaktadır. Kapalı olan çalışma kitabı sayım yaklaşık 50 adettir. Saygılarımla
 

Ekli dosyalar

Korhan Ayhan

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

C++:
Option Explicit

Sub Test()
    Dim K1 As Workbook, S1 As Worksheet
    Dim File_Path As String, My_File As String
    Dim K2 As Workbook, S2 As Worksheet
    Dim TC_No As Range, My_Data As Variant
    Dim X As Long, Last_Row As Long, Record_Count As Long
    
    Application.ScreenUpdating = False
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("Sayfa1")
    
    File_Path = K1.Path
    
    My_File = Dir(File_Path & "\*.xls*")
    
    While My_File <> ""
        If My_File <> K1.Name Then
            Set K2 = Workbooks.Open(File_Path & "\" & My_File)
            Set S2 = K2.Sheets(1)
            
            S2.Range("G:N,Q:R,V:V").EntireColumn.Delete
            
            Last_Row = WorksheetFunction.Max(3, S1.Cells(S1.Rows.Count, 1).End(3).Row)
            My_Data = S1.Range("A2:A" & Last_Row).Value
            
            For X = LBound(My_Data, 1) To UBound(My_Data, 1)
                If My_Data(X, 1) <> "" Then
                    Set TC_No = S2.Range("B:B").Find(My_Data(X, 1), , , xlWhole)
                    If Not TC_No Is Nothing Then
                        TC_No.EntireRow.Delete
                        Record_Count = Record_Count + 1
                    End If
                End If
            Next
            
            K2.Close True
        End If
        My_File = Dir
    Wend
    
    Set TC_No = Nothing
    Set K1 = Nothing
    Set S1 = Nothing
    Set K2 = Nothing
    Set S2 = Nothing
    
    Application.ScreenUpdating = True
    
    MsgBox Record_Count & " adet kayıt silinmiştir.", vbInformation
End Sub
 
Katılım
20 Ekim 2021
Mesajlar
104
Excel Vers. ve Dili
TR 2016
Altın Üyelik Bitiş Tarihi
21-10-2022
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim K1 As Workbook, S1 As Worksheet
    Dim File_Path As String, My_File As String
    Dim K2 As Workbook, S2 As Worksheet
    Dim TC_No As Range, My_Data As Variant
    Dim X As Long, Last_Row As Long, Record_Count As Long
   
    Application.ScreenUpdating = False
   
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("Sayfa1")
   
    File_Path = K1.Path
   
    My_File = Dir(File_Path & "\*.xls*")
   
    While My_File <> ""
        If My_File <> K1.Name Then
            Set K2 = Workbooks.Open(File_Path & "\" & My_File)
            Set S2 = K2.Sheets(1)
           
            S2.Range("G:N,Q:R,V:V").EntireColumn.Delete
           
            Last_Row = WorksheetFunction.Max(3, S1.Cells(S1.Rows.Count, 1).End(3).Row)
            My_Data = S1.Range("A2:A" & Last_Row).Value
           
            For X = LBound(My_Data, 1) To UBound(My_Data, 1)
                If My_Data(X, 1) <> "" Then
                    Set TC_No = S2.Range("B:B").Find(My_Data(X, 1), , , xlWhole)
                    If Not TC_No Is Nothing Then
                        TC_No.EntireRow.Delete
                        Record_Count = Record_Count + 1
                    End If
                End If
            Next
           
            K2.Close True
        End If
        My_File = Dir
    Wend
   
    Set TC_No = Nothing
    Set K1 = Nothing
    Set S1 = Nothing
    Set K2 = Nothing
    Set S2 = Nothing
   
    Application.ScreenUpdating = True
   
    MsgBox Record_Count & " adet kayıt silinmiştir.", vbInformation
End Sub
Korhan Bey "A" sütununa 60 TC kimlik numarası yazıp 3000 satırlık bir data üzerinde denedim. Bu satırı
S2.Range("G:N,Q:R,V:V").EntireColumn.Delete
bu şekilde S2.Range("G:H,I:J,K:L,M:N,Q:R,V").EntireColumn.Delete düzenledim. Ancak görselini paylaştığım hatayı alıyorum.
 

Ekli dosyalar

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Niye düzenleme ihtiyacını duydunuz ki?

Korhan Beyin önerisindeki sütunlar zaten sizin tarif etmeye çalıştığınız sütunları kapsıyor... Eksiği ya da fazlası yok.

Sizinkinde hata, sanırım en sonda V:V kısmını eksik yazmanızdan kaynaklanıyor.

.
 
Katılım
20 Ekim 2021
Mesajlar
104
Excel Vers. ve Dili
TR 2016
Altın Üyelik Bitiş Tarihi
21-10-2022
Niye düzenleme ihtiyacını duydunuz ki?

Korhan Beyin önerisindeki sütunlar zaten sizin tarif etmeye çalıştığınız sütunları kapsıyor... Eksiği ya da fazlası yok.

Sizinkinde hata, sanırım en sonda V:V kısmını eksik yazmanızdan kaynaklanıyor.

.
Haluk bey onuda denedim görüntüsünü paylaştığım hatayı veriyor
 

Ekli dosyalar

Katılım
20 Ekim 2021
Mesajlar
104
Excel Vers. ve Dili
TR 2016
Altın Üyelik Bitiş Tarihi
21-10-2022
Açık kitabın A sütununa 60 TC kimlik numarası yazıp 20 kapalı dosyada (kapalı dosyadaki veri sayıları ortalama 80 satır) denedim sorunsuz çalıştı. Ancak bu kapalı dosyalardan bir tanesindeki veri sayısını 3000 satır yapınca yukarıda belirttiğim hatayı verdi.
 

Korhan Ayhan

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

Şimdi paylaştığınız dosyalardan birinde satır adedini 4.000 adede kadar çoğalttım. Önerdiğim kodu denedim ben hiçbir hata ile karşılaşmadım.

Sizin asıl dosyalarınızda belki bilmediğimiz farklı bir durum olabilir.
 
Katılım
20 Ekim 2021
Mesajlar
104
Excel Vers. ve Dili
TR 2016
Altın Üyelik Bitiş Tarihi
21-10-2022
Merhaba,

Şimdi paylaştığınız dosyalardan birinde satır adedini 4.000 adede kadar çoğalttım. Önerdiğim kodu denedim ben hiçbir hata ile karşılaşmadım.

Sizin asıl dosyalarınızda belki bilmediğimiz farklı bir durum olabilir.
Sorunu çözemedim ama şuan için işimi fazlasıyla gördü teşekkürler Korhan bey
 
Üst