Diskten diske Dosya (çalışma kitabını) kopyalama

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
295
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşlar merhaba

Aşağıdaki kodda

kopyaal = "G:\Stok\" & dosyam yerine, kopyaal = "c:\Stok\" & dosyam
yazdığımda çalışıyor fakat harici disk olan G: diskini adres gösterince çalışmıyor.

Run-time error 70
permission denied diye hata veriyor ve debug:
"VBA.FileSystem.FileCopy kopyaal, kopyayolla" kodu üzerinde duruyor

iki disk üzerinde ki dosyalardan masa üstü kısayol oluştur dan aldığım kısayol adreslerii aşağıdaki gibi

"\\Server-1\stok\stok 2009.xls"
"G:\stok\stok 2009.xls"

Burada yapmak istediğim çalışma kitabını kapatırken kopyalama işini otomatik bir şekilde yapsın istiyorum. Ancak kayıt etmemiş isem en son kayıtlı hali kopyalanmalı yani kopyalama işini diskten yapmalı SaveAs şeklinde değil.



Sub DosyaKopyala()
'
Dim kopyaal As String, kopyayolla As String, dosyam As String
On Error Resume Next
dosyam = "Stok 2009.xls"
kopyaal = "G:\Stok\" & dosyam
kopyayolla = "\\Server-1\Stok\" & dosyam
VBA.FileSystem.FileCopy kopyaal, kopyayolla

End Sub
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Açık dosya üzerinden kopyalama işlemi yapmaya çalıştığınız için hata veriyor zannediyorum. Birde aşağıdaki şekilde deneyin.
Kod:
Sub auto_close()
'
Dim kopyala As String, dosyam As String
'On Error Resume Next
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    dosyam = ActiveWorkbook.Name
    kopyala = "\\Server-1\Stok\" & dosyam
    ActiveWorkbook.SaveAs Filename:=kopyala
    Application.DisplayAlerts = True
End Sub
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
295
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Hocam Merhaba

Burada belki haklısınız ama ben bu kopyalamayı yapmadan evvel kaydetmesini istemiyorum.
Yani yapılan değişklikleri kaydetmedi isem yapacağı kopyada değişmemeli yani eski halini kopya olarak yollamalı.
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Aşağıdaki satırı silerseniz istediğiniz olur. Ancak dikkatli olun kapatırken kaydetmek istiyor musunuz diye sormayacak ve direk kapatacaktır. Kaydetmeyi manuel yapmalısınız yani.
Kod:
ActiveWorkbook.Save
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
295
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Hocam sağol

Sanırım en iyi cözüm bu, save as ta kopyalama süresi normal kopyalaya göre galiba biraz uzun ama dedim ya, sanırım şu an en iyi cözüm bu görünüyor.
Teşekkürler.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
birde bunu denermisiniz.

Sub Makro1()

'On Error Resume Next
dosyam = "Stok 2009.xls"
kopyaal = "G:\Stok\" & dosyam
kopyayolla = "
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
295
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaş Merhaba

Kodun tamamını yazarmısın.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
evet haklısın eksik olmuş bakmadım


Sub Makro1()
kopyalanacak_dosya = "F:\stok\telefon.xls"
kopyalandığı_yer = "D:\"
If MsgBox(kopyalanacak_dosya & " İşlemini yapmak istiyormusunuz.?", vbYesNo + vbQuestion, "UYARI !") = vbYes Then
Dim DosyaSistemi
Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")
DosyaSistemi.CopyFile kopyalanacak_dosya, kopyalandığı_yer
End If
End Sub
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kodu yeniden gönderiyorum ben bilgisayarımda denedim çalıştı

Sub Makro1()
kopyalanacak_dosya = "F:\stok\telefon.xls"
kopyalandığı_yer = "D:\"
If MsgBox(kopyalanacak_dosya & " İşlemini yapmak istiyormusunuz.?", vbYesNo + vbQuestion, "UYARI !") = vbYes Then
Dim DosyaSistemi
Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")
DosyaSistemi.CopyFile kopyalanacak_dosya, kopyalandığı_yer
End If
End Sub
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
295
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Halit Arkadaş Tekrar Merhaba

Ancak şindi ben size ne desem, kızsammı bu zamana kadar neredesiniz diye.

Tam aradığım, istediğim çözüm.

Çok çok teşekkür ediyorum. Kızgın olaraktan.

Ayrıca tüm ilgilenen arkadaşlarada...
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
düzeltme yapıldı
 
Son düzenleme:

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
295
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaş bizimki minnettarlığımızdan dır ha, yoksa haddimizemi?

Tekrar tekrar sağolasın, ömrün uzun olsun, sağlıkla yaşayasın..
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
düzeltme yapıldı
 
Son düzenleme:
Katılım
2 Aralık 2006
Mesajlar
32
Excel Vers. ve Dili
Excel XP, Türkçe
Merhaba bu çalışmalar çok güzel
benimde şöyle bi sorum var bir bath file dosyam var copy /b c:\xx\*.* d:\yy\fbk.gcj diye çalışıyor
bunu nasıl excel ile yapabilirim tşk ederim. şimdiden
 
Katılım
2 Aralık 2006
Mesajlar
32
Excel Vers. ve Dili
Excel XP, Türkçe
dizinden dizine nasıl yaparım

Merhaba bu çalışmalar çok güzel
benimde şöyle bi sorum var bir bath file dosyam var copy /b c:\xx\*.* d:\yy\fbk.gcj diye çalışıyor
bunu nasıl excel ile yapabilirim tşk ederim. şimdiden
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba bu çalışmalar çok güzel
benimde şöyle bi sorum var bir bath file dosyam var copy /b c:\xx\*.* d:\yy\fbk.gcj diye çalışıyor
bunu nasıl excel ile yapabilirim tşk ederim. şimdiden

anlayamadım örnek dosya gönder bakalım
 
Katılım
2 Aralık 2006
Mesajlar
32
Excel Vers. ve Dili
Excel XP, Türkçe
vd.bat diye birdosya var içeri ise şöyle
copy /b c:\vd\*.* vd.djr bu dosya vd klasörünün içinde bir kaçtane uzantısı djr olan dosyayı vd.djr diye birleştirme yapıyor. Ben bunu excelde macroda yapmak istiyorum.

Teşekkürler
 
Üst