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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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.
 
Katılım
3 Temmuz 2013
Mesajlar
37
Excel Vers. ve Dili
türkçe 8
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.
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,669
Excel Vers. ve Dili
2021 PRO [TR]
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
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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:
Katılım
3 Temmuz 2013
Mesajlar
37
Excel Vers. ve Dili
türkçe 8
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
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,669
Excel Vers. ve Dili
2021 PRO [TR]
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
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,669
Excel Vers. ve Dili
2021 PRO [TR]
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:
Katılım
3 Temmuz 2013
Mesajlar
37
Excel Vers. ve Dili
türkçe 8
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 :)
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,669
Excel Vers. ve Dili
2021 PRO [TR]
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.
 
Üst