Çalışma kitabının isminini makro ile değiştirme

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar...
Çalışma kitabının ismini makro kodu ile nasıl değiştirebiliriz?
Saygılar...
 

Korhan Ayhan

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

Eğer kapalı bir dosyanın adını değiştirmek istiyorsanız aşağıdaki linki inceleyiniz.

http://www.excel.web.tr/f48/klasordeki-dosyalar-excelden-adland-rabilirmiyiz-t43874.html


Örnek olarak aşağıdaki kod yapısınıda kullanabilirsiniz. (Adı değişecek dosya kapalı olmalıdır.)

Kod:
Option Explicit
 
Sub Dosya_Adı_Değiştir()
    Name ("C:\Documents and Settings\Admin\Desktop\Kitap1.xls") As ("C:\Documents and Settings\Admin\Desktop\Deneme.xls")
End Sub
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Korhan hocam,
Thisworkbook olarak olmuyor mu? Amacım çalışma kitabımın adının değiştirilmesini engellemek.
Açılış koduna veya kapanış koduna belirlediğim ismi yazacağım, böylelikle ismi kimse değiştiremeyecek.
Bu durumda ismi dosya açıkken değiştirmesi gerekiyor.
 
Katılım
26 Kasım 2008
Mesajlar
3
Excel Vers. ve Dili
EXCEL 2003
Merhba
modüle
auto_open
thisworkbookname="selami"
end sub
auto_close
thisworkbookname="selami"
end sub
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Kamil Bey,
Maalesef sonuç olumsuz. Siz de çalıştı mı? Ben mi bir yerde yanlışlık yaptım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
ThisWorkbook sınıfının "Name" özelliği sadece değer döndürebilir, değiştirilemez.
 
Katılım
26 Kasım 2008
Mesajlar
3
Excel Vers. ve Dili
EXCEL 2003
selam

Sub auto_open()
Range("a1").Value = ThisWorkbook.Name
Range("a1").Value = Mid(Range("a1").Value, 1, Len(Range("a1").Value) - 4)

'değişen hücre
Range("f2") = Range("f2") + 10
End Sub

've eklenen kod

Sub auto_close()
Range("a2") = Range("f2")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("A2").Value & ".xls"
Kill ThisWorkbook.Path & "\" & Range("a1") & ".xls"
End Sub
 
Son düzenleme:

Korhan Ayhan

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

Ekteki örnek dosyayı incelermisiniz. Dosyanın adı ÖRNEK siz dosyayı indirdikten sonra ismini değiştirip açmayı deneyin.

Not : Kodun içinde dosya yolunu kendi sisteminize göre değiştirmeyi unutmayınız.

Kod:
Option Explicit
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Replace(ThisWorkbook.Name, ".xls", "") <> "ÖRNEK" Then
    MsgBox "Dosyanız - ÖRNEK - adıyla kaydedilecektir !", vbInformation
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs ([COLOR=red]"C:\Documents and Settings\COST1\Desktop"[/COLOR] & "\ÖRNEK.xls")
    If Excel.Application.Windows.Count > 1 Then
    ThisWorkbook.Close 0
    Else
    ThisWorkbook.Save
    Application.Quit
    End If
    Application.DisplayAlerts = True
    End If
End Sub
 
Private Sub Workbook_Open()
    If Replace(ThisWorkbook.Name, ".xls", "") <> "ÖRNEK" Then
    MsgBox "Lütfen dosyanın adını - ÖRNEK - olarak değiştiriniz !" & vbCrLf & "Aksi halde dosyayı sağlıklı şekilde kullanamayacaksınız !", vbCritical
    If Excel.Application.Windows.Count > 1 Then
    ThisWorkbook.Close 0
    Else
    ThisWorkbook.Save
    Application.Quit
    End If
    End If
End Sub
 

Ekli dosyalar

Üst