Konumu Belli Olmayan Dosyayı Ara

Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
Merhaba değerli hocalarım
Konumu belli olmayan MALZEME isimli Excel dosyasını pc de aratıp silebilir miyim? Fakat bu işlemi yaparken aynı isimle açık olan exceli hariç tutması gerekiyor.

Nedeni; Kullanıcı kişi MALZEME isimli exceli açıp üzerinde çalışıyor ve kapatıyor. Ama daha sonra başka konumlara kopyaladığı MALZEME isimli exceli açıyor ve girdiğim veriler kaybolmuş diyor. Söz konusu kullanıcılara sürekli bunu izah etmekten sıkıldım. Umarım anlatabilmişimdir.

Şimdiden teşekkür ederim.
 
Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
Söz konusu dosya herhangi bir konumda ve herhangi bir isimli klasör içinde olabilir. Tüm pc yi tarayıp bulması gerekiyor.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,799
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bu dosya exe olarak yapıldı şifre parametresi ile dosyanın yanına (sifre kayit.1st) bu isimde bir dosya oluşturuyor bu dosyayı silerseniz proğram çalışmaz

 
Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
Kıymetli hocalarım; konu hala açık durumdadır. Yokmu bunun çözümü
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,799
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
4 nolu mesajınızdan sonra 5 nolu mesaj yazdım oradaki dosyayı indirip denedinizmi?
not bilgisayarınızda d sürücüsüne yeni bir dosya ekleyiniz ismi türkçe kalekter içermesin yani aksanlı harfler olmasın aratın bakalım bulacakmı.
5 nolu mesajdaki dosya denendi ve çalışıyor.
 
Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
4 nolu mesajınızdan sonra 5 nolu mesaj yazdım oradaki dosyayı indirip denedinizmi?
not bilgisayarınızda d sürücüsüne yeni bir dosya ekleyiniz ismi türkçe kalekter içermesin yani aksanlı harfler olmasın aratın bakalım bulacakmı.
5 nolu mesajdaki dosya denendi ve çalışıyor.
Değerli Halit hocam ilginiz için çok teşekkür ederim. fakat ben söz konusu işlemi makro ile yapmak istiyorum. Amacım şu; Kullanıcı kişi MALZEME isimli exceli açıp üzerinde çalışıyor ve kapatıyor. Ama daha sonra başka konumlara kopyaladığı MALZEME isimli exceli yanlışlıkla açıyor üzerinde çalışıyor ve daha sonra başka bir konuma kopyaladığı MALZEME isimli dosyayı açtığında girdiğim veriler kaybolmuş diyor. Söz konusu kullanıcılara sürekli bunu izah etmekten sıkıldım. Kullanıcı MALZEME isimli exceli sadece tek nüsha olarak kullansın istiyorum. Yani istediğim makro kodunun görevi; asıl olan MALZEME.xlsb dosyası açılırken başka konumlara kopyalanan MALZEME.xlsb isimli excelleri arayıp bulsun ve silsin.
Değerli hocam yardımcı olursanız çok çok sevinirim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sadece bir fikir;

Bu işlem yerine dosyanın kısayolunu kullanıcılarla paylaşsanız daha kolay olmaz mı?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,799
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
4 Nolu mesajdaki dosyayı indirdiğinizi kubul ediyorum

Yapılması gerekenler:
1-(FORM AÇ) komut düğmesine dıkla
2-kahverengi text nesnesinden (Hepsi yazıyor) aradığır dosya adını ve ya dosya adında içinde geçen bir gelime yaz.
3-(Klasörden Bul) komut düğmesini tıkla
4-Açılan liste kutusundan dosyanın bulunduğu sürüçüyü tıkla
5-Bulunan sonuçlar yeşil liste kutusuna çıkacaktır
6-bulunan sonuçlarla ilgili seçmiş olduğun dosyayı (Seçili dosyayı Sil) komut düğmesİne tıklamanız yeterli olacaktır.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Bu bir vbscript kodudur. Aşina iseniz kullanımın kolay olduğunu göreceksiniz.
Vbs hakkında bilginiz yoksa bir txt dosya açıp kodu bu txt dosyaya yapıştırın ve uzantısını vbs olarak değiştirin.
Yani txt olan uzantı vbs olsun.
Sonra üzerine çift tıklayın kısıtlama yoksa çalışacaktır.
Program bilgisayarda nerede olursa olsun MALZEME.xlbs adlı dosyayı bulur ve masaüstünde Backup adlı klasöre kopyalar.
Orjinal konumdaki dosyayı siler.
Dosyanızın güvenliği açısından ilk denemede silme işlemini dilerseniz pasif yapın. Sorumluluk kabul edilmez.

Kod:
Dim objFSO,WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")

Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim strFolderTest
strFolderTest = strDesktop & "\Backup"

If objFSO.FolderExists(strFolderTest) = False Then
  
    On Error Resume Next
    objFSO.CreateFolder(strFolderTest)
    If Err.Number <> 0 Then
        If Err.Number = 53 Then
            Err.Clear
            WScript.quit(1)
        End If
    End If
    
Else


End If



strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colFiles = objWMIService. _
    ExecQuery("Select * from CIM_DataFile where Extension = 'xlsb'")

Sira = 1
For Each objFile in colFiles

 If InStr(1, objFile.Name, "MALZEME",vbBinaryCompare) >1 then

    strCopy =  strFolderTest & "\" & objFile.FileName & "_" & Sira & "." & objFile.Extension
    objFile.Copy(strCopy)
    objFile.Delete
  Sira = Sira + 1
   End If
Next
msgbox("Bitti")
 
Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
Bu bir vbscript kodudur. Aşina iseniz kullanımın kolay olduğunu göreceksiniz.
Vbs hakkında bilginiz yoksa bir txt dosya açıp kodu bu txt dosyaya yapıştırın ve uzantısını vbs olarak değiştirin.
Yani txt olan uzantı vbs olsun.
Sonra üzerine çift tıklayın kısıtlama yoksa çalışacaktır.
Program bilgisayarda nerede olursa olsun MALZEME.xlbs adlı dosyayı bulur ve masaüstünde Backup adlı klasöre kopyalar.
Orjinal konumdaki dosyayı siler.
Dosyanızın güvenliği açısından ilk denemede silme işlemini dilerseniz pasif yapın. Sorumluluk kabul edilmez.

Kod:
Dim objFSO,WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")

Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim strFolderTest
strFolderTest = strDesktop & "\Backup"

If objFSO.FolderExists(strFolderTest) = False Then
 
    On Error Resume Next
    objFSO.CreateFolder(strFolderTest)
    If Err.Number <> 0 Then
        If Err.Number = 53 Then
            Err.Clear
            WScript.quit(1)
        End If
    End If
   
Else


End If



strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colFiles = objWMIService. _
    ExecQuery("Select * from CIM_DataFile where Extension = 'xlsb'")

Sira = 1
For Each objFile in colFiles

If InStr(1, objFile.Name, "MALZEME",vbBinaryCompare) >1 then

    strCopy =  strFolderTest & "\" & objFile.FileName & "_" & Sira & "." & objFile.Extension
    objFile.Copy(strCopy)
    objFile.Delete
  Sira = Sira + 1
   End If
Next
msgbox("Bitti")

hocam bunu vba makro kodu ile yapabilir miyiz? kullanıcının komut dosyasını çalıştırıp çalıştırmayacağını bilemiyorum.
 

Tores333

Altın Üye
Katılım
26 Ocak 2017
Mesajlar
37
Excel Vers. ve Dili
Microsoft 365 EN 64 bit
Altın Üyelik Bitiş Tarihi
23-06-2025
merhaba,
Kullanıcıların kontrol edilemediği noktada benim uygulamam şöyle olurdu;

boş bir dosyaya olması gereken sabit yoldaki MALZEME dosyasını açıp, boş dosyayı kapatan makro ile kullanıcının yanlış dosyayı açmasını engellerdim.

kodu kendinize göre uyarlayabilirsiniz.

Kod:
Option Explicit

Private Sub Workbook_Open()

Dim wb As String
Dim wb1 As String

wb = "C:\Users\...\MALZEME.xlsb" 'dosya yolunu kendinize göre düzenleyin
wb1 = "C:\Users\...\Book1.xlsm" 'dosya yolunu kendinize göre düzenleyin

Workbooks.Open wb

Workbooks("Book1").Activate

'ActiveWorkbook.Close SaveChanges:=False ' düzenleme sonrası baştaki tırnak işaretini kaldırın


End Sub
 

Ekli dosyalar

Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
merhaba,
Kullanıcıların kontrol edilemediği noktada benim uygulamam şöyle olurdu;

boş bir dosyaya olması gereken sabit yoldaki MALZEME dosyasını açıp, boş dosyayı kapatan makro ile kullanıcının yanlış dosyayı açmasını engellerdim.

kodu kendinize göre uyarlayabilirsiniz.

Kod:
Option Explicit

Private Sub Workbook_Open()

Dim wb As String
Dim wb1 As String

wb = "C:\Users\...\MALZEME.xlsb" 'dosya yolunu kendinize göre düzenleyin
wb1 = "C:\Users\...\Book1.xlsm" 'dosya yolunu kendinize göre düzenleyin

Workbooks.Open wb

Workbooks("Book1").Activate

'ActiveWorkbook.Close SaveChanges:=False ' düzenleme sonrası baştaki tırnak işaretini kaldırın


End Sub
Hocam galiba yanlış anladınız. Şöyle izah edeyim; kullanıcının çalışması gereken dosya masa üstünde ÇALIŞMA adlı klasördeki MALZEME.xlsb adlı exceldir. Fakat kullanıcı yedek olsun diye bu dosyayı D sürücüsünde ismini bilmediğimiz bir klasör içine kopyalamış. Hatta masa üstünde başka bir klasör daha oluşturmuş ve onun içine de kopyalamış bulunmaktadır.

Kullanıcı Pazartesi günü masa üstünde ÇALIŞMA adlı klasördeki MALZEME.xlsb adlı exceli açıp malzeme kaydı girmiştir.
Kullanıcı Salı günü bu defa D sürücüsünde ismini bilmediğimiz bir klasör içine kopyaladığı MALZEME.xlsb adlı excel dosyasını açmış ve dünkü kaydettiği verilerinin olmadığını fark ederek beni arayıp verilerim gitti diyor. Araştırıyoruz bakıyoruz ki kullanıcı bir gün başka öteki gün başka dosyada çalışıyor ve yaptığı hatanın farkında olmadan programı kötülüyor.

Bu hata bir çok kullanıcı tarafından sık sık yapılmaktadır. Şimdi yapmak istediğim şu: Kullanıcı masa üstünde ÇALIŞMA adlı klasördeki MALZEME.xlsb adlı dosyayı açtığında kod devreye girsin ve açık olan dosya hariç olmak kaydıyla bilgisayarda aynı isimle başka konumlara kopyalanmış olan MALZEME.xlsb adlı excel dosyalarını silsin.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,799
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Resimde gösterdiğim üç aşamalı işlemi yapın
3 aşamada D sürücüsünü seçin
not: Sonuçları buraya en kısa zamanda yazınki emek boşuna gitmesin.Yeni Bit Eşlem Resmi2.jpg
 
Katılım
19 Eylül 2012
Mesajlar
302
Excel Vers. ve Dili
2010 türkçe
Resimde gösterdiğim üç aşamalı işlemi yapın
3 aşamada D sürücüsünü seçin
not: Sonuçları buraya en kısa zamanda yazınki emek boşuna gitmesin.Ekli dosyayı görüntüle 239759
Sayın Hocam ilgi ve alakanız için çok teşekkür ederim. Bahsettiğiniz şekilde arama yaptım. D sürücüsünde aranan dosyayı hemen buluyor. Hatta aranan dosya yoksa hemen sonucunu söylüyor. Yani D sürücüsü için kod tam ve hızlı çalışıyor. Ancak bulunan dosyayı silme butonu çalışmıyor.

Fakat, aynı aramayı C sürücüsünü seçip yapıyorum ama sonsuz döngüye girmişçesine bir türlü dosyayı bulup işlemi bitiremiyor. Hatta aranan dosya belirtilen konumda yoksa bile dosya bulunamadı mesajıyla işlemi bitiremiyor ve sürekli dönüyor.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,799
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Dosyayı yeniden güncelledim d sürücüsündeki dosyaları buluyor silme işini de yapıyor. c sürücüsünün kapasitesi çok büyük olmalı

 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
hocam bunu vba makro kodu ile yapabilir miyiz? kullanıcının komut dosyasını çalıştırıp çalıştırmayacağını bilemiyorum
Dosyanız aşağıdaki linktedir.

Dosya_Arama_Kisa.rar

Not : 2. Alternatif tüm "*MALZEME*" içeren dosyaları etkileyeceği için dikkatli kullanılmalıdır.
 
Üst