Vİsual Basİc FormÜllerİnİ Nasil Kayit Ederİz

Katılım
26 Mart 2007
Mesajlar
18
Excel Vers. ve Dili
office 2003 türkçe
Arkadaşlar merhabalar. Bu makro için internetten visual basic kodları kayıtlı bir proğram indirdim. içinde bir sürü kayıtlı kod var. Mesala Kdv hesaplama formülü var, o formülü kopyalıyorum visual basic düzenleyicisine yapıştırıyorum. Sayaf1 e düğme oluşturyorum ona kaydettiğim makroyu tanımlıyorum ama çalışmıyor. Sanırım bir yerde hata yapıyorum. Sizden isteğim bu hazırdaki formülleri nasıl kayıt ederiz veya nasıl çalıştırırız. Yardımcı olursanız sevinirim. Excell kurtları. :yardim:
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
VisualBasic kodlar Excel'deki makro kodlarıyla çok benzer olsa da bazı ayrılıklar vardır.Bunları tespit etmek gerekiyor öncelikler.Kodları yollarsanız bakar söylemeye çelışırız.VisaulBasic'te mesela Userform yerine sadece Form, commandbutton yerine sadece command kullanılır.Bu çerçevede bir göz atın ya da kodları yollayın.
 
Katılım
26 Mart 2007
Mesajlar
18
Excel Vers. ve Dili
office 2003 türkçe
VisualBasic kodlar Excel'deki makro kodlarıyla çok benzer olsa da bazı ayrılıklar vardır.Bunları tespit etmek gerekiyor öncelikler.Kodları yollarsanız bakar söylemeye çelışırız.VisaulBasic'te mesela Userform yerine sadece Form, commandbutton yerine sadece command kullanılır.Bu çerçevede bir göz atın ya da kodları yollayın.

FORÜLLERİ GÖNDERİYORUM İNCELEYİP YARDIMCI OLURSAN SEVİNİRİM.
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
sayın eymen42 size aşağıdaki fonksiyonları öneriyorum
forumda kullanıcı tanımlı fonksiyonlarla ilgili örnekler olması lazım inceleyiniz
saygı ve selamlar

Kod:
'verilen tutardan kdv yi düşer kdv matrahını bulur
Function dkdvhesapla(deger As Double, oran As Integer)
If oran > 100 Then
dkdvhesapla = "kdv 100 olamaz"
Else
dkdvhesapla = Round(((deger / (100 + (oran)))) * 100, 2)
End If
End Function

'verilen tutara kdv yi ekler toplamı bulur
Function tkdvhesapla(deger As Double, oran As Integer)
If oran > 100 Then
tkdvhesapla = "kdv 100 olamaz"
Else
tkdvhesapla = Round(deger + ((deger * oran / 100)), 2)
End If
End Function
 
Katılım
26 Mart 2007
Mesajlar
18
Excel Vers. ve Dili
office 2003 türkçe
TeŞekkÜrler Abdİ ArkadaŞim. SaĞolasin
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
sayın eymen42,
İlk mesajımda da dediğim gibi o kodlarda kullanılan kontrolün ismi command1.Sizin sayfaya eklediğiniz kotrolin ismi ise commandbutton1.Bu kontrolğn ismini command olarak değiştirdiğinizde sorunsuz çalışıyor.Kodlar aşağıdaki gibi değil mi?

Private Sub Command1_Click()
Dim a, sonuc As Integer
a = InputBox("ÜCRETİ GİRİNİZ")
If a > 0 Then
sonuc = a * 1.18
MsgBox sonuc
End If
End Sub
 
Katılım
26 Mart 2007
Mesajlar
18
Excel Vers. ve Dili
office 2003 türkçe
Bedersu KardeŞbu GÖndermİŞ OduĞum FormÜllerİ Nasil Uygulayacam Veya Nasil ÇaliŞtiracam Ben Onu Beceremİyorum. Kaydedemİyorum. O FormÜllerİ Kopyalayip Nereye YAPIŞTIRACAĞIM bana bu konuda yardımcı olursan sevinirim. Bir sürü formül var yalnız bunların hiç birini ben faaliyete geçiremiyorum. bun konuda yardımcı olmanı istiyorum
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Kardeş,

sub ile başlayan kodları VBA sayfasında oluşturacağın bir module içerisine yapıştıracaksın.Daha sonra da bu kodları çalıştırmak istediğin sayfaya bir buton oluşturarak sağ tıklayıp makro ata diyeceksin.Çıkan listeden istediğin mokronun ismini bulup tamam deyince o butone her basmanda makro çalışır.Mesela aşağıdaki kodlar sayfa silinirken silinsin mi uyarısını göstermez.

Sub Sil()
Application.DisplayAlerts = False
ActiveSheet.Delete
End Sub

'Çıkışta Eski Haline Getirir.Yani uyarılar aktif hale gelir
Sub Auto_Close()
Application.DisplayAlerts = True
End Sub

Private Sub ile başlayanları ise yerine göre ya VBA sayfasındaki Thisworkbook'un ya da sayfaların (Sayfa1-Sayfa2...) içine yazacaksın.Bunun için sayfa ismini VBA sayfasında çift tıklaman yeterlidir.Sağ tarafta açılan beyaz sayfaya yapıştıracaksın.Kodun şekline göre sayfada yapılan her işlemde,her tıklamada ya da sayfa her açıldığında kodlar çalışır.Mesela aşağıdaki kodlarda kitap açıldığında 10 sn süreyle mesaj gözükür.

Private Sub Workbook_Open()
Dim WshShell
Dim intText As Integer
Set WshShell = CreateObject("WScript.Shell")
intText = WshShell.Popup("Diese ''MsgBox'' wird nach 10 sec geschlossen", _
10, "''MsgBox'' für 10 sec (©)2003 KMB", vbSystemModal)
End Sub

Bir diğer Private Sub kullanışı ise CommandButton,Listbox,Userform gibi kontrollerde bulunur.Bunu zaten ilk satırdan anlarsınız.Bu kodları da ismi geçen formun ya da butonun içerisine yazmanız gerekir.Aşağıdaki ilk kod Userform içerisine yazılacak.Bunun için önce VBA sayfasında bir Userform oluşturmanız daha sonra da Userfrom'u çift tıklamanız gerekir.Ama standart oluşturulan Userformun ismi "Userform1" dir.Bu yüzden ya aşağıdaki kodları Userform1_Initialize olarak ya da Userform1'in ismini Userform olarak değiştirmeniz gerekir.İlk kodlarda Userform _Initialize yani farkedilir edilmez,açılır açılmaz kodlar çalışır.
İkinci kodlarda ise Userform ya da herhangi bir çalışma sayfasına konulan CommandButton1 ismindeki düğme tıklanınca çalışır.

Private Sub UserForm_Initialize()
ListBox1.RowSource = "A1:A" & Cells(65536, 1).End(xlUp).Row
ListBox1.ListStyle = fmListStyleOption
ListBox1.MultiSelect = fmMultiSelectMulti
End Sub
'
Private Sub CommandButton1_Click()
ListBox2.Clear
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.List(i)
End If
Next
End Sub
 
Üst