Tarihe bakarak klasörleri bulmak...

Katılım
4 Ocak 2008
Mesajlar
10
Excel Vers. ve Dili
excel 2002 türkçe
Merhabalar. Benim biraz zor bir sorum olacak...
c:/AHMET/2008/MART/15 MAR 08/A
c:/AHMET/2008/MART/15 MAR 08/B
yukarıdaki gibi iki adet klasör var.
Açık olan bir word dosyasını c:/ahmet/ klasörünün altındaki ilk "2008" klasörünü bugünün tarihine bakarak 2008 olduğunu algılamasını ve o klasörü açmasını daha sonra aynı şekilde bu klasörün içinde "MART" klasörünü bulmasını, aynı şekilde"15 MAR 08" klasörünü bulmasını istiyorum. daha sonra da "A" klasörü için o anki saatin 00:00 12:00 olduğunu algılayarak o klasörünü açmasını, "B" klasörü içinse 12:00 23:59 saatleri arasını kullanmasını istiyorum. en sonunda ise bahsi geçen açık word dökümanını, gelinen son klasöre kaydetmesini istiyorum.
kaydederken ise, yine o günün tarihine algılayarak, dosyanın adını "15 MART_mehmet_A_mustafa" olarak değiştirip kaydetmesini istiyorum.

mesela ahmet klasörünün altında 2001,2002,2003,2004,2005,2006
2007,2008, 2009 klasörleri mevcut. şimdi 2008 yılında olduğumuz için 2008 klasörünü açacak. buraya girdik.
ahmet/2008/ klasörünün altında da OCAK SUBAT MART NISAN... klasörleri mevcut. şimdi mart ayında olduğumuz için MART klasörünü açacak.

bu şekilde gittikten sonra söz konusu açık olan dosyayı en son açılan klasöre adını yukarda belirttiği formatta kaydedecek.

Yalnız makro tarihe, klasörlerin yaratılma tarihine göre bakmaması gerekiyor. çünkü klasörler daha önceden oluşturulmuş oluyor.

şimdiden teşekkürler.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Peki, bu işlemi Word'den mi Excel'den mi yürütmeyi düşünüyorsunuz? Yani yazılacak makro Word'de mi Excel'de mi çalışacak ?

Eğer Word'de çalışacaksa, konuyu yanlış yerde açmışsınız. Düzeltelim ...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,663
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ben soruyu word dosyası olarak yorumladım. Aşağıdaki kodu denermisiniz.

Kod:
Sub ARŞİVLE()
    On Error Resume Next
    Dim FSO As Object
    Dim Ana_Klasör, Dosya_Adı As String
    Dim Alt_Klasör_1, Alt_Klasör_2, Alt_Klasör_3 As String
 
    Ana_Klasör = "C:\AHMET"
 
    If Time >= "00:00" And Time <= "11:59" Then
    Alt_Klasör_1 = Ana_Klasör & "\" & Year(Date)
    Alt_Klasör_2 = Ana_Klasör & "\" & Year(Date) & "\" & Format(Date, "mmmm")
    Alt_Klasör_3 = Ana_Klasör & "\" & Year(Date) & "\" & Format(Date, "mmmm") & "\A"
    Dosya_Adı = Format(Date, "dd mmmm") & "_mehmet_A_mustafa" & ".doc"
    ElseIf Time >= "12:00" And Time <= "23:59" Then
    Alt_Klasör_1 = Ana_Klasör & "\" & Year(Date)
    Alt_Klasör_2 = Ana_Klasör & "\" & Year(Date) & "\" & Format(Date, "mmmm")
    Alt_Klasör_3 = Ana_Klasör & "\" & Year(Date) & "\" & Format(Date, "mmmm") & "\B"
    Dosya_Adı = Format(Date, "dd mmmm") & "_mehmet_B_mustafa" & ".doc"
    End If
 
    Set FSO = CreateObject("Scripting.FileSystemObject")
 
    If Not FSO.FolderExists(Ana_Klasör) Then
    FSO.CreateFolder (Ana_Klasör)
    End If
 
    If Not FSO.FolderExists(Alt_Klasör_1) Then
    FSO.CreateFolder (Alt_Klasör_1)
    End If
 
    If Not FSO.FolderExists(Alt_Klasör_2) Then
    FSO.CreateFolder (Alt_Klasör_2)
    End If
 
    If Not FSO.FolderExists(Alt_Klasör_3) Then
    FSO.CreateFolder (Alt_Klasör_3)
    End If
 
    ActiveDocument.SaveAs Filename:=Alt_Klasör_3 & Application.PathSeparator & Dosya_Adı
 
    Set FSO = Nothing
 
    MsgBox "Dosyanız arşivlenmiştir.", vbInformation
End Sub
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,663
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ferhat bey,

Ekledi&#287;im dosyay&#305; tekrar kontrol ettim. ALT+F11 tu&#351;lar&#305;na bas&#305;nca kodlar direk kar&#351;&#305;ma geldi.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Korhan bey,

Kodu, VBA Project Explorer'da Normal.dot'un kod mod&#252;l&#252;ne yazd&#305;ysan&#305;z, siz bo&#351; bir word belgesinde de Alt+F11 yapsan&#305;z koda ula&#351;&#305;rs&#305;n&#305;z ama biz sizin Word'un normal.dot'unu g&#246;remedi&#287;imiz i&#231;in kodlara da ula&#351;mam&#305;z m&#252;mk&#252;n de&#287;il.

Bende ayn&#305; hatay&#305; s&#305;k s&#305;k yap&#305;yorum. Sonra nerde bu kodlar diye ar&#305;yorum :)

Bir kontrol ederseniz sevinirim. Kodlar, Normal.dot'a m&#305; yoksa &#214;rnek.doc'a m&#305; yaz&#305;lm&#305;&#351; acaba ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,663
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Hakl&#305;s&#305;n&#305;z Ferhat bey hep excel dosyalar&#305; &#252;zerinde &#231;al&#305;&#351;&#305;nca normal olarak eklenen dosyan&#305;n i&#231;indeki kodunda dosya ile beraber gidece&#287;ini d&#252;&#351;&#252;nm&#252;&#351;t&#252;m.

&#220;stteki mesaj&#305;mdaki ekli dosyay&#305; kald&#305;r&#305;p kodu ekledim.

Uyar&#305;n&#305;z i&#231;in ayr&#305;ca te&#351;ekk&#252;r ederim.
 
Üst