VBA İle İlgili Bir Takım Sorular

Katılım
15 Şubat 2014
Mesajlar
4
Excel Vers. ve Dili
Microsoft Excel 2010
Altın Üyelik Bitiş Tarihi
21-02-2021
Öncelikle Merhabalar;

Ben Excel 'i Ufak Tefek Bir Şeyler Yaparak Öğrenmeye Çalışıyorum ( İşten Arta Kalan Zamanlarımda Hobi Olarak )

Youtube 'da Bir Video 'ya Bakarak Kendi Çapımda Bir Program Yapmaya Çalışıyorum. Ve Siz Üstadlardan Zaman Zaman Yardım Talep Edeceğim.

Soruma Geçecek Olursak ve Kabaca Çalışmamdan Bahsetmem Gerekirse;

VBA Kullanarak Bir UserForm Oluşturdum,. Bu UserForm İçerisinde MultiPage ve MultiPage İçerisinde de Çeşitli Textbox, Commandbutton vb. Şeyler Oluşturdum.

Oluşturduğum Commandbutton 'un Biri Şu Şekilde; TOPLA Adını Verdiğim Button İle Belirli Para Dökümlerini Toplatıp Bir Textbox 'a Yazdırıyorum. Buraya Kadar Her Şey Çok Güzel Fakat Elimde Yaklaşık Olarak 12 Adet Para Dökümü Var 200 TL 'den 5 TL 'ye Kadar 1 TL 'den de 0,01 Krş 'a Kadar

Bunların Hepsini Farklı Varyasyonlarla txtbox 'a yazdığım değer neyse karşısındaki küpür ile çarpıp tüm texboxa yazdığım değerlerin sonucunu versin.

Örneğin; 200*100, 100*100 , 50*100, 20*100 TOPLAM: 37.000 TL

Yazdığım Kod da şu şekilde ama sadece 2 küpürü toplatabiliyorum. Sonrasında değer toplama yapmıyor. Bir de Kasa Dökümü Yazan Yerdeki Tutar Arasında Nokta ve Kuruş Olursa Virgül Eklemesini İstiyorum Örneğin; 37.000,50 Gibi

Bu Arada Örnek Dosya Atamıyorum. Çünkü Excel Üzerinde Bir Çalışma Değil Tamamen VBA Tabanlı Çalışıyorum Herhangi Bir Sayfa Yok Sadece Kodlamadan İbaret Şimdiden Yardımlarınızı Bekliyorum Teşekkürler.. Bu Sadece Başlangıç Başka Sorular da Sorabilirim :)

Kod:
Private Sub cmdmervetopla_Click()
mervekagitparakasa200 = 200
mervekagitparakasa100 = 100
mervekagitparakasa50 = 50
mervekagitparakasa20 = 20
mervekagitparakasa10 = 10
mervekagitparakasa5 = 5
mervemadeniparakasa1 = 1
mervemadeniparakasa050 = 0.5
mervemadeniparakasa025 = 0.25
mervemadeniparakasa010 = 0.10
mervemadeniparakasa005 = 0.05
mervemadeniparakasa001 = 0.01

mervekasatopla(0) = mervekagitparakasa200 * Val(txtmervekasa200.Text)
mervekasatopla(1) = mervekagitparakasa100 * Val(txtmervekasa100.Text)
mervekasatopla(2) = mervekagitparakasa50 * Val(txtmervekasa50.Text)
mervekasatopla(3) = mervekagitparakasa20 * Val(txtmervekasa20.Text)
mervekasatopla(4) = mervekagitparakasa10 * Val(txtmervekasa200.Text)
mervekasatopla(5) = mervekagitparakasa5 * Val(txtmervekasa200.Text)
mervekasatopla(6) = mervemadeniparakasa1 * Val(txtmervekasa1.Text)
mervekasatopla(7) = mervemadeniparakasa050 * Val(txtmervekasa050.Text)
mervekasatopla(8) = mervemadeniparakasa025 * Val(txtmervekasa025.Text)
mervekasatopla(9) = mervemadeniparakasa010 * Val(txtmervekasa010.Text)
mervekasatopla(10) = mervemadeniparakasa005 * Val(txtmervekasa005.Text)
mervekasatopla(11) = mervemadeniparakasa001 * Val(txtmervekasa001.Text)

txtmervekasadokumu.Value = mervekasatopla(0)
End Sub
214561
 
Son düzenleme:

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
499
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Merhabalar, ekteki sizinkinden farklı işinizi görür sanırım.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
mervekasatopla(0) = mervekagitparakasa200 * Val(txtmervekasa200.Text)
mervekasatopla(1) = mervekagitparakasa100 * Val(txtmervekasa100.Text)

Satırlarında mervekasatopla dizisi yerine sabit değer kullanmayı dener misiniz? Örneğin "toplam" gibi:

toplam = 0
toplam = toplam + mervekagitparakasa200 * Val(txtmervekasa200.Text)
toplam = toplam + mervekagitparakasa100 * Val(txtmervekasa100.Text)
.
.
.
 
Katılım
15 Şubat 2014
Mesajlar
4
Excel Vers. ve Dili
Microsoft Excel 2010
Altın Üyelik Bitiş Tarihi
21-02-2021
Merhabalar, ekteki sizinkinden farklı işinizi görür sanırım.
Öncelikle Yorumunuz ve Örnek Dosyanız İçin Teşekkür Ederim, Dosyayı İnceledim. Ama Bana Biraz Kodlama Uzatmış Gibi Geldi :(

mervekasatopla(0) = mervekagitparakasa200 * Val(txtmervekasa200.Text)
mervekasatopla(1) = mervekagitparakasa100 * Val(txtmervekasa100.Text)

Satırlarında mervekasatopla dizisi yerine sabit değer kullanmayı dener misiniz? Örneğin "toplam" gibi:

toplam = 0
toplam = toplam + mervekagitparakasa200 * Val(txtmervekasa200.Text)
toplam = toplam + mervekagitparakasa100 * Val(txtmervekasa100.Text)
.
.
.
Dediğiniz Sabit Değeri Yapmamın Sebebi Birden Fazla Sayfa Olacak Oradaki Toplamları Karıştırmasın Diye. Şöyle Bir Şey Denedim. Şu An İstediğim Gibi Çalışıyor.

Kod:
mervekasatopla = 0

mervekasatopla = mervekasatopla + mervekagitparakasa200 * Val(txtmervekasa200.Text)
mervekasatopla = mervekasatopla + mervekagitparakasa100 * Val(txtmervekasa100.Text)
.
.
.
Yardımınız İçin Ayrıca Teşekkür Ederim ^_^ Şimdi Başka Bir Sorum Daha Olacak;

Kod:
İki Textbox 'da Yazan Değeri 3. Texbox'a nasıl Fark Olarak Yazdırabiliriz. 
Yani Kasa Dökümü 10.000 Diyelim, Kasa 10.000 'se Fark 0 
Kasa Dökümü 5.000 Ama Kasa 10.000 İse -5.000 Yazsın İstiyorum.
 
Katılım
15 Şubat 2014
Mesajlar
4
Excel Vers. ve Dili
Microsoft Excel 2010
Altın Üyelik Bitiş Tarihi
21-02-2021
Kod:
TextBox3 = TextBox2 - TextBox1
Teşekkürler Dediğinizi Yaptım. Ama Başında Kasa Dökümünün Altıysa ( Küçükse ) "-" Üstüyse Büyükse "+" İbaresini Nasıl Yazdırabilirim. Tamamdır Textbox İbarelerinin Yerlerini Ters Yazınca "-" İbaresini Yazdırmayı Başardım. Bir de Sayı Değerlerimin Arasına "." "," Koyabilirsem Örneğin "10,00" " 10.000" Gibi
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Teşekkürler Dediğinizi Yaptım. Ama Başında Kasa Dökümünün Altıysa ( Küçükse ) "-" Üstüyse Büyükse "+" İbaresini Nasıl Yazdırabilirim. Tamamdır Textbox İbarelerinin Yerlerini Ters Yazınca "-" İbaresini Yazdırmayı Başardım. Bir de Sayı Değerlerimin Arasına "." "," Koyabilirsem Örneğin "10,00" " 10.000" Gibi
TextBox ' ları duruma göre değiştirirsiniz..

Kod:
TextBox3 = Format(TextBox2 - TextBox1, "#,##0.00")
 
Katılım
15 Şubat 2014
Mesajlar
4
Excel Vers. ve Dili
Microsoft Excel 2010
Altın Üyelik Bitiş Tarihi
21-02-2021
TextBox ' ları duruma göre değiştirirsiniz..

Kod:
TextBox3 = Format(TextBox2 - TextBox1, "#,##0.00")
Çok Teşekkürler ^_^ Sayenizde Bir Şeyler Anlamaya ve Öğrenmeye Başlıyorum. İlk Defa Excel 'de VBA Kullanarak Bir Program Yapmayı Deniyorum. İnşællah Sayenizde Bitireceğim :)

Bu Arada Forum Kurallarında Okumadım Ama Bir Başlık Altında Soru Sormamda Bir Sakınca Yoktur Değil mi? Flood Yapmamaya Gayret Gösteriyorum. Eğer Bir Mahsuru Sakıncası Yoksa Bir Kaç Tane Daha Soruma Çare Bulmam Lazım. Bir Kaç Yol Denedim Ama Sonuç Hüsran :(
  • Kodlamada Bir Yerde Bir Hata Veriyor. Bir Textbox 'a Bir Değer Yazılması Lazım Bu Yazılmadığı İçin Kod Hata Veriyor. Bunu On Error GoTo İle Giderdim Ama Bu Sefer de O Hatayı Giderene Kadar Hiç Hata Vermiyor ve İşlemi de Yapmıyor. Ben İstiyorum ki Kullanıcı Nerede Hata Yaptığını Bir MsgBox İle Görsün O Hatayı Gidersin Sonra İşleme Devam Edebilsin yada Bitirsin. Ben Bir Kaç Denememde Başarısız Oldum Hata Mesajı Çıkıyor Ama Bir Döngü Olarak Hatayı Giderse Bile Mesaj Çıkıyor.
Kodum Şu Şekilde;

Kod:
On Error GoTo Hata

txtmervefark = Format(txtmerveanahtar - mervekasatopla, "#,##0.00 TL")

txtmervekasadokumu.Value = Format(mervekasatopla, "#,##0.00 TL")

Hata:

End Sub
  • Ben Bu VBA Programını Exceli Açmadan Açılacak Şekilde Kodladım. Ama İlk Açılışta Excel Açılıyor. Kapatıp Tekrar Açtığımda Program Açılıyor. Birincisi Bu Neyden Kaynaklanıyor. İkincisi Ben Kaydet Butonu Ekleyeceğim Eklediğim Butona Basıldığında Temizle Butonuna Basılmadıysa Tüm Kullanıcıların Girdiği Değer Kayıt Edilsin ve Açılışta Silinmeden Gelsin. Bu Mümkün müdür?

Bu da Açılışta Exceli Açmadan Programı Açtırma Kodu ( Ama 2. 'de Çalışıyor Neden )

Kod:
Private Sub Workbook_Open()
Application.Visible = False
KasaDokumu.Show
End Sub
Başka Sorularım da Olacak da Çekiniyorum Acaba Çok mu Oluyorum Diye
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba ,
Forum üzerinde istediğiniz kadar soru sorabilirsiniz , bildiğim kadarıyla böyle bir kısıtlama yok , o yüzden çekinmenizi gerektirecek bir durumda yok.


"Sorduğunuz için görüşüm"
Vba ile ilgili bir takım sorular adında bir başlik açıp farklı sorular sormanız forum amacı dışına çıkar. Sorularınizı içeriklerine göre farklı başlıklara ayırarak , önce forum üzerinde arama yapıp , yok ise forum üzerinde yeni konu açarak gerektiginde örnek dosya ekleyerek sormanız , daha sonrasinda ayni sorunla karşılaşan arkadaşlarımız içinde kaynak olur.

Yinede olması gerekeni ve forum kurallarını , moderatörlerimiz tarafindan gerekli görürler ise uyarılarda bulunacaklardir.

İyi çalışmalar.
 
Son düzenleme:
Üst