H

Çözüldü VBA daki Commentleri Topluca Silmek

hakki83

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
32 Bit
Excel Dili
Türkçe
Merhaba

Excel dosyasının içinde olmadığı için olacağını pek sanmıyorum ama yine de hocalarımıza sormak istedim.

Kodlar tarafındaki Comment haline getirilmiş

hem böyle
‘MsgBox “Merhaba”

hem de böyle
MsgBox “Merhaba” ‘Bu satır merhaba yazar

gibi Commentleri topluca temizlemenin imkanı var mıdır?

Teşekkürler.

(Eğer bunu yapmanın yolu var ise zamandan çok kazandırır)
 
Çözüm
Bu istediğinizin bir makro vs olayı yok.
Ancak bunu notepad ya da Excel sayfası üzerinde yapabilirsiniz diye düşünüyorum.
Eğer bu şekilde bir çözüm işinizi görmezse, vereceğim şey tek tuşla kod sayfasında bir düzeltme şeklinde değil keza, bilginiz olsun.

Neden olmasın @admin !

@hakki83

VBA ekranını açıp, şu kodu ThisWorkbook (BuÇalışmaKitabı) bölümüne yapıştırıp çalıştırın.
Gerek tam satır biçimindeki açıklamalar, gerekse de kod satırlarının sonlarına eklenmiş açıklamalar silinecektir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(8 satır)
Merhabalar office 365 kullanmadığınızı belirtmişsiniz ama Alternatif olarak bu da kalsın burada.. Alt + F11 yaptıktan sonra VBA pencerenizdeki Kodlarınızı Kopyalayıp yan sekmedeki Excelin K1 hücresine yapıştırın. Sonrada L1 hücresine Aşağıdaki formülü yazın. Bütün boşluklar ve yorumlar temizlenerek size çıktı olarak döner sonra bunları kopyalayıp tekrar kod penceresine yapıştırabilirsiniz.

[formul]=LET(XD;ÖNCEKİMETİN(K1:K100;"'";;;;K1:K100);SÜTUNA(EĞER(XD<>"";XD;M);3))[/formul]


Adsız7.webp
 
Bu istediğinizin bir makro vs olayı yok.
Ancak bunu notepad ya da Excel sayfası üzerinde yapabilirsiniz diye düşünüyorum.
Eğer bu şekilde bir çözüm işinizi görmezse, vereceğim şey tek tuşla kod sayfasında bir düzeltme şeklinde değil keza, bilginiz olsun.

Neden olmasın @admin !

@hakki83

VBA ekranını açıp, şu kodu ThisWorkbook (BuÇalışmaKitabı) bölümüne yapıştırıp çalıştırın.
Gerek tam satır biçimindeki açıklamalar, gerekse de kod satırlarının sonlarına eklenmiş açıklamalar silinecektir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(8 satır)
 
Çözüm
Neden olmasın @admin !

@hakki83

VBA ekranını açıp, şu kodu ThisWorkbook (BuÇalışmaKitabı) bölümüne yapıştırıp çalıştırın.
Gerek tam satır biçimindeki açıklamalar, gerekse de kod satırlarının sonlarına eklenmiş açıklamalar silinecektir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(8 satır)
Ömer hocam silmedi ama acaba yanlış mı yaptım

Ömer hocam düzeltiyorum oldu. Hem de mükemmel oldu mükemmel.

Şöyle ki hocam
Güvenlik ayarlarında
VBA… nesne modeli erişimine güven
tikini işaretledim.


Bir de modülün düğmesine üst üste defalarca basmak gerekiyor.
 

Ekli dosyalar

Bir de Ömer hocam başkalarına dosyalar gönderirken bütün sayfalardaki modüllerdeki kodları tek tek elle silmeye uğraşıyorum, bütün kodları temizleyen bir kod da yazabilir misiniz? Ya da yeni konu mu açayım.
 
@hakki83

Şu belgeyi deneyin. (Maalesef kodları gizlemem gerekti)
İster sadece açıklamaları silin, isterseniz de tüm makroları (userformlar dahil) silin.
Ömer hocam hemen merakla denedim. Emeğinize sağlık.

Açıklamaları (Commentleri) silme konusunda çok başarısız oldu, açıklamaların çoğunu sildi, bazılarını da silemedi. Yarım bıraktı.
Açıklama silme için önceki kod (22 nolu mesajınızdaki kod) çok iyiydi.

Makroların silinmesi konusunda ise en küçük bir etkisi olmadı. Hiçbir kodu silmedi.

Kodların gizlenmesi konusunda ise, siz ne derseniz, nasıl uygun görürseniz, odur. :)

Gizli kodlu da olsa güzel bir temizlik yapan, makroları temizleyen dosya gayet faydalı olur.

Mesela Commentleri ve kalan boş satırları silen önceki kod, beni çok rahatlatmıştır.
 
Ömer hocam içinde çok fazla makro ve açıklama bulunan 3 tane farklı dosyamı defalarca denedim.

Dosyanın birinde hiç sorun yok.
Üstelik sizin dosyanızdaki makroları sil kısmını işaretleyince, hem makroları hem de açıklamaları siliyor. İkisini birden.

Açıklamaları sil kısmını işaretleyince de sadece açıklamaları siliyor.

Fakat diğer iki dosyam ise (ilk onları denemiştim) makro ve açıklamaları silemedi. Yarısını sildi. Ve “excel çalışmayı durdurdu” penceresi çıktı.


Demek ki o iki dosya, bir şekilde o sorunsuz dosydan farklı. Ama aralarındaki fark nedir bilmiyorum.
 
Ömer hocam deneme yanılmayla ThisWorkbook kısmındaki makro ve-veya açıklamaların bu soruna yol açtığını buldum.

ThisWorkbook kısmını tamamen silince, sorun çıkmıyor. Ama tam olarak hangi satırdan dolayı oluyor, deniyorum, bulacağım.
 
Ömer hocam merhaba

İki gündür onlarca deneme yaptım ve 25 nolu dosya ile ilgili sorunu buldum. (Aslında sorun 25 nolu dosyada değil de benim dosyalarda)

Eğer daha önce yanına üst ayraç koyup açıklama yorumu yazılan herhangi bir kod satırı,

Daha sonra satır başına da o haliyle üst ayraç konup tamamen Comment haline getirildiyse,

İşte 25 nolu dosyanın açıklama silme işlevi, o satırın sadece ikinci üst ayracını siliyor.

Oysa neticede o satır tamamen Comment görünümünde olduğu için satırın tamamının silinmesi gerekir, fakat dediğim gibi ikinci üst ayraçtan sonrakiler siliniyor. Tamamı silinmiyor.

Durum böyle olunca da silinmesi gereken satırlar silinmediği için, dosyayı açar açmaz ya da kodlar çalıştırınca doğal olarak hata veriyor.

Bunun için küçük bir örnek dosya yaptım.

..........

Peki diyeceksiniz ki 22 nolu mesajdaki kodlarda durum nasıl?

22 nolu kodlarda hiçbir sorun yok. Nerede olursa olsun tüm Commentleri; tüm üst ayraçların yanındaki yazılanları; güzelce siliyor.
Ve boş satırları da yok ediyor. Şu ana kadar yaptığım denemelerde hiç hata ile karşılaşmadım.
Sadece şu var; 22 nolu kodları çalıştırırken düğmeye üst üste birkaç kez basmak gerekiyor. Tek seferde hepsini silmiyor.
..........

Mesajımı bitirmeden önce 25 nolu dosyadaki, kodları silme işlevinde karşılaştığım sorundan da bahsedeyim
Sebebini anlayamadım ama ThisWorkbook tarafındaki kodlarla bir çakışma durumu oluyor sanıyorum. (Fakat bu hata her dosyada da olmuyor nedense) ThisWorkbook'daki kodları manuel (elle) sildiğimizde, hiçbir hata olmadan dosyanın tüm kodlarını açıklamalarını siliyor 25 nolu dosya.
 

Ekli dosyalar

Üst