ytl eklentisini ilgili yere yapıştıracak makro yazılabilir mi?

Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
selamlar;

öncelikle örnek uygulamalar bölümünde yayımlanan ytl çalışmasında emeği geçen herkese şükranlarımı sunuyorum. elinize, emeğinize sağlık sayın üstadlarım.

eklentiyi bilgisayarıma kaydettim ve çok sayıda çalışmamda kullandım. ancak benim şöyle bir sorum olacak: excelde yaptığım ufak tefek amatörce çalışmalar var ve zaman zaman bu çalışmaları başka meslektaşlarıma gönderiyorum kullanmaları için. ytl eklentisi onların bilgisayarında kayıtlı olmadığı için onu da göndermem gerekiyor, ve daha da kötüsü her seferinde eklentinin nereye nasıl yapıştırılacağını tarif etmek zorunda kalıyorum.

değerli üstadlarım, bu işin bir kolay yolu yokmudur?? yada bu konuda bir makro yazılamaz mı?? yani excel çalışma kitabında bir butona bastığımızda eklentiyi alsa ve addins klasörüne kopyalasa, eklentiler menüsünden eklentiyi aktif hale getirse, sonra da exceli kendiliğinden yeniden başlatsa ve eklenti aktif olsa.. mümkün mü acaba böyle bir şey??:???::???::???: olumlu veya olumsuz değerli fikirlerinizi bekliyorum.. (Makro dışında bir çözümde olabilir)

küçük bir sorum daha olacak. excel çalışma kitabımı başka bir bilgisayara kopyaladığım zaman, diğer bilgisayarda ytl eklentisi kayıtlı olmasına rağmen yazıyla formulünün olduğu hücrede yazıyla teriminin önüne eklentinin diğer bilgisayardaki adresini getiriyor ve yazıyla formulu çalışmıyor. bunu nasıl giderebiliriz?

saygılar..
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Ytl eklentisi kullanmak yerine bilgisayarınızı YTL yi tanır hale getirmek daha doğru değil mi?
Bunu yapmak için:
Başlat/Denetim Masası/ Bölge ve Dil Seçenekleri'ni çalıştırın
Açılan pencerede özelleştiri tıklatın
Parabirimi tabını açın
Para birimi için istediğinizi yazın.

Böylelikle eklentiyle kayıtla kopyalamayla uğraşmak zorunda kalmazsınız. Bunu yaparak bilgisayarınızdaki tüm para biçimlerini YTL ye uygum hale getirmiiş oldunuz.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. alpi;

öncelikle ilginiz ve cevabınız için teşekkürler. ancak tam olarak istediğim bu değil. yani parabirimini ytl ye çevirmekten ziyade benim istediğim "yazıyla" formulunu kullanmak. yani rakamları yazıya çeviren formul.
a1 hücresi 15,40 ise b1 hücresine =yazıyla(a1) yazıyoruz ve
onbeş YTL kırk YKR değerini alıyor. bu işi gören ytl eklentisi ile ilgili sormuştum sorumu? bir şeyler yapabilir miyiz acaba? :)
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Aşağıdaki kod ile bir eklenti dosyasını eklenti olarak yükleyebilirsiniz.

Eklenti dosyası bu kodları çalıştırdığınız dosyanın bulunduğu dizinde olmalıdır.

Kod:
Sub EklentiKopyala()
'Eklenti dosyası bu kodları çalıştırdığınız dosyanın bulunduğu dizinde olmalıdır.
    Dim EklentiAdı As String
    Dim Yol As String
    EklentiAdı = "YTL" ' Eklenti adı ne ise buaraya onu yazınız
    Yol = Environ("APPDATA") & "\Microsoft\Addins\" & EklentiAdı & ".xla"
    FileCopy ThisWorkbook.Path & "\" & EklentiAdı & ".xla", Yol
    AddIns.Add ThisWorkbook.Path & "\" & EklentiAdı & ".xla", True
    AddIns(EklentiAdı).Installed = True
End Sub
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. alpi;

cevabınız için teşekkürler.. ancak maalesef şuan işyerindeyim ve bulunduğum bilgisayarda office yüklü olmadığı için kodlarınızı deneyemiyorum. bu kodlar sadece eklentiyi addins klasörüne kopyalamaya mı yarıyor yoksa eklentinin aktif hale gelmesini de sağlıyor mu? çünkü kopyalandıktan sonra araçlar/eklentiler menüsünden eklentiyi aktif hale getirmemiz gerekiyor :(:(
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bu kodlar tam istediğiniz işlemleri gerçekleştiriyor
Ancak açğıdakilere dikkat etmelisiniz.
1-Eklenti dosyası bu kodları çalıştırdığınız dosyanın bulunduğu dizinde olmalıdır.
2-Eklentinin adını kod içerisinde belirtmelisiniz.(dosya uzantısını yazmayınız.Yani dosyanızın adı YTL.xla ise siz sadece YTL yazınız.)
3-Kodu çalıştırınız.
Bunları yaptıktan sonra eklenti dosyası ilgili yere kopyalanacak ve Excel e eklenti olarak yüklenecektir size sadece kullanmak kalıyor.
 
Son düzenleme:
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. alpi;

henüz deneyemedim kodları ama eğer dediğiniz gibi ise mükemmel. yani tam olarak ihtiyacımı karşılayacak. :hihoho: :hihoho: :hihoho:

peki ikinci sorum ile ilgili bir fikriniz var mı?
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bu sorununuza benzer bir problemle bende karşılaştım fakat çözüm üretemedim. Aslında bunu ayrı bir başlıkla sormak daha iyi olur.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
YTL eklentisini, eklenti olarak değil de. Gönderdiğiniz dosyalarda kullanıcı tanımlı fonksiyon olarak kodları, Module'nin içinde yer alsa olmuyor mu?

Bu kodları bir module'nin içine koyun.

Function Yaziyla(Sayi#)
Dim virgul2 As String
Dim cevap As String
Dim yazi As String
Dim Say As String
Dim uclu As String
Dim virgul As Integer
Dim o As Integer
Dim b As Integer
Dim x As Integer
Dim i As Integer
Dim y As Integer
Dim YTL As String
Dim YKR As String

If Sayi# = 0 Then Yaziyla = "Sıfır": Exit Function

ReDim birler$(10), onlar$(10), basamak$(5)

birler$(0) = "": birler$(1) = "Bir"
birler$(2) = "İki": birler$(3) = "Üç"
birler$(4) = "Dört": birler$(5) = "Beş"
birler$(6) = "Altı": birler$(7) = "Yedi"
birler$(8) = "Sekiz": birler$(9) = "Dokuz"

onlar$(0) = "": onlar$(1) = "On"
onlar$(2) = "Yirmi": onlar$(3) = "Otuz"
onlar$(4) = "Kırk": onlar$(5) = "Elli"
onlar$(6) = "Altmış": onlar$(7) = "Yetmiş"
onlar$(8) = "Seksen": onlar$(9) = "Doksan"

basamak$(1) = "": basamak$(2) = "Bin "
basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
basamak$(5) = "Trilyon "

virgul2 = ""
cevap = ""

YTL = ".-YTL., "
YKR = ".-YKR."

Say = Str$(Sayi#)
virgul = InStr(1, Say, ".")
If virgul Then


If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"

Say = Right$(Say, Len(Say) - virgul)
GoSub cevir

If cevap = "" Then YKR = ""
virgul2 = cevap + YKR
cevap = ""

Say = Str$(Sayi#)
Say = Left$(Say, virgul - 1)
End If
GoSub cevir
If cevap = "" Then YTL = ""
Yaziyla = cevap + YTL + virgul2
Exit Function

cevir:
x = Len(Say)
Say = String$(3 - (x - Int(x / 3) * 3), 48) + Say
x = Len(Say) / 3
For i = 1 To x
uclu = Mid$(Say, Len(Say) - i * 3 + 1, 3)
y = Val(Mid$(uclu, 1, 1))
o = Val(Mid$(uclu, 2, 1))
b = Val(Mid$(uclu, 3, 1))

yazi = ""
If y <> 0 Then
If y > 1 Then yazi = birler$(y)
yazi = yazi + "Y&#252;z "
End If

yazi = yazi + onlar$(o) + birler$(b)

If yazi <> "" Then
If LCase(yazi) = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If Sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function



=Yaziyla(H&#252;cre Adresi yada Say&#305;)
 
Son düzenleme:
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. yurttaş;

ne demek istediğiniz tam olarak anlayamadım, lütfen biraz daha açarmısınız? üstelik ytl eklentisini forumdan .xla uzantılı aldığımız için kodlarını görme şansımız var mı bilmiyorum. veya her dosyaya bu şekilde modulle eklemekten daha kolay bir işlem olması mümkün değil mi??

değerli üstadlarım konuyla ilgili fikirlerinizi bekliyorum... sanırım bu herkesin başına bela olacak bir sorun... :(:(
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Yukarıda verdiğim kodlar, kullanıcı tanımlı bir fonksiyona aittir. Eklentinin kodları aşağı yukarı buna benzerdir. Bu fonksiyon sayıları YTL ve YKR olarak yazıya dönüştürür.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. yurttaş;

verdiğiniz kodlar ve bilgiler için çok teşekkürler. dediğiniz gibi bu kodları çalışma kitabı ile birlikte saklamak ve göndermek oldukça mantıklı. :mrgreen: :mrgreen:
ikinci bir iş yapmaya gerek yok. :D kodlarınızı çalışmalarımda kullanacağım.

ancak yine de ytl eklentisi ile ilgili sorun bende merak uyandırdı. şöylece özetlemek istiyorum, yazıyla formulunu kullandığım çalışma kitabını başka bir bilgisayarda açtığımda formulun olduğu satırda ytl eklentisinin asıl bilgisayardaki dosya yolu görünüyor ve formul çalışmıyor. yani her iki bilgisayarda da ytl eklentisi olmasına rağmen böyle bir hata oluşuyor. bunun bir çözümü yok mudur acaba? değerli üstadlarımızın bir fikri vardır elbet konu hakkında.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
İşlem görmeyen bilgisayarda eklenti dosyasının yolunu tekrar tanıtılması gerekir. Herhalde. Denemek lazım.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
İşlem görmeyen bilgisayarda eklenti dosyasının yolunu tekrar tanıtılması gerekir. Herhalde. Denemek lazım.
sn. yurttaş;

evet aynen dediğiniz gibi tekrar tanıtıldığında yani ilgili hücreye formul tekrar yazıldığında sorun yok, çalışıyor. bu ikinci işlemi yapmadan çalıştırmak mümkünmü acaba diye düşünmüştüm. :roll: :roll: çünkü çok fazla sayıda formullu hücre var çalışma kitabında.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
:hey:konuyla ilgili fikri olan yok mu? :hey:
Demek ki; konu bitmemi&#351; daha.

ThisWorkbook'a a&#351;a&#287;&#305;daki kodlar&#305; koyarak deneyin.

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Calculate
End Sub

Veya;

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Sheets("Sayfa1").Select
Range("a1").Select
ActiveCell.FormulaR1C1 = ""
Range("b2").Select
End Sub
 
Son düzenleme:
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. yurttaş;

söylediğiniz deneyeceğim. ancak evimde sadece 1 tane bilgisayar olduğu için şuanda deneyemiyorum. :D:D yarın bunu deneyeceğim.
 
Üst