• DİKKAT

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

Hücre silme

Katılım
27 Ocak 2005
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 TR
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
 
Kod:
Sub Makro1()
    Range("B1:M51").SpecialCells(xlCellTypeConstants, 1).ClearContents
End Sub
 
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.
 
Veysel Hocam,
Teşekkürler
İyi çalışmalar
 
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:
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.
 
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.
 
Sayın Veyselemre ,
Sayın Tevfik_Kursun,
Her ikinizin verdiğiniz cevaplarla benim sorumun cözümü değil.
 
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:
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

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
 
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:
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
 
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.
 
Sayı Veyselemre,
makro1 i uyguladım ancak silme işlemini yaptıramadım.
nerde hata yapıyorum bulamadım.
 
Eklediğiniz dosyada ben sonuç aldım.
 
Korhan bey,
Hücreleri temizle makrosunu uyguladım ancak sonuç alamadım.
 
Korhan bey,
Yanlış anlaşılma yok kırmızı girilmiş metinlerinde silinmesini istemiştim.
Yoksa rakamların silinmesinde bir sorun yok
 
Geri
Üst