• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Farklı kaydet makrosu için yardım

  • Konbuyu başlatan Konbuyu başlatan mozakay
  • Başlangıç tarihi Başlangıç tarihi
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Arkadaşlar merhaba,

Günlük birtakım verilerin girildiği bir çalışma kitabım var.
gün sonunda rapor mail ile ilgili yerlere gönderiliyor.
sonrasında da farklı kaydet ile "D" içerisindeki "GÖNDERİLEN RAPORLAR" klasörü içindeki ilgili YIL, AY klasörüne o günün tarihinin adı verilerek arşivleniyor.

bunu bir butona atayacağım bir makro ile yapmak istiyorum.
günün tarihini çalışma sayfası üzerindeki ilgili hücreden alınabilir.

bu konuda bana yardımcı olabilecek bir arkadaş var mıdır acaba?
şimdiden teşekkürler.
 
Örnek dosyanızı ekleme imkanınız var mı acaba ?
 
Bunu da deneyebilirsiniz
Sub FARKLIKAYDET()
Application.ScreenUpdating = False
sheets("sayfa2").Copy
ActiveWorkbook.Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close False
Application.ScreenUpdating = True
MsgBox "ÇALIŞMA FARKLI KAYDEDİLMİŞTİR...."
End Sub
 
örnek çalışma ile ilgili bir durum yok aslında.
bilgisayarım "D" de "GÖNDERİLEN RAPORLAR" adında bir klasörüm var.
bu klasörün içinde de 2015, 2016 gibi yıl klasörleri var.
yıl klasörlerinin içinde de ay klasörleri mevcut.

farklı kaydet makrosunu çalıştırdığımda D içerisindeki uygun "yıl" ve onun içindeki uygun "AY" klasörünü bularak dosya ismini 03.01.2016 şeklinde o günün tarihi olacak şekilde kaydetmesini istiyorum. o günün tarihini çalışma kitabı içindeki "KAYIT" sayfasındaki "O1" hücresinden alabilir.
 
Ayı otomatik olarak bulmayı bilemem ama aşağıdaki kodlar 2016 yılı dosyası içerisine kayıt yapacaktır.

Sub Farklı_Kaydet()

Application.ScreenUpdating = False
Sheets("KAYIT").Copy
ActiveWorkbook.SaveAs Filename:="D:\GÖNDERİLEN RAPORLAR\2016\" & Range("O1") & ".xls"
ActiveWindow.Close
Application.ScreenUpdating = True

End Sub
 
Mustafa bey birkaç değişiklik ile verdiğiniz kod işime yaradı.
çok teşekkür ederim. saygılar.
 
Kolay gelsin. İyi çalışmalar....
 
Bu arada sayenizde 1000. mesajı devirmişiz. Excel web ailesine teşekkürler...
 
Mustafa bey, aşağıdaki kod da dosya ismini "O1" hücresinden alıyor. bu gaybaşarılı.
acaba dosya kayıt yerini belirlerken "2016" yı "O2", "OCAK" yazan yeri de "O3" hücrelerinden almamız mümkün mü?


ActiveWorkbook.SaveAs Filename:="D:\GÖNDERİLEN RAPORLAR\2016\OCAK\" & Range("O1") & ".xls"
 
Kodda bulunan ilgili bölümü aşağıdaki gibi değiştiriniz.

D:\GÖNDERİLEN RAPORLAR\2016\OCAK\" & Range("O1") & Range("O2") & Range("O3") & ".xls"

Kodda bulunan & Range("O2") kısmı üzerinde siz gerekli düzenlemeleri ekleme yada çıkarma olacak şekilde üzerinde yapınız
 
maalesef olmadı. kayıt ismi değişiyor. kayıt yeri değişmiyor.
 
Sayın mozakay
O1 Hücresine tarih formatında dosyaya verilecek tarihi girerseniz.
Kod:
ActiveWorkbook.SaveAs Filename:="D:\GÖNDERİLEN RAPORLAR\" & Year(Range("o1")) & "\" & MonthName(Month(Range("o1"))) & "\" & Format(Range("o1"), "dd.mm.yyyy") & ".xls"
 
Ali bey o şekilde denediğimde "GÖNDERİLEN RAPORLAR" klasörü içine 20016 yani yıl adı ile kayıt yapıyor. oya benim istediğim yıl ve ayı çalışma sayfası içindeki tarihten alarak ilgili klasör içine o günün tarihi adıyla kayıt yapması.
 
Zaten öyle yapıyor olması gerek, O1 hücresi tarih formatında ise ve O1 hücresinde 01.01.2016 yazıyorsa D>GÖNDERİLEN RAPORLAR>2016>Ocak klasörünün içine 01.01.2016.xls olarak kayıt eder. D>GÖNDERİLEN RAPORLAR klasörünün içine yapmaması gerek. Ben tekrar denedim.
 
Son düzenleme:
Mustafa bey, verdiğiniz kod çok işime yaradı. biraz sorun yaşadım. bazı klasörlere kayıt yapıp bazılarına yapmıyordu. klasör isimlerini küçük harfle yazarak sorunu çözdüm.

çok teşekkür ederim. ellerinize sağlık.
 
Farlı kaydetmek istediğiniz Sheet adını "rapor" diye değiştirip A! hücresine örneğin "01.01.2016" yazıp makroyu çalıştırırsanız. D sürücüsünde yoksa "GÖNDERİLEN RAPORLAR" diye bir klasör, onun içinde "2016" diye bir klasör ve onun içinde de "Ocak" klasörü oluşturuyor. Onun içinde de "01.01.2016.xls" doyasını kaydediyor.
Örnek Ekte
http://s6.dosya.tc/server5/mzdw25/a.zip.html
Kod:
Sub Makro5()

On Error Resume Next
Application.ScreenUpdating = False
  Application.DisplayAlerts = False
 Set Dosya = CreateObject("Scripting.FileSystemObject")
   yol = "D:\GÖNDERİLEN RAPORLAR"
yılyol = "D:\GÖNDERİLEN RAPORLAR\" & Year(Range("A1"))
 ayyol = "D:\GÖNDERİLEN RAPORLAR\" & Year(Range("A1")) & "\" & MonthName(Month(Range("A1")))
 If Not Dosya.FolderExists(yol) Then
        Dosya.CreateFolder (yol)
    End If
 If Not Dosya.FolderExists(yılyol) Then
        Dosya.CreateFolder (yılyol)
    End If
 If Not Dosya.FolderExists(ayyol) Then
        Dosya.CreateFolder (ayyol)
    End If
  gelen = ayyol & "\" & Range("A1") & ".xls"
    If Not Dosya.FileExists(gelen) Then
 Sheets("rapor").Copy
 ActiveWorkbook.SaveAs gelen
 ActiveWorkbook.Close
    Else
     Response = MsgBox("Bu dosya var üstüne yazılmasını istiyorsanız 'Evet'e tıklayın", vbYesNo)
     If Response = vbYes Then
    Sheets("rapor").Copy
 ActiveWorkbook.SaveAs gelen
 ActiveWorkbook.Close
     End If
   End If
   Application.DisplayAlerts = True
   Application.ScreenUpdating = True
MsgBox "İşlem bitti"
End Sub
 
Son düzenleme:
Kusura bakmayın O1 hüzresinde değil A1 Hücresine tarih yazılacak Siz Kodları istediğiniz hücreye göre ayarlayabilirsiniz.
 
Işte bu harika oldu. Nasıl teşekkür etem azdır. Emeğinize sağlık.
 
Ali bey aslında bir sorunum daha var. konu açtım. örnek dosya isteniyor. hazırladım ama gönderemedim. hücre rengine göre makro başka sayfadaki satırı silen makro ya ihtiyacım var. bu konuda da yardımcı olmanız mümkün mü acaba?
 
Geri
Üst