• DİKKAT

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

word de dosya şeklinde otomatik kayıt

  • Konbuyu başlatan Konbuyu başlatan tukayf
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Eylül 2010
Mesajlar
879
Excel Vers. ve Dili
2016&2019&2021 TR
yılın 365 günü yaptığımız bir işlem var. 2 adet word dosyası üzerinde yapıyoruz bu işlemi. word dosyalarını hergün ya kopyalıyoruz ya da farklı keydetle yeni bir dosya açıyoruz. dosya içerisindeki şablonu ve tabloları makrolarla oluşturabilirim ancak dosya adının sırayla otomatik olarak verilmesi ve dosyanın sıralı şekilde oluşturulabilmesi gibi bi yöntem varmıdır.

saygılarımla.
 
ocak klasörü içerisinde 31 tane word dosyasının adı tarih sırasına göre gidecek. akıl akıldan üstündür hiç bir fikri olan yookmu. excel de yapılabiliyor ama word makroları biraz farklı.
 
ocak klasörü içerisinde 31 tane word dosyasının adı tarih sırasına göre gidecek. akıl akıldan üstündür hiç bir fikri olan yookmu. excel de yapılabiliyor ama word makroları biraz farklı.
Merhaba,
Bir kısayol tuşu atayarak kayıt işlemleri yaptırılabilir. Ancak kayıdın ne şekilde yapılacağı konusunda daha açıklayıcı bilgi vermelisiniz. Kaydedilen dosyaya günün tarihi mi atılacak, başka bir isim mi verilecek... Biraz daha açıklama yapmalısınız.
 
günün tarihi

hocam yapılacak dosyalara günün tarihi verilecek.
 
Merhaba,
Aşağıdaki kod istediğiniz işlemi gerçekleştirecektir.
Kod:
Sub Makro1()
Set ds = CreateObject("Scripting.FileSystemObject")
uzanti = "." & ds.GetExtensionName(ThisDocument.Name)
yol = ThisDocument.Path & "\" & Format(Now, "dd.mm.yyyy hh_mm") & uzanti
ThisDocument.SaveAs yol
End Sub
 
sayın hocam. kod harika. zihninize sağlık. hocam bu dosyanın 3-4 yerinde sabit günün tarihi var. bunları doysayı oluşturduğumuzda otomatik dosyanın adını ya da tarihini almasını sağlayabiliğr miyiz. örneğin dosya adı 01.02.2012 içinde bulunan 3-4 tarih kısmı da 01.02.2012 şeklinde.

örnek dosya ekledim. bakabilirseniz çok memnun olurum.
 
Son düzenleme:
Yer imi kullanarak bu istediklerinizi yapmak mümkün. Ancak tam olarak işlemin nasıl gerçekleşmesi gerektiğini ve yaptığınız işlemi açıklamanız gerekli. Örneğin:
Elinizde bir şablon dosyası var da tüm kayıtları bu dosya üzerinden mi gerçekleştiriyorsunuz?
Tarihler kaydetme esnasında mı metne eklenecek.
Tablodan almamı istediğiniz kısımlar sabit mi değişken mi? Neden tablodan almak istiyorsunuz, tabloya yazmaya harcayacağınız aynı vakti üst kısma da yazabilirsiniz?
Ne istediğinizi, amacınızı tam olarak anlatabilirseniz, ona göre bir şeyler düşünülebilir.
 
tarihlerin yerleri

hocam word belgelerinin içerisinde sarı arka fonlu yerlerde bulunan tarihlerin dosyanın adında geçen tarihlerle aynı olmasını istiyorum. sadece bunu istiyorum. diğerleri için biraz abartmışım word için.
 

Ekli dosyalar

Merhaba,
Tarihin ne şekilde alınacağı kafamda tam olarak şekillenmese de bir örnek hazırladım. Tarihin alınma şeklini kendi isteğinize göre değiştirebilirsiniz.
Yer imi kullanılarak hazırlandı. Yer imi tanımlamalarının dikkatli yapılması gerekli. Ayrıca yer imlerinden herhangi birinin silinmesi kodun hata vermesine sebep olacaktır.

YER İMİ OLUŞTURMA(Word 2007'de): İmleci sayfanın yer imi oluşturacağımız kısmına getiriyoruz ya da yer imi ekleyeceğimiz metni seçiyoruz. Ardından EKLE>Yer İşareti menüsünü açıyoruz. Daha önce tanımlanmamış bir yer işareti adı vererek kaydediyoruz.
Ben bu dosyada döngü kullandığım için yer işareti adını ardışık sıra ile verdim. Kodun daha kısa olması ve kolay yazılması için. (tarih1, tarih2, tarih3... gibi.) Bu hususa dikkat edin. Ayrıca yer işareti oluşturduğunuz kısmı silerseniz yer işareti de silinecektir. Buna da dikkat edin.

Kod:
Sub Makro2()
Set ds = CreateObject("Scripting.FileSystemObject")
uzanti = "." & ds.GetExtensionName(ThisDocument.Name)
tarih = Split(ActiveDocument.Name, ".doc")(0)
Application.ScreenUpdating = False
For x = 1 To 5

If x = 3 Then
ActiveDocument.Shapes(1).Select
    Selection.ShapeRange.TextFrame.TextRange.Select
    Selection.Collapse
Selection.GoTo What:=wdGoToBookmark, Name:="tarih" & x
Selection = tarih
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="tarih" & x
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
Selection.Collapse Direction:=wdCollapseEnd

Else:

Selection.GoTo What:=wdGoToBookmark, Name:="tarih" & x
If x = 5 Then
Tekrar:
Sor = InputBox("Tarih giriniz", "Tarih", tarih)
If IsDate(Sor) = False And Sor <> "" Then
    MsgBox "Girdiğiniz veri tarih formatında olmalı.", vbCritical, "TARİH HATASI"
    GoTo Tekrar
End If
Selection = Sor
Else
Selection = tarih
End If
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="tarih" & x
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
End If
Next
Selection.HomeKey Unit:=wdStory
Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

sayın hocam çok teşekkürler. zihninize sağlık. ancak bir sorum olacaktı. metin kutusu içerisinde önceki tarihi silmiyor yerine yenisini ekliyor.
 
hocam zihninize sağlık çok güzel oldu.
 
hocam güzel olmuş. yer imlerini anlayamadım. yapmaya çalıştım olmadı. sizin yaptığınız dosyayı kullanıyorum. ancak 2 sorum daha olacaktı. sayfa içerisindeki tarihi oluşturduktan sonra en alttaki tarihin bulunduğu sayfaya gidiyor imleç. bunu ilk sayfaya alabilir miyiz. 2. sorum yer imlerini anlayabilsem kendim yaapcaktım ama anlayamadım. ekran görüntüsünde gösterdiğim yerdeki tarihin 1-3 ya da daha fazla gün öncesini atmak istiyorum. bunu nasıl yapabiliriz. elimdeki tüm word kodları size ait hocam çok teşekkürler.
 

Ekli dosyalar

  • Adsız.jpg
    Adsız.jpg
    15.8 KB · Görüntüleme: 5
9 numaralı mesajımdaki kodu güncelledim. Yer imi oluşturmayla ilgili bir de açıklama yaptım.
 
teşekkürler

sayın üstadım harika oldu zihninize sağlık.

Sub Makro1()
Set ds = CreateObject("Scripting.FileSystemObject")
uzanti = "." & ds.GetExtensionName(ThisDocument.Name)
yol = ThisDocument.Path & "\" & Format(Now, "dd.mm.yyyy") & uzanti
ThisDocument.SaveAs yol
End Sub

bu kodu çalıştırdıkan sonra diğer yazdığınız (makro2) 2. makronun otomatik çalışması sağlanabilir mi.

bu haliyle de süper ama. bu dediğim de yapılabilirse eğer minnettar kalırım. saygılarımla.
 
Kodu aşağıdaki şekilde çalıştırırsanız istediğiniz olacaktır.
Kod:
Sub Makro1()
Set ds = CreateObject("Scripting.FileSystemObject")
uzanti = "." & ds.GetExtensionName(ThisDocument.Name)
yol = ThisDocument.Path & "\" & Format(Now, "dd.mm.yyyy") & uzanti
ThisDocument.SaveAs yol
Makro2
End Sub
 
tekrar tekrar teşekkürler hocam. çok güzel oldu. diğer dosyayı sizin kodlarınızı kopyalayarak ben yapayım dedim. ancak kod içesinde yer imlerini nasıl gösterdiğinizi çözemedim.
 
Son düzenleme:
tekrar tekrar teşekkürler hocam. çok güzel oldu. diğer dosyayı sizin kodlarınızı kopyalayarak ben yapayım dedim. ancak kod içesinde yer imlerini nasıl gösterdiğinizi çözemedim.
Yer imlerinin adları:
tarih1, tarih2, tarih3, tarih4, tarih5 Döngü:
for x = 1 to 5 yani x sırayla 1,2,3,4,5 değerlerini alıyor. tarih & x ifadesi yukarıda yazdığım yer imlerinin adları olmuş oluyor. Bu mantıkla incelerseniz daha rahat anlarsınız.
 
sayın hocam ekteki dosyayı kendim yapmaya çalıştım. ancak bu belgede tarih haricinde birde bilgi notu ibaresi var. kodu calıştıdığımda bilgi "NO"tu yazması gerekirken NO yazan yere otomatik numara veriyor. bilgi 45OTU gibi. sebebini bulamadım. belgede kırmızı alana yer imi tanımlaması yaptım ancak kodu calıştırdığımda başka biryere atıyor tarihi. bunu da cözemedim.
 

Ekli dosyalar

Son düzenleme:
Yol tanımını aşağıdakiyle değiştirin:
Kod:
yol = ThisDocument.Path & "\BİLGİ NOTU " & Format(Now, "dd.mm.yyyy") & uzanti
 
Geri
Üst