Fatura Gİrme Makrom Problem Verİyor......

Katılım
13 Aralık 2006
Mesajlar
33
Excel Vers. ve Dili
excel 2002
Mrb ArkadaŞlar Bu Makroyu Bu Formdan Aldim Ve DÜzenlemeye ÇaliŞtim Ama BecerememİŞİm Kİ 2 Saat Boyunca GİrdİĞİm Faturalar BoŞa Gİttİ...sonra İnceledİm Kİ Örnek Dosyada Da GÖreceksİnİz Kayit 520 Alti Sayfasinda 538 Satira KaydetmİŞ 1.problem Bu İdİ
Gelelİm 2.ye Userformu ActiĞinizda Altta 520 Alti-520 ÜstÜ İŞaret Kutucuklarini GÖrÜrsÜnÜz Onlarin GİrdİĞİm Matraha GÖre Duyarli Olmasini Tamamen SaĞlayamadim Örnek 6,20 Yazinca 520 ÜstÜ İŞaretlİyor....baŞinizi AĞrittim Çok TeŞekkÜrederİm Şİmdİden
 
Katılım
13 Aralık 2006
Mesajlar
33
Excel Vers. ve Dili
excel 2002
ArkadaŞlar Cok Mu Zor Sordum Yoksa Cok Sacmami Sordum Bİr Satir Cevap Bİle YazilmamiŞ....
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
2. sorununuz için TextBox7_KeyPress olayını iptal edip Textbox7_chanege olayını aşağıdaki gibi düzenleyiniz.

Kod:
Private Sub TextBox7_Change()
If Val(TextBox7) > 520 Then
TextBox9 = "520 ÜSTÜ"
Else
TextBox9 = "520 ALTI"
End If
End Sub
 
Katılım
22 Kasım 2006
Mesajlar
15
Excel Vers. ve Dili
ms office 2003 pro (ing)
2.soru için

textbox7 için keypress olayını silip aşağıdaki kodu kullanırsanız sorun çözülüyor.

Private Sub TextBox7_Change()
Dim matrah As Currency
matrah = TextBox7.Value
If matrah > "520" Then
TextBox9 = "520 ÜSTÜ"
Else
TextBox9 = "520 ALTI"
End If
End Sub

xxcell arkadaşın verdiği kodda virgülden sonrası için hassas olmaz.

ilk soru için de sıralama makronuzdan kaynalanıyo.
357. satıra kadar seçmişsiniz. o yüzden hücreler dolu algılanmış olabilir.
Range("B2:L537").Select yerine range("b:l")yaparsanız sorun çözülür diye tahmin ediyorum.
bir de boş hücreyi bulmak için SpecialCells(xlCellTypeLastCell) özelliğini de kullanabilirsiniz..
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
1. sorununa gelince;

Commandbutton1_click olayında (Kaydetme olayın)
Kayıt edilecek satırı bulma yöntemin; uzun ve gereksiz bir yöntem.
Yani kayıt edilecek sayfada a2 hücresini seçip boş hücreyi bulana kadar,
bir aşşağıdaki satırı aktif edip o hücre dolu mu diye bakıyor.

sonrada

ActiveWindow.ScrollRow = 239
ActiveWindow.ScrollRow = 229
ActiveWindow.ScrollRow = 226
ActiveWindow.ScrollRow = 221
ActiveWindow.ScrollRow = 215
ActiveWindow.ScrollRow = 205
ActiveWindow.ScrollRow = 198
ActiveWindow.ScrollRow = 190
ActiveWindow.ScrollRow = 181
ActiveWindow.ScrollRow = 171
ActiveWindow.ScrollRow = 160
ActiveWindow.ScrollRow = 150
ActiveWindow.ScrollRow = 141
ActiveWindow.ScrollRow = 129
ActiveWindow.ScrollRow = 121
ActiveWindow.ScrollRow = 112
ActiveWindow.ScrollRow = 104
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 64
ActiveWindow.ScrollRow = 59
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 36
ActiveWindow.ScrollRow = 33
ActiveWindow.ScrollRow = 28
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 1

yukarıdaki satır kaydırma kodları yazılmış (Efekt izlenimi vermek istenmiş sanırım)

Range("B2:L537").Select

Sonra yukarıdaki seçim işlemi yaptırılıp (liste 537 den uzunda olabilir) sıralanmış.

Çözüm Önerim;
1. a sütununda son satırı bulmak için [a65536].end(xlup).row
işlemini kullan
2. sıralama yaptırma yada aralığındaki hatayı düzelt
 
Katılım
13 Aralık 2006
Mesajlar
33
Excel Vers. ve Dili
excel 2002
Ya ArkadaŞlar Cok TeŞekkÜr Ederİm Ama Olmadi Yada Ben Yapamdim
Sİze Zahmet Uygulayip Dosya Yi Bana Atarsaniz Daha İİ Olur Gİbİme Gelİyor....:
 
Katılım
22 Kasım 2006
Mesajlar
15
Excel Vers. ve Dili
ms office 2003 pro (ing)
kodlar biraz değişti ama istedikleriniz oluyor sanırım.
 
Son düzenleme:
Üst