tüm kapalı kitaplara aynı makroyu uygulamak

Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
merhaba;
çalışma kitabımda modül içinde bir makro çalışmakta.
ben bu makroyu, herhangi bir klasör içindeki farklı çalışma kitaplarına nasıl uygularım. klasörde 300 adet çalışma sayfası var. ve herişlemi farklı klasörlere de uygulamam gerekecek.
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Anladığım kadarıyla, makronuzu, oluşturduğunuz çalışma kitabından farklı belgelerde de çalıştırmak istiyorsunuz. Eğer doğru anlamışsam, makroda geçen excelbelgesi adının yerine "thisworkbook" ifadesini kullanabilirsiniz. Bu şekilde, herhangi bir excel belgesine bağımlı kalmamış olursunuz.
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
yapmak istediğim kısaca;
modül içindeki makroyu diğer çalışma kitaplarınada aynı şekilde uyarlamak.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Şöyle bir şey yapabilirsiniz;

Diyelim ki TestProc isminde bir kodunuz var ve siz bunu herhangibir Excel dosyasında kullanmak istiyorsunuz.

İlk önce yeni bir Excel dosyası açıp, ilgili kodu bir modüle yerleştirip bu dosyayı XLA olarak kaydediyorsunuz. (Excel'in varsayılan kaydettiği yeri değiştirmeyin.) Yani, bir eklenti dosyası oluşturuyorsunuz ...

Örneğin, aşağıdaki kodu bir dosyaya yerleştirin ve dosyanın adını da MyXLA.xla olarak adlandırın, kaydettikten sonra Excel'i kapatın.

Kod:
Sub TestProc()
    MsgBox "Merhaba !"
End Sub
Şimdi herhangibir Excel dosyası açın ve bir modül ekledikten sonra, aşağıdaki kod yapıştırıp .... çalıştırın.

Kod:
Sub Test()
    Application.Run ("MyXLA.xla!TestProc")
End Sub
Umarım, anlaşılmayan bir şey yoktur ....
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
ilk denemeden sonra gelişmelerle birlikte buraya aktaracağım

teşekkürler
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
merhaba;
teşekkürler syn haluk verdiğiniz bilgilerde bir anlaşmazlık yok. fakat ben bu işi yapamadım.
hata veriyor.
kullandığın kodlar aşağıda
Const strTxtFile As String = "C:\Program Files\Adobe\strTxt.txt"
Sub Auto_Open()
If Dir(strTxtFile) <> Empty Then
ThisWorkbook.IsAddin = False
Else
ThisWorkbook.IsAddin = True
MsgBox "Kayitli kullanici degilsiniz....", vbCritical, "Kullanicinin dikkatine !"
ThisWorkbook.Close SaveChanges:=False
End If
End Sub
bunu bir .xla olarak kay&#305;t ediyorum
sorun yok

Sub Test()
Application.Run ("MyXLA.xla!TestProc")
End Sub

kodunda myxla.xla k&#305;sm&#305;n&#305;da de&#287;i&#351;tirip dosya ad&#305;n&#305; veriyorum. ve de TestProc u da "auto_open" olarak de&#287;i&#351;tiriyorum. :(

hata veren kod sat&#305;r&#305;
If Dir(strTxtFile) <> Empty Then
buna g&#246;re yapmam gereken nedir.
yada yanl&#305;&#351; yapt&#305;&#287;&#305;m yer neresi
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
Sub Test()
Application.Run ("MyXLA.xla!TestProc")
End Sub

kodunda myxla.xla kısmınıda değiştirip dosya adını veriyorum. ve de TestProc u da "auto_open" olarak değiştiriyorum. :(

hata veren kod satırı
If Dir(strTxtFile) <> Empty Then
buna göre yapmam gereken nedir.
yada yanlış yaptığım yer neresi
makro bilen arkadaşlar bana bu konuda yardımcı olabilir mi ?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Say&#305;n birol_mumcu ThisWorkbook.IsAddin = True yazd&#305;&#287;&#305;n&#305;z zaman eklenti a&#231;&#305;lacak ve Auto_Open prosed&#252;r&#252; otomatik &#231;al&#305;&#351;acakt&#305;r sizin ayr&#305;yeten Run ile &#231;al&#305;&#351;t&#305;rman&#305;za gerek yok.

E&#287;er Run ile bir prosed&#252;r &#231;al&#305;&#351;t&#305;rmak istiyorsan&#305;z Excel taraf&#305;ndan tan&#305;mlanm&#305;&#351; bir prosed&#252;r ad&#305; yerine ba&#351;ka bir isim verdi&#287;iniz prosed&#252;r&#252; &#231;al&#305;&#351;t&#305;r&#305;n&#305;z. &#199;&#252;nk&#252; Auto_Open, Auto_Close gibi prosed&#252;r isimleri zaten Excel taraf&#305;ndan tan&#305;mlanm&#305;&#351; ve otomatik &#231;al&#305;&#351;an prosed&#252;rlerdir.
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
Sayın birol_mumcu ThisWorkbook.IsAddin = True yazdığınız zaman eklenti açılacak ve Auto_Open prosedürü otomatik çalışacaktır sizin ayrıyeten Run ile çalıştırmanıza gerek yok.
kod içindeki ThisWorkbook.IsAddin = False satırındaki değişikliği yaptım
çalışıyor yanlız sadece "book1.xla" dosyasında.
eğer ilgili dosya yoksa, "kayıtlı kullanıcı değilsiniz uyarısı" geliyor.
buraya kadar tamam
şimdi bu işlemi tüm kitaplara nasıl uygulayacağız ?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bir başka eklenti daha oluşturun. Bu eklenti her zaman eklenmiş olsun. Bu eklenti içerisine yazacağınız kod ile diğer eklentinin çalıştırılıp çalıştırılmayacağını kontrol edebilirsiniz.
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
anlamad&#305;m.
&#246;rneklermisin veya ba&#351;ka bir eklentiyi &#231;al&#305;&#351;t&#305;racak 2. eklentiyi syn haluk'un anlatt&#305;&#287;&#305; gibi mi yapaca&#287;&#305;z. (yukar&#305;daki sorumda anlatmaya &#231;al&#305;&#351;t&#305;&#287;&#305;m &#351;ekilde bir &#246;rnek olursa daha iyi anlayaca&#287;&#305;m)
akl&#305;ma gelmi&#351;ken hemen soray&#305;m. daha sonra 2. eklentiyi de &#231;al&#305;&#351;t&#305;racak bir 3. eklenti gerekecek mi?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Anladığım kadarıyla yapmak istediğiniz; uygulamanızın yetkisiz kişiler tarafından kullanılmasını engellemek. Eğer kullanıcı yetkili ise eklenti aktif olacak değilse aktif olmayacak.
Doğru anlamış mıyım? Yada siz detaylı açıklarsanız daha iyi olur.
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
evet do&#287;ru anlam&#305;&#351;s&#305;n&#305;z.
yapmaya &#231;al&#305;&#351;t&#305;&#287;&#305;m;
kullan&#305;lan &#231;al&#305;&#351;ma sayfas&#305; bir bilgisayarda kay&#305;tl&#305; olacak.
e&#287;er di&#287;er bilgisayara kopyalan&#305;rsa &#231;al&#305;&#351;mayacak.
bunu istememin sebebi giri&#351;yap&#305;l&#305;rken veya kay&#305;t al&#305;n&#305;rken ayn&#305; dosya &#252;zerinden &#231;al&#305;&#351;ma yap&#305;ls&#305;n.
bu i&#351;lem dosyan&#305;n kopyalanmas&#305;n&#305; da engelleyecek.
iste&#287;im bu ama benim makrolar konusunda &#231;ok fazla bilgim yok. bu y&#252;zden yapamad&#305;m. (ke&#351;ke form&#252;lle halledebilsem ama yok) :)
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
Const strTxtFile As String = "C:\Program Files\Adobe\strTxt.txt"
Sub Auto_Open()
If Dir(strTxtFile) <> Empty Then
ThisWorkbook.IsAddin = False
Else
ThisWorkbook.IsAddin = True
MsgBox "Kayitli kullanici degilsiniz....", vbCritical, "Kullanicinin dikkatine !"
ThisWorkbook.Close SaveChanges:=False
End If
End Sub
bu kodlar anlad&#305;&#287;&#305;m kadar&#305;yla "&#351;u dosya yoksa uyar&#305; ver ve dosyay&#305; a&#231;ma" anlam&#305;nda
e&#287;er kopya al&#305;n&#305;p ba&#351;ka bilgisayarda &#231;al&#305;&#351;t&#305;rl&#305;rsa, bilgisayarda makro g&#252;venli&#287;i "y&#252;ksek"se bu &#231;al&#305;&#351;mayacak ve dosya a&#231;&#305;lacak.
di&#287;er yandan ise eklenti olarak haz&#305;rlanacak dosya da ara&#231;lar>eklenilerden aktif hale getirlmesi gerek.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
O zaman hiç eklentiyle falan uğraşmaya gerek yok. Uygulamanızın çalıştığı bilgisayarın HD Seri Nosunu kontrol edelim, eğer listemizde yoksa uygulama çalışmasın.
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
O zaman hiç eklentiyle falan uğraşmaya gerek yok. Uygulamanızın çalıştığı bilgisayarın HD Seri Nosunu kontrol edelim, eğer listemizde yoksa uygulama çalışmasın.
diyelimki belge kopyalandı ve başka bilgisayara kayıt edildi (ki belge önemli ve gizli kesinlikle kopyalanmamalı)
makro güvenliği yüksekse de çalışabilecekmi
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Dosyanızın tüm sayfalarını öncelikle gizlemeliyiz.
Makro seviyesi düşük olan bilgisayarda uygulama çalışacak ve HDD seri no kontrol edecek doğruysa uygulamanız çalışacak sayfalar gösterilecek, yanlışsa çalışmayacak
Makro seviyesi yüksekse sayfalar gizli olduğundan zaten kullanıcı sayfalara ulaşamayacak.
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
s&#246;yldi&#287;iniz &#351;ekilde de olablir.
 

Korhan Ayhan

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

Konuyla ilgili örnek bir dosya hazırladım. İlk olarak dosyayı makroları etkinleştirerek açın. Ekrana mesaj ile sizin HDD numaranız gelecektir. Bu numarayı bir yere yazın. Daha sonra dosyayı makroları etkinleştirmeden açın. HDD numaranızı koddaki aşağıdaki kısıma yazın. VBA penceresine uzun ve hatırlayacağınız bir şifre vererek dosyanızı bu haliyle kaydedip kapatın. Artık VBA şifreniz çözülene kadar dosyanız başka bilgisayarda çalışmayacaktır. Umarım faydası olur.

Kod:
If Seri_No <> [color=blue][B]1234567890[/B][/color] Then

Not : Dosyanın VBA şifresi ++COST_CONTROL++
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Burda bir&#351;eye dikkatinizi &#231;ekmek istedim.Hdd numaras&#305;na g&#246;re g&#252;venlik ayar&#305; yapmak sadece ba&#351;ka bilgisayar i&#231;in de&#287;il sizin bilgisayar&#305;n&#305;z i&#231;inde engelleme yapabilir.&#199;&#252;nk&#252; e&#287;er format atarsan&#305;z HDD numaras&#305; de&#287;i&#351;ecektir.B&#246;ylece kendi bilgisayar&#305;n&#305;zdada dosya eri&#351;imi engellenmi&#351; olacakt&#305;r.Bunun yerien CPU nosu ile &#231;al&#305;&#351;&#305;lmas&#305; bence biraz daha sa&#287;lam olabilir.
 
Üst