Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

hakki83

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

Bazı dosyalarımda 30’dan fazla modül var ve sonradan içlerini sildiğim için bir çoğunun içi boş.

Bunların üzerindeyken Delete’yle silebiliyor olsak çok kolay olurdu doğrusu. Ama yapamıyoruz. Belki de birçok kullanıcı bundan muzdariptir.

Boş modüller yüzünden içinde kod olan modülleri bulmak için çok uğraşıyorum.

Böyle içi boş olan modülleri kodla silebilir miyiz?

Fakat bazı modüllerin içinde, gözle görünmeyen Space veya Tab karakteri kalmışsa; O MODÜLLERİ DE SİLMELİ.

Bazı modülleri de sırf içine notlarımı yazmak için kullanıyorum. Dolayısıyla içleri sadece yeşil renkli satırlarla dolu. O MODÜLLERİ SİLMEMELİ.

…………

Örnek dosyaya göre Modül4 ve Modül6 kalmalı, gerisini silmeli.
 

Ekli dosyalar

Çözüm
@hakki83
Riskli işler olduğunu tekrar hatırlatarak şu dosyayı ileteyim (maalesef kodlar gizlenmiş durumda).
LOGOya tıklayıp, karşınıza gelecek GÖZAT ekranından, BOŞ MODÜL aranacak ...xlsm türünden bir dosyayı seçmeniz yeterlidir.
İstediğiniz elbette yapılabilir.
Ancak; daha evvel başka bir konu sayfasında da belirtmiştim; VBA tarafının yapısıyla çok uğraşmamakta yarar var.

İzlenmesi gereken klasik yol:
-- Module ismine çift tıkla,
-- sağ taraftaki kod alanı boşsa, Module adına fareyle SAĞ TIKlayıp REMOVE seçeneğini seç,
-- ekrana gelecek UYARIya HAYIR cevabını ver.
 
Hocam sağ olunuz. Bahsettiğiniz şekilde tek tek siliyorum haliyle. Bildiğim kadarıyla başka yolu yok.

Ama onlarca dosya, içlerinde birçok boş modül; bunları tek tek denemek, insanı yoruyor.

Bu boş modülleri pratik yolla, tek seferde silebilmek, iyi olurdu doğrusu.
 
Son düzenleme:
@hakki83
Riskli işler olduğunu tekrar hatırlatarak şu dosyayı ileteyim (maalesef kodlar gizlenmiş durumda).
LOGOya tıklayıp, karşınıza gelecek GÖZAT ekranından, BOŞ MODÜL aranacak ...xlsm türünden bir dosyayı seçmeniz yeterlidir.
 

Ekli dosyalar

Çözüm
Ömer hocam emeğinize sağlık. Her zamanki gibi gayet güzel bir kod yazmışsınız.

Kodları gizlenmesini sormuyorum, sizin bileceğiniz şeydir.

Fakat;

Risk kısmına anlayamadım. Dosyalarımın boş modüllerini sileceğim ve işim kolaylaşacak.

Riskli olan kısım nedir; Biraz açar mısınız ?

Teşekkürler.
 
Neticede MODUL içeriklerini kontrol ediyorsunuz.
BOŞ sözcüğü bence ÇOK NET OLMAYAN bir sözcük.

Örneğin modul içerisinde sadece DEKLERASYON denilen içerik de olabilir.
Risk dediğim: VBA tarafıyla çok uğraşmamak da yarar olduğu.
Kullanılan sorunsuz bir belgede SORUNa neden olmak istemiyor oluşum.

Oluşturduğum kodlama; en az risk alınacağını düşünerek şöyle bir mantık işletiyor:
-- Dosya açılıyor ve modullerdeki satırlarda geziniyor,
-- Madem kodlar ... Sub ...() biçiminde oluyor, "(" karakterini kriter olarak kullandım.
-- Tabi bir de kod açıklaması diyebileceğimiz TEK TIRNAK simgesi durumu var.
Modul içerisindeki satırlarda (tüm kod satırları TEK TIRNAK ile pasif hale getirilmiş de olabilir)
TEK TIRNAK varsa ve "(" simgesi bunun sağında mı solunda mı diye bakılıyor.
Solunda ise yine KOD var (AKTİF) diye karar veriyor ve o modulde işlem yapılmıyor.

Yoksa gerçekten ve tam olarak BOŞ modullerin silinmesinde elbette bir sakınca yok.
 
Aslında düşününce konunun bir sürü detayı var.
Açılış şifresi olan belge, VBA tarafı şifrelenmiş belge,
xlsm yerine yine makro/modul içerebilecek xlsb veya eski versiyon xls uzantılı belge,
sadece DEKLERASYON içeren modul, CLASS MODULlerin durumu vs.

Eklediğim belge, açılış şifresi olmayan, VBA tarafı şifreli olmayan XLSM uzantılı dosyada,
6 numaralı cevapta belirttiğim mantıkla MODUL taraması yapıyor durumda.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst