• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Kodların İçinde Arama Yapma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

hakki83

Yeni Üye
Katılım
9 Ağu 2021
Mesajlar
767
Çözümler
3
Aldığı beğeni
234
Excel V
Office 2016 TR
Konu Sahibi
Merhaba

İzah etmeye çalışayım

Bazen klasörlerimin içindeki bir dosyayı arıyorum. Fakat o dosya ile ilgili hatırladığım ya da not aldığım tek şey; içindeki makro kodları ile ilgili bir satır oluyor.

Ve bu dosyayı bulmak için çok fazla uğraşıyorum.

Diyelim ki ekteki dosya, yüzlerce dosyanın olduğu bir klasörde veya diskte bulunuyor.

Dosyanın adını hatırlamıyorum ama kodlarda geçen bir satırı hatırlıyorum.

Kodlarda
Range("A1") = "kontrol edildi" yazıyor.
Ya da
"kontrol edildi" yazıyor.
Bundan eminim.

Bundan emin olmasına eminim ama dosyanın adını hatırlayamadığım için, ve dosyayı bulabilmek için, yüzlerce dosyayı tek tek açıp, kodlarında arama yapmam gerekiyor.


İşte bu sorunu çözen, yani makro kodları içinde arama yapan bir dosyayı, hocalarımız acaba oluşturabilir mi?
 
Çözüm
alt klasörlerde dahil kodlar:
modülün başında yer alan tanımlayıcılar
Option Compare Text aranan ifadelerin küçük büyük harf duyarlılığını kaldırır
Not: İngilizce'deki "I" ile Türkçedeki "i" eşdeğerdir, aramalarda sorun çıkarabiliyorlar
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
dediğiniz şey yapılabilir ama excele daha üst seviyede bir yetki vermeniz gerekir ki bu yetki ile excel dosyaları sizin kodlarınızı değiştirme, silme ve ekleme yetkisine de sahip olur bu yetkiyi vermek için
VBIDE kodlarının çalışabilmesi için gerekenler resimde gösterilmiştir:
  1. File ->
  2. Options ->
  3. Trust Center ->
  4. Trust Center Settings ->
  5. Macro Settings ayarlarına gelip "Trust access to the VBA Project Object Model" kutusunu seçili hale getirmeniz gerekli

2. olarak da referanslardan "Microsoft Visual Basic for Applications Extensibility 5.3" eklenmeli

düğmeye bastığınızda aramak istediğiniz kodu soran bir pencere gelir (isterseniz arama metni hücreden de alınabilir)
arama metnini girdikten sonra aramanın hangi klasörde yapılacağını soran 2. bir diyalog kutusu daha gelir
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Not:
1 - her defasında ilgili dosyalar açıldığından çok fazla dosyanız varsa sorun çıkabilir
2 - sadece seçilen ana klasör içindeki doyalar taranır alt klasörler araştırılmaz
forumda alt klasörleri de tarayan kodlar mevcut çalışmaya eklenebilir
 
Konu Sahibi
Not:
1 - her defasında ilgili dosyalar açıldığından çok fazla dosyanız varsa sorun çıkabilir
2 - sadece seçilen ana klasör içindeki doyalar taranır alt klasörler araştırılmaz
forumda alt klasörleri de tarayan kodlar mevcut çalışmaya eklenebilir
Halily hocam harikasınız, teşekkürlerimi sunuyorum. Bravo.
Tam olarak tarif ettiğim gibi. :)

Hocam bahsetmiş olduğunuz

alt klasörleri de tarayan kodlar mevcut çalışmaya eklenebilir

müsait zamanınızda bu eklemeyi de yapabilir misiniz ikinci bir dosya olarak.
 
sayın VetExc 'in cevaplandırdığı aşağıdaki konuda cevap mevcut
o kodda tüm klasörler ve alt klasörlerde yer alan dosyaların listelenmesi mevcut
kendi çalışmanıza uyarlamanız yeterli
 
alt klasörlerde dahil kodlar:
modülün başında yer alan tanımlayıcılar
Option Compare Text aranan ifadelerin küçük büyük harf duyarlılığını kaldırır
Not: İngilizce'deki "I" ile Türkçedeki "i" eşdeğerdir, aramalarda sorun çıkarabiliyorlar
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
klasör ve alt klasörleri tarayıp excel dosyalarını bulan ve bulduğu ecel dosyalarını arama fonksiyonuna yönlendiren kodHTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
modlüdeki kodları alıp aranan metin olup olmadığını kontrol eden fonksiyon:HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Son düzenleme:
Çözüm
İngilizce ve Türkçede farklı olan I,i sorununu çözmek için kaba bir yaklaşım kullandım arama metninde I,ı,İ,i harflerini [Iıİi] ile değiştirerek arama kapsamını genişletiyor. ama ufak bir sorunu var; aramada kIr ve kİr aynıymış gibi davranıyor. VBA sayfasındaki kodlar İngilizce mesaj içerikleri Türkçe olduğundan bu karışıklık maalesef engellenemiyor.
fıstıkçı ile fIstIkçı gibi büyük küçük I,i sorununu engellemek isterseniz koda aşağıdaki blok eklenebilir
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Not: 6. mesajdaki kod bu mesajdan bağımsız olarak düzeltilmiştir. ListFilesInFolder yordamında kullanılan Set fso = Nothing kodu fso'yu kapattığı için bazen hata veriyordu. kapatma kodu ana yordama taşındı
 
Son düzenleme:
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst