Hücre silme

Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Herkese İyi geceler,
Bir sayfa içerisinde tablolarımız var.
Tabloların içerisindeki hücrelerin bazılarında metin,bazılarında formül bazılarında rakam var.
Makro ile sadece rakam girilen hücrelerin silinmesini yapabilirmiyiz.
bu şekilde yapmaya çalıştım ancak dosyadaki silinecek hücrelerin sayısı çok olduğundan başarılı olamadım.
Range("b1:C4,g1:H3,B8:D41,F8:G41,L8:L41,M8:M27,B43:D51").Select
Selection.ClearContents

End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub Makro1()
    Range("B1:M51").SpecialCells(xlCellTypeConstants, 1).ClearContents
End Sub
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Sayın Veyselemre,
İlginiz için teşekkür ederim.
Soruyu şöylede sorabilirim:
A1:AA1200
arasında ki hücrelerde metin var, formüller var (örnek: B12=b10+b11) gibi birde rakam olarak girilen hücreler var.
Silme işlemini yaptığımız zaman metin ve formül girilmiş hücreler silinmiyecek yanlız rakam girilmiş olan hücreler silinsin.
Bu arada sütun çizgileri yüseklik ve genişlikleri aynı kalacak.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Veysel Hocam,
Teşekkürler
İyi çalışmalar
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Veysel Hocam,
verilen aralıkta
Kod:
SpecialCells(xlCellTypeConstants, 1)
satırında
1 ise rakamlar siliniyor, diğerleri kalıyor
2 ise metinler siliniyor, diğerleri kalıyor
3 ise rakamlar ve metinler siliniyor, fonksiyonla işlenmiş hücreler kalıyor
Kod:
ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas).ClearContents
Bu da fonksiyonla işlenmiş hücreleri temizliyor.
Tekrar ilginize teşekkür ederim
Saygılarımla
 
Son düzenleme:
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Sayın Tevfik_Kursun,
sayfa içerisinde (A1:AA1200) arasında yazılan değerler silinsin metin ve formülle oluşan değerleri kapsayan hücreler silinmesin.
sizin verdiğiniz kod ile sonuç alamadım.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
XlSpecialCellsValue constants 
******************* *********
xlErrors               16
xlLogical               4
xlNumbers               1
xlTextValues            2
Özel hücre seçimlerinde xlCellTypeConstants ve xlCellTypeFormulas birlikte alt veri tipi olarak yukarıdaki alt parametreler de kullanılıyor.
Bahsettiğiniz
1 rakamı : xlNumbers ın enum karşılığı;
2 rakamı : xlTextValues ın enum karşılığı;
3 rakamı : xlNumbers + xlTextValues ın enum karşılığı (1+2)
4 rakamı : xlLogical karşılığı..

Burda istediğiniz parametrelerin enum değerlerini toplayarak toplu alt özellik seçimi yapabilirsiniz.
Alt parametreyi kullanmadığınız zaman, hepsinin toplamı olan (1+2+4+16)=23 olarak işlem yapmaktadır.
Yani siz hatalı ve metin olan hücreleri seçmek istiyorsanız (16+2)=18 yazmanız gerekir.
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Sayın Veyselemre ,
Sayın Tevfik_Kursun,
Her ikinizin verdiğiniz cevaplarla benim sorumun cözümü değil.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Sayın Veyselemre ,
Sayın Tevfik_Kursun,
Her ikinizin verdiğiniz cevaplarla benim sorumun cözümü değil.
2 numaralı mesaj sizin istediğinizi yapar ama sadece uygun hücre yoksa hata verecektir.
İlgili alanda uygun hücre olmadığı zaman hata vermemesi, hatayı pas geçmesi için aşağıdaki gibi kullanabilirsiniz.

Kod:
Sub Makro1()
    On Error Resume Next
    Range("A1:AA1200").SpecialCells(xlCellTypeConstants, 1).ClearContents
    On Error GoTo 0
End Sub
 
Son düzenleme:
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Sayın Veyselemre ,
ilginize teşekkürler.
örnek dosya üzerinden belki daha iyi sonuç alabiliriz.
Örnek dosyada "mevcut maliyet "sayfasında kırmızı ile yazılan rakamları biz yazıyoruz siyah ile yazılan rakamlar formül aracılığı ile geliyor.
hücrelerde yapacağımız silme ile formüller silinmeyecek girilmiş olan rakamlar silinecek.
umarım yeterince açıklayabilmişimdir.
 

Ekli dosyalar

Korhan Ayhan

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

C++:
Option Explicit

Sub Hucreleri_Temizle()
    Dim Veri As Range
   
    Application.ScreenUpdating = False
   
    For Each Veri In Range("A1:AA" & Cells(Rows.Count, 1).End(3).Row)
        If Not IsError(Veri) Then
            If Veri.Value <> "" Then
                If IsNumeric(Veri.Value) Then
                    If Not Veri.HasFormula Then
                        If Veri.Font.ColorIndex = 3 Then
                            Veri.MergeArea.ClearContents
                        End If
                    End If
                End If
            End If
        End If
    Next
   
    Application.ScreenUpdating = True
   
    MsgBox "Hücreler temizlenmiştir.", vbInformation
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Ahmet Bey,
Dosyanızın "mevcut maliyet" adlı sayfasında B1:L51 arasındaki kırmızı renkli sayıların bulunduğu hücreleri sarıya boyadım. Sonra Veysel Hocanın makrosunu çalıştırdım C8:D51 arasındakilerin dışındakileri makro temizledi. Q8 hücresine =ESAYIYSA(C8) yazdım YANLIŞ ibaresi, =EMETİNSE(C8) yazdım DOĞRU ibaresi geldi. Yani dosyanızın "mevcut maliyet" adlı sayfasında C8:D51 arasındaki sayılar metin olarak gözüküyor.
İyi çalışmalar
Not: Korhan Hocanın çalışması kırmızı yazıllmış rakamları siliyor (ihtiyacınız bu ise Korhan Hocanın makrosunu kullanınız, değilse metin olarak görülen sayıları düzeltmenin yolunu bulunuz.)
 

Ekli dosyalar

Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub Makro1()
    Range("A1:AA1200").SpecialCells(xlCellTypeBlanks).Cells(1) = 1
    Range("A1:AA1200").SpecialCells(xlCellTypeConstants, 1).ClearContents
    For Each huc In Range("A1:AA1200").SpecialCells(xlCellTypeConstants, 2)
        If huc.Cells(1).Value <> "" And IsNumeric(huc.Cells(1).Value) Then
            huc.MergeArea.ClearContents
        End If
    Next huc
End Sub
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Merhaba Tevfik bey,
c8 hücresin rakam veya metin girdiğimde =EMETİNSE(C8) her ikisinde de doğru diyor. Aslında rakam olması gerekiyor.
Sadece kırmızı ile yazılan hücrelerin silinmesi yeterli olacak.
Korhanan beyin kodlarını uyguladım ancak silme işlemini yapmadı. Nerde hata yaptığımı da bulamadım.
Her ikinizede uğraşlarınız için teşekkür ederim.
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Sayı Veyselemre,
makro1 i uyguladım ancak silme işlemini yaptıramadım.
nerde hata yapıyorum bulamadım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eklediğiniz dosyada ben sonuç aldım.
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Korhan bey,
Hücreleri temizle makrosunu uyguladım ancak sonuç alamadım.
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Korhan bey,
kırmızı rakamları siliyor metin olanları silmiyor.
 
Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
Altın Üyelik Bitiş Tarihi
25/04/2023
Korhan bey,
Yanlış anlaşılma yok kırmızı girilmiş metinlerinde silinmesini istemiştim.
Yoksa rakamların silinmesinde bir sorun yok
 
Üst