• 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ü Klasör İçinde xla dosyası varsa başka yere taşıma

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.

bulentkars

Yeni Üye
Katılım
30 May 2022
Mesajlar
605
Çözümler
5
Aldığı beğeni
104
Excel V
Office 365 TR
Konu Sahibi
Arkadaşlar Merhaba;

C:\KONTROL\ Klasörü içerisinde eğer ALLIANCEBK.xla dosyası varsa bu dosyayı O:\ORTAK\ Klasörü içerisine taşımak istiyorum.
Örneğin
C:\KONTROL\ altında ALLIANCEBK.xla dosya yoksa eğer işim yapmayacak.
C:\KONTROL\ altında ALLIANCEBK.xla dosyası varsa, dosyayı KES yaparak O:\ORTAK\ klasörüne yapıştıracak.
Taşıma işlemi yapıldıktan sonra C:\KONTROL\ klasörü içerinde .xla uzantılı dosya kalmayacak varsa silinecek.

Yardımcı olabilirseniz sevinirim. Şimdiden Teşekkürler
 
Çözüm
Malesef
"C:\Users\" & kullanıcı & "\Downloads" altındaki xla dosyalarını silmiyor.
EĞER Kaynak klasör içerisinde AllianceBK.xla dosyası varsa
Hedef Klasörün içerisine bakılıp, hedef klasörde AllianceBK.xla dosyası var ise o dosya silinerek Kaynak klasördeki AllianceBK.xla dosyası Hedef klasöre taşınıyor. Taşıma işleminden sonra Kaynak klasör içerisindeki tüm .xla uzantılı dosyalar siliniyor.
Yok EĞER Kaynak klasörde AllianceBK.xla dosyası yok ve taşıma işlemi yapılmadıysa o zaman hiçbir işlem yapmadan program sonlandırılıyor.

İlgili yerde AllianceBK.xla dosyası varsa işlem yapacak, yoksa işlem yapmayacak. AllianceBK (1) ve farklı xla dosyaları varsa işlem yapmayacak

Siz bu şekilde istememiş miydiniz?
XLA.gif...
Merhaba, aşağıdaki kod Belirtilen Klasör içerisindeki dosyalar içerisinde "xla" uzantılı dosyaları bulup, yine belirtilen klasör içerisine taşır.
HTML:
C:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Sayın Çaylak Çok teşekkür ederim. Tam istediğim gibi olmuş, sadece taşınacak dosyaadı standart "ALLIANCEBK.xla" bu isimdeki dosyayı taşısın. ancak temizlerken uzantısı .xla olanları temizlesin istiyorum. çünkü kopya uzantılı dosyalarda oluşabiir ben hepsini taşımak istemiyorum. sadece ALLIANCEBK.xla dosyasını taşımak istiyorum
 
Konu Sahibi
Merhaba;

Kodun son hali aşağıdaki gibidir.
bir sorun daha farkettim, eğer O:\ORTAK\DENEME klasörü içerisinde aynı dosya varsa hata veriyor. üzerine yazdırımak istiyorum

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Merhabalar, Kodunuzu şu şekilde değiştirip dener misiniz?
HTML:
C:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Sayın çaylak;
Dosya adı büyük harf olduğu için hata vermiş düzeldi.
sadece tek sorun kaldı..
AllianceBK (1) dosyası veya (2) .... 3 şeklinde dosya varsa hata veriyor.

İlgili yerde AllianceBK.xla dosyası varsa işlem yapacak, yoksa işlem yapmayacak. AllianceBK (1) ve farklı xla dosyaları varsa işlem yapmayacak

Kodun son hali
Sub Taşı()
kullanıcı = Environ("USERNAME")
Dim ds, dc, f, Yol, TaşınacakKlasor
Yol = "C:\Users\" & kullanıcı & "\Downloads" 'Bunu kendi klasörünüze göre değiştirin
TaşınacakKlasor = "O:\ORTAK\DENEME" 'Bunu kendi klasörünze göre değiştirin
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(Yol)
Set dc = f.Files
For Each Dosya In dc
If Dosya.Name = "AllianceBK.xla" Then
If Dir(TaşınacakKlasor & "\" & Dosya.Name) <> "" Then
Kill TaşınacakKlasor & "\" & Dosya.Name
End If
ds.moveFile Source:=Dosya, Destination:=TaşınacakKlasor & "\" & Dosya.Name
ElseIf Dosya.Name <> "AllianceBK.xla" And Right(Dosya.Name, 3) = "xla" Then
Kill Dosya.Name 'Farklı isimde örneğin AllianceBK kopya1 olduğunda hata veriyor
End If
Next
End Sub
 
Konu Sahibi
Sayın çaylak;
Dosyanın En son hali aşağıdaki gibidir.
Sadece Taşıma işlemini yaptıktan sonra
"C:\Users\" & kullanıcı & "\Downloads" adresinde uzantısı ".xla" olan tüm dosyaların silinmesini sağlayabilirsek sevinirim.


Sub Taşı()
kullanıcı = Environ("USERNAME")
Dim ds, dc, f, Yol, TaşınacakKlasor
Yol = "C:\Users\" & kullanıcı & "\Downloads" 'Bunu kendi klasörünüze göre değiştirin
TaşınacakKlasor = "O:\ORTAK\DENEME" 'Bunu kendi klasörünze göre değiştirin
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(Yol)
Set dc = f.Files
For Each Dosya In dc
If Dosya.Name = "AllianceBK.xla" Then
If Dir(TaşınacakKlasor & "\" & Dosya.Name) <> "" Then
Kill TaşınacakKlasor & "\" & Dosya.Name
End If
ds.moveFile Source:=Dosya, Destination:=TaşınacakKlasor & "\" & Dosya.Name
ElseIf Dosya.Name <> "AllianceBK.xla" And Right(Dosya.Name, 3) = "AllianceBK.xla" Then
Kill Dosya.Name
End If
Next
End Sub
 
Merhaba,
Anladığımı yazıyorum;
Eğer Kaynak klasör içerisinde AllianceBK.xla dosyası varsa
Hedef Klasörün içerisine bakılacak, hedef klasörde AllianceBK.xla dosyası önceden var ise o dosya silinerek Kaynak klasördeki AllianceBK.xla dosyası Hedef klasöre taşınacak. Taşıma işlemi yapıldıysa Kaynak klasör içerisindeki tüm .xla uzantılı dosyalar silinecek. Yok eğer taşıma işlemi yapılmadıysa, yani Kaynak klasör içerisinde AllianceBK.xla dosyası yoksa o zaman hiçbir işlem yapmadan program sonlandırılacak.
Eğer bu yazdıklarım doğruysa aşağıdaki kodu bir dener misiniz?

HTML:
C:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Malesef
"C:\Users\" & kullanıcı & "\Downloads" altındaki xla dosyalarını silmiyor.
EĞER Kaynak klasör içerisinde AllianceBK.xla dosyası varsa
Hedef Klasörün içerisine bakılıp, hedef klasörde AllianceBK.xla dosyası var ise o dosya silinerek Kaynak klasördeki AllianceBK.xla dosyası Hedef klasöre taşınıyor. Taşıma işleminden sonra Kaynak klasör içerisindeki tüm .xla uzantılı dosyalar siliniyor.
Yok EĞER Kaynak klasörde AllianceBK.xla dosyası yok ve taşıma işlemi yapılmadıysa o zaman hiçbir işlem yapmadan program sonlandırılıyor.

İlgili yerde AllianceBK.xla dosyası varsa işlem yapacak, yoksa işlem yapmayacak. AllianceBK (1) ve farklı xla dosyaları varsa işlem yapmayacak

Siz bu şekilde istememiş miydiniz?
XLA.gif


HTML:
C:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Son düzenleme:
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst