• DİKKAT

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

Çoklu Satır ve Sütun silme

Katılım
24 Temmuz 2019
Mesajlar
8
Excel Vers. ve Dili
Excell 2016
İyi günler. Çalışma kitabından içinde verilerin de olduğu ilk sekiz satırı ve A,C,E sütunlarını silmek için nasıl bir koda yazabiliriz yardımcı olabilirmisiniz.

Teşekkürler.
 
Merhaba.

Kod:
Sub test()
    Rows("1:8").Delete 'Satır siler
    Columns(5).Delete 'Sutün siler
    Columns(3).Delete
    Columns(1).Delete
End Sub
 
Deneyiniz:
PHP:
Sub coz()
    Cells.UnMerge
    Columns("H:H").Cut: Columns("A:A").Insert Shift:=xlToRight
End Sub
 
İyi akşamlar,
Yeni bir başlık açmak yerine sorumu bu başlık altında sormanın uygun olacağını düşündüm.
Bol sütunlu bir sayfam var. A sütunundan Ac sütununa kadar
1 satırda başlıklar var örnek olması açısından
1'inci satırdaki Adı, soyadı, emekli sandığı numarası, T.C ve iban numarası başlıklı sütunları haricindeki sütunların tamamını makro ile silmek ve

T.C., emekli sandığı, iban numarası, adı , soyadı şeklinde sıralayabilir miyiz.
Teşekkürler.
 
Deneyiniz.

C++:
Option Explicit

Sub Sutunlari_Duzenle()
    Dim X As Integer, Silinmeyecek_Sutunlar As Variant, Bul As Variant
    
    Silinmeyecek_Sutunlar = Array("T.C.", "Emekli Sandığı", "İban Numarası", "Adı", "Soyadı")
    
    On Error Resume Next
    
    For X = Cells(1, Columns.Count).End(1).Column To 1 Step -1
        Bul = 0
        Bul = WorksheetFunction.Match(Cells(1, X), Silinmeyecek_Sutunlar, 0)
        If Bul = 0 Then
            Columns(X).Delete
        End If
    Next

    For X = LBound(Silinmeyecek_Sutunlar) To UBound(Silinmeyecek_Sutunlar)
        Bul = 0
        Bul = WorksheetFunction.Match(Silinmeyecek_Sutunlar(X), Rows(1), 0)
        If Bul <> 0 Then
            Columns(Bul).Cut
            Columns(X + 1).Insert xlRight
        End If
    Next
    
    Columns.AutoFit
    
    Application.CutCopyMode = False
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Korhan Bey,Çok Teşekkürler emeğinize sağlık.
 
Herkese iyi günler dilerim,
" Silme " konusu olduğu için başka bir başlık açmak istemedim, hatalı davrandıysam şimdiden özür dilerim.
Eklediğim dosya bir ay için (31 gün) hazırlanmış, örnek dosya 10 günlüktür. Her ay; D9-BK9 /D18-BK18 hücre aralığı, D26-BK26/D129-BK129 hücre aralığı, BS9-DZ9/BS18-DZ18 hücre aralığı, BS26-DZ26/BS144-DZ144 hücre aralığı, ED9-GK9/ED18-GK18 hücre aralığı, ED26-GK26/ED85-GK85 hücre aralığı silinmesi gerekiyor, ayrıca D19-GK19 /D25-GK25 aralığında ve B-BQ-EB-BL-BM-BN-BO sütunları formül içeren verileri silmeyecek makroya ihtiyacım var. Bu çalışma bir ay yapılıp dijital olarak arşivleniyor. Aynı dosyada ay bilgileri değiştirilerek 12 ay sürekli kullanılıyor. Ay bittiğinde 30 ya da 31 günlük çalışmada bahsettiğim hücre aralıkları silinip takip eden ay kullanılıyor. Sil butonu ile bahsettiğim hücre aralıklarını silecek bir kod konusunda yardımcı olabilir misiniz.
Excelweb.tr'den istifade ederek

Sub Düğme1_Tıklat()
Dim hcr As Range
For Each hcr In Range("D9:BK9:D18:BK18:D26:BK26:D129:BK129")
If IsNumeric(hcr.Value) And hcr.Value > 0 Then hcr.ClearContents
Next
End Sub

aşağıda linki yer alan dosyada sadece ilk kısım için bir çalışma yaptım fakat 19-25 aralığındaki satırlarda olan veriyi de siliyor. Yardımcı olabilirseniz sevinirim. excel.web.tr katılımcılarına ve herkese sağlıklı günler dilerim.

İlginiz için şimdiden teşekkür ederim.

Dosya Linki: https://dosya.co/vkw8t9lqqske/taslak___EYLÜL_2020_GÜNLÜK_PUANTAJ_RAPORU.XLSX.html
 
Herkese iyi günler dilerim,
" Silme " konusu olduğu için başka bir başlık açmak istemedim, hatalı davrandıysam şimdiden özür dilerim.
Eklediğim dosya bir ay için (31 gün) hazırlanmış, örnek dosya 10 günlüktür. Her ay; örnek dosyada sarı zemin olan hücreler (D9-BK9 /D18-BK18 hücre aralığı, D26-BK26/D129-BK129 hücre aralığı, BS9-DZ9/BS18-DZ18 hücre aralığı, BS26-DZ26/BS144-DZ144 hücre aralığı, ED9-GK9/ED18-GK18 hücre aralığı, ED26-GK26/ED85-GK85 hücre aralığı) silinmesi gerekiyor, ayrıca D19-GK19 /D25-GK25 aralığında ve B-BQ-EB-BL-BM-BN-BO sütunları formül içeren verileri silmeyecek makroya ihtiyacım var. Bu çalışma bir ay yapılıp dijital olarak arşivleniyor. Aynı dosyada ay bilgileri değiştirilerek 12 ay sürekli kullanılıyor. Ay bittiğinde 30 ya da 31 günlük çalışmada bahsettiğim hücre aralıkları silinip takip eden ay kullanılıyor. Sil butonu ile bahsettiğim hücre aralıklarını silecek bir kod konusunda yardımcı olabilir misiniz.
Excelweb.tr'den istifade ederek

Sub Düğme1_Tıklat()
Dim hcr As Range
For Each hcr In Range("D9:BK9:18:BK18:26:BK26:129:BK129")
If IsNumeric(hcr.Value) And hcr.Value > 0 Then hcr.ClearContents
Next
End Sub

aşağıda linki yer alan dosyada sadece ilk kısım için bir çalışma yaptım fakat 19-25 aralığındaki satırlarda olan veriyi de siliyor. Yardımcı olabilirseniz sevinirim. excel.web.tr katılımcılarına ve herkese sağlıklı günler dilerim.

İlginiz için şimdiden teşekkür ederim.

Dosya Linki:
 
Merhaba,

Döngü yerine aşağıdaki yöntemi kullanın daha hızlı sonuç verir.

C++:
Sub Düğme1_Tıklat()
    Range("D9:BK18").ClearContents
    Range("BS9:DZ18").ClearContents
    Range("ED9:GK18").ClearContents
    Range("D26:BK129").ClearContents
    Range("BS26:DZ144").ClearContents
    Range("ED26:GK85").ClearContents
End Sub
 
Korhan Ayhan bey merhaba,
Öncelikle yardımınız için çok çok teşekkür ederim. Yazdığınız kod çok iyi çalıştı. Emeğinize zihninize sağlık. Makro için webden özellikle excel.web.tr'den oldukça istifade ediyor ve tabiri caizse derleme yapmaya çalışıyorum.
Tekrar teşekkür ediyor size ve tüm katılımcılara sağlıklı günler diliyorum.
 
Merhaba,

Döngü yerine aşağıdaki yöntemi kullanın daha hızlı sonuç verir.

C++:
Sub Düğme1_Tıklat()
    Range("D9:BK18").ClearContents
    Range("BS9:DZ18").ClearContents
    Range("ED9:GK18").ClearContents
    Range("D26:BK129").ClearContents
    Range("BS26:DZ144").ClearContents
    Range("ED26:GK85").ClearContents
End Sub

Korhan Ayhan hocam iyi günler,
Yeniden teşekkür ederim. Yazdığınız kodu uyguladım sonra kazara silinmeler için bir uyarı mesajı versin istedim, sizin yazdığınız kodun başına "MsgBox "Verileri silmek istediğinizden eminmisiniz?" diye ilave ettim. Gelen uyarı mesajına "Tamam" dedikten sonra siliyor, uyarıyı cevaplamazsan silmiyor. Belki faydalı olur diye paylaştım.
Excel.web.tr ailesine ve tüm katılımcılara sağlıklı günler dilerim.
 
İyi günler,

Evet silme işlemleri riskli olduğu için uyarı eklemek faydalı olabilir. İyi düşünmüşsünüz.

Paylaştığınız için teşekkürler.
 
İyi günler,

Evet silme işlemleri riskli olduğu için uyarı eklemek faydalı olabilir. İyi düşünmüşsünüz.

Paylaştığınız için teşekkürler.


Merhabalar benimde satır silme ile alakalı bir sıkıntım mevcut o yüzden direk buraya yazayım dedim :

elimde bulunan dosyamda S , AK, AL sütunları hariç diğer tüm sutunların ve altında bulunan verilerin tamamının silinmesi bu üç sutunun en başa yani A, B, C olarak yazılması ve daha sonrasında B sütunun ve C sütununun içindeki verilerin yer değiştirmesi gerekmektedir yardımcı olabilecek olan varmı ?
 
Bu işlem için makro kaydet yöntemini denediniz mi? Makro kaydetmeyi çalıştırın ve belirttiğiniz işlemleri aynı sırayla yapıp makro kaydetmeyi durdurun. İstediğiniz makro excel tarafından oluşturulacaktır.
 
Bu işlem için makro kaydet yöntemini denediniz mi? Makro kaydetmeyi çalıştırın ve belirttiğiniz işlemleri aynı sırayla yapıp makro kaydetmeyi durdurun. İstediğiniz makro excel tarafından oluşturulacaktır.





Merhabalar Yusuf bey ;

Dosyada Visual Basic bölümüne bakarsanız göreceksiniz dediğiniz gibi makro kaydet bölümü ile makro kaydettim ve daha sonrasında altına yaptırmak istediğim bir for döngüsü koydum ancak sıkıntı şu ki makroyu başlattığım anda bütün excel sayfaları donuyor hiçbir sayfaya tıklayamıyorum ? Bunun çözümü nedir acaba ?
 
For döngüsünde satır silme varsa geriye doğru işlem yapmak daha doğru olur. Aşağıdaki gibi sadeleştirip düzenledim, sıkıntı olmadan çalışıyor:

PHP:
Sub genel()
    Application.ScreenUpdating = False
        Columns("A:R").Delete Shift:=xlToLeft
        Columns("B:R").Delete Shift:=xlToLeft
        Columns("D:AK").Delete Shift:=xlToLeft
        Columns("A:C").EntireColumn.AutoFit
        Range("D1") = "Marka"
        Range("D1").AutoFilter
            
        Columns("C:C").Cut: [B1].Insert Shift:=xlToRight
        Application.CutCopyMode = False
        
        sonA = Cells(Rows.Count, "A").End(3).Row
        For i = sonA To 2 Step -1
            If Cells(i, "B").Value = 0 Then
                Rows(i).Delete
            End If
        Next i
        ActiveWorkbook.Save
    Application.ScreenUpdating = True
    MsgBox "İşlem Tamamlandı", vbInformation
End Sub
 
For döngüsünde satır silme varsa geriye doğru işlem yapmak daha doğru olur. Aşağıdaki gibi sadeleştirip düzenledim, sıkıntı olmadan çalışıyor:

PHP:
Sub genel()
    Application.ScreenUpdating = False
        Columns("A:R").Delete Shift:=xlToLeft
        Columns("B:R").Delete Shift:=xlToLeft
        Columns("D:AK").Delete Shift:=xlToLeft
        Columns("A:C").EntireColumn.AutoFit
        Range("D1") = "Marka"
        Range("D1").AutoFilter
          
        Columns("C:C").Cut: [B1].Insert Shift:=xlToRight
        Application.CutCopyMode = False
      
        sonA = Cells(Rows.Count, "A").End(3).Row
        For i = sonA To 2 Step -1
            If Cells(i, "B").Value = 0 Then
                Rows(i).Delete
            End If
        Next i
        ActiveWorkbook.Save
    Application.ScreenUpdating = True
    MsgBox "İşlem Tamamlandı", vbInformation
End Sub


Teşekkürler güzel çalışıyor.
Şöyle bir şey mümkün müdür acaba anlatıyorum:

Elimde A1 hücresinden BS753 hücresine kadar bağzı hücreleri dolu bağzı hücreleri boş olmak üzere sayda adı Veri olan bir tablo mevcut üstteki kod gereksiz verileri sildikten sonra benim istediğim 3 veri sütununu bırakıyor ya ben makroyu çalıştırdığımda bu 3 sütun bir yan sayfada Sonuc adındaki sayfada gözükse ?


Yani kodu veri sayfasındaki verilere göre işleyic kalan 3 sütunu Sonuc sayfasına yazacak
 
Geri
Üst