• DİKKAT

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

Formülleri Silmeden Veri Temizleme

Katılım
3 Temmuz 2013
Mesajlar
37
Excel Vers. ve Dili
türkçe 8
Arkadaşlar 7/8 sayfadan oluşan bir excel çalışma sayfamda bir sürü kod, formül vb var. Tablolarda veriler var. Ben tek bir tık ile tüm verileri temizleyip formülleri ve kodlara dokunulmasın istiyorum. Böyle bir çalışma daha evvel paylaşıldı mı bilmiyorum. Yardımlarınızı bekliyorum.
 
Formülleri koruyup, formül sonuçlarını yok etmek anlamsız bir istek gibi geldi bana.
Formüllerinizin veri aldığı hücreleri boşaltıp, formüllerinizde değişiklik yaparak bir çözüm olabilir belki.
Örneğin A3 hücresindeki formülünüz =A1+A2 ise, bu formülü =EĞER(YADA(A1="";A2="");"";A1+A2) şeklinde değiştirdikten sonra A1 ve A2'deki verileri silerseniz, formülünüz BOŞ sonuç döndürür, yani A3 hücrenizde bir DEĞER görmezsiniz ve formülünüz hala oradadır.

Belki de en pratik olan sayfalarınızın birer kopyasını oluşturup ondan sonra işlem yapabilirsiniz.
 
Formülleri koruyup, formül sonuçlarını yok etmek anlamsız bir istek gibi geldi bana.
Formüllerinizin veri aldığı hücreleri boşaltıp, formüllerinizde değişiklik yaparak bir çözüm olabilir belki.
Örneğin A3 hücresindeki formülünüz =A1+A2 ise, bu formülü =EĞER(YADA(A1="";A2="");"";A1+A2) şeklinde değiştirdikten sonra A1 ve A2'deki verileri silerseniz, formülünüz BOŞ sonuç döndürür, yani A3 hücrenizde bir DEĞER görmezsiniz ve formülünüz hala oradadır.

Belki de en pratik olan sayfalarınızın birer kopyasını oluşturup ondan sonra işlem yapabilirsiniz.


Teşekkür ederim. Aslında hazırlamış olduğum bir bütçe programı var. Bir kaç aydır kullanıyorum ve içinde bir sürü veri birikmiş vaziyette. Kodları ve formülleri bozmadan bunları temizleyip programı sitede paylaşmak istiyorum. Ondan böyle bir soru sordum. Ama en mantıklısı manuel olarak tüm verileri temizlemek olacak sanırım.
 
illaki kod istiyorsanız şunu deneyin. aralığı düzenlemeyi unutmayın.
Kod:
Sub RemoveConstants()
    Dim rConstants As Range
    Set rConstants = Sayfa1.Range("[B][COLOR="Red"]A1:B2[/COLOR][/B]").SpecialCells(xlCellTypeConstants)
    rConstants.ClearContents
End Sub
 
illaki kod istiyorsanız şunu deneyin. aralığı düzenlemeyi unutmayın.
Kod:
Sub RemoveConstants()
    Dim rConstants As Range
    Set rConstants = Sayfa1.Range("[B][COLOR="Red"]A1:B2[/COLOR][/B]").SpecialCells(xlCellTypeConstants)
    rConstants.ClearContents
End Sub

Merhaba Sayın systran gönderdiğiniz kod sanırım formül İÇERMEYEN hücre içeriklerini siliyor doğru mudur acaba?
Git -> Özel Git -> Sabitler seçeneğini kullandığımda sadece değer olan (formülsüz) hücreleri seçmiyor bile, kod bu işi mi yapıyor acaba?
 
Son düzenleme:
illaki kod istiyorsanız şunu deneyin. aralığı düzenlemeyi unutmayın.
Kod:
Sub RemoveConstants()
    Dim rConstants As Range
    Set rConstants = Sayfa1.Range("[B][COLOR="Red"]A1:B2[/COLOR][/B]").SpecialCells(xlCellTypeConstants)
    rConstants.ClearContents
End Sub


Kod seçili aralık için çalışıyor. Fakat ActiveWorkbook ya da tüm sayfa için nasıl düzenlenebilir? Tüm sayfada nasıl çalıştırabiliriz
 
tüm çalışma sayfaları için
Kod:
Sub RemoveConstants()
    Dim sh As Worksheet
    Dim rConstants As Range
    For Each sh In Worksheets
        Set rConstants = sh.Range("A1:h18").SpecialCells(xlCellTypeConstants)
        rConstants.ClearContents
    Next

End Sub
 
Kod:
Sub RemoveConstants()
[COLOR="Red"][B]sonuc = MsgBox("tüm sayfalardaki veriler siliniyor! Emin misin?", vbYesNo + vbQuestion)
If sonuc = 7 Then Exit Sub[/B][/COLOR]
On Error Resume Next
    Dim sh As Worksheet
    Dim rConstants As Range
    For Each sh In Worksheets
        sh.Activate
        Cells.Select
        Set rConstants = Selection.SpecialCells(xlCellTypeConstants)
        rConstants.ClearContents
        
    Next

End Sub
 
Son düzenleme:
ben tüm sayfayı yanlış anlamışım :D
aşağıdaki kodu dene. tüm çalışma sayfalarının, bütün hücrelerini kapsar.
sayfada hiç veri yoksa hata verir. vermesin diye On error Resume next var.
Kod:
Sub RemoveConstants()
On Error Resume Next
    Dim sh As Worksheet
    Dim rConstants As Range
    For Each sh In Worksheets
        sh.Activate
        Cells.Select
        Set rConstants = Selection.SpecialCells(xlCellTypeConstants)
        rConstants.ClearContents
        
    Next

End Sub


Bu harika oldu.. :)
Fakat son olarak yanlışlıkla tıklamaların önüne geçmek için Silmek istiyor musunuz Evet/Hayır gibi bir seçenek de olsa tam olmuş olacak :)
 
Merhaba Sayın systran gönderdiğiniz kod sanırım formül İÇERMEYEN hücre içeriklerini siliyor doğru mudur acaba?
Git -> Özel Git -> Sabitler seçeneğini kullandığımda sadece değer olan (formülsüz) hücreleri seçmiyor bile, kod bu işi mi yapıyor acaba?
evet formulsuz hucreleri siliyor

Ben de ilk başta sizin dediğiniz yöntemi denedim, olmayınca makro çözümüne uğraştım.
 
Geri
Üst