Seçilen kişinin satırında ilgili yerlere kayıt

Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhaba;

Ekteki dosyamda, userformda da izah ettiğim gibi;

ComboBox ile seçilen kişiye ait tahsilat tarih ve miktarının, H sütunundan itibaren aranarak ilgili yerelere kaydı hususundaki yardımlarınıza şimdiden teşekkür ederim.

Selamlarımla.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı deneyiniz.
Userform'u çalıştırınız.Eğer numara yoksa en alta yeni kayıt ekliyor.:cool:
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Sayın orion2;

Çok güzel olmuş. Teşekkürler.

Koddaki :
If sut < 9 Then sut = 8
&#304;baresi: 9. s&#252;tun bo&#351; ise 8 ve 9. s&#252;tuna kay&#305;t yap anlam&#305;nda de&#287;il mi?

(Sormam&#305;n sebebi , 130 s&#252;tundan olu&#351;an &#231;al&#305;&#351;mamda, &#246;deme bilgileri 60 k&#252;sur say&#305;dan sonra ba&#351;l&#305;yor)

&#199;ok te&#351;ekk&#252;rler.

Selam ve sayg&#305;lar&#305;mla.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın orion2;

Çok güzel olmuş. Teşekkürler.

Koddaki :
If sut < 9 Then sut = 8
İbaresi: 9. sütun boş ise 8 ve 9. sütuna kayıt yap anlamında değil mi?

(Sormamın sebebi , 130 sütundan oluşan çalışmamda, ödeme bilgileri 60 küsur sayıdan sonra başlıyor)

Çok teşekkürler.

Selam ve saygılarımla.
Aslında dikkat ederseniz ben sut değişkenini 1 artıttırrak elde etmiştim.
Bu yüzden 9ncu değilde 8nci sütunun boş olup olmadığı sorgulanıyor.
İyi çalışmalar.:cool:
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Orion2;

&#214;rne&#287;inizi &#231;al&#305;&#351;mama uyarlad&#305;&#287;&#305;mda a&#351;a&#287;&#305;daki kodu yazd&#305;m.

Private Sub CommandButton72_Click()
Dim sat As Long, k As Range, sut As Integer
If ComboBox13.Value = "" Then
MsgBox "Bir numara giriniz..!!", vbCritical, "D&#304;KKAT"
ComboBox13.SetFocus
Exit Sub
End If
Set k = Range("A3:A65536").Find(ComboBox13.Value, , xlValues, xlWhole)
If k Is Nothing Then
sat = Cells(65536, "A").End(xlUp).Row + 1
If sat >= 65534 Then
MsgBox "Sat&#305;r doldu ba&#351;ka kay&#305;t yapamazs&#305;n&#305;z..!!", vbCritical, "Dikkat"
Exit Sub
End If
Cells(sat, "A").Value = ComboBox13.Value

Cells(sat, "BT").Value = CDate(TextBox14.Value)
Cells(sat, "BS").Value = CDbl(TextBox1.Value)
Else
sut = Cells(k.Row, 256).End(xlToLeft).Column + 1
If sut < 72 Then sut = 71
If sut >= 255 Then
MsgBox "S&#252;tun doldu.Kay&#305;t Yap&#305;lmad&#305;..", vbCritical, "Dikkat"
Exit Sub
End If
Cells(k.Row, "A").Value = ComboBox13.Value

Cells(k.Row, sut).Value = CDate(TextBox14.Value)
Cells(k.Row, sut + 1).Value = CDbl(TextBox1.Value)
End If
MsgBox "Kay&#305;t Girildi..!!", vbOKOnly, "Kay&#305;t"
End Sub
&#199;al&#305;&#351;mamda, ilk &#246;deme mitar&#305; BS, ilk &#246;deme tarihi BT s&#252;tununda ba&#351;lay&#305;p, son &#246;deme (23. &#246;deme miktar&#305;) DK s&#252;tununda, son &#246;deme tarihi ise, DL s&#252;tununda bitiyor.
Fakat bundan sonra DM ve devam&#305; s&#252;tunlarda da ba&#351;ka veriler var.

Yukar&#305;daki kodda, BS s&#252;tununa de&#287;il de, verilerin bitti&#287;i DS s&#252;tunundan itibaren yaz&#305;yor.

Yani anlad&#305;&#287;&#305;m kadar&#305;yla, son dolu h&#252;creden itibaren yaz&#305;yor.

&#214;deme tarih ve miktarlar&#305;n&#305;, &#231;al&#305;&#351;mam&#305;n sonuna alsam mesele kalmayacak. Fakat, di&#287;er formlara verilerin geli&#351;i vs. bu 1-2 g&#252;n&#252;m&#252; al&#305;r ve &#231;al&#305;&#351;mam allak bullak olur.

Yukar&#305;daki kod, BS s&#252;tunundan enson DL s&#252;tunu nazara al&#305;nacak &#351;ekilde revize edilebilirse &#231;ok hayra ge&#231;ecek.

Bir de bu kod ile yeni kay&#305;t yapmayaca&#287;&#305;m. Sadece kay&#305;tl&#305; verilerle i&#351;lem yapaca&#287;&#305;m. Yeni kay&#305;t i&#231;in yaz&#305;lan ibareler &#231;&#305;kart&#305;labilir.

&#199;al&#305;&#351;mam&#305;n &#246;rne&#287;ini ekleyemiyorum. Hacmi &#231;ok b&#252;y&#252;k.

&#350;imdiden &#231;ok te&#351;ekk&#252;r ederim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Orion2;
Örneğinizi çalışmama uyarladığımda aşağıdaki kodu yazdım.
Çalışmamda, ilk ödeme mitarı BS, ilk ödeme tarihi BT sütununda başlayıp, son ödeme (23. ödeme miktarı) DK sütununda, son ödeme tarihi ise, DL sütununda bitiyor.
Fakat bundan sonra DM ve devamı sütunlarda da başka veriler var.

Yukarıdaki kodda, BS sütununa değil de, verilerin bittiği DS sütunundan itibaren yazıyor.

Yani anladığım kadarıyla, son dolu hücreden itibaren yazıyor.

Ödeme tarih ve miktarlarını, çalışmamın sonuna alsam mesele kalmayacak. Fakat, diğer formlara verilerin gelişi vs. bu 1-2 günümü alır ve çalışmam allak bullak olur.

Yukarıdaki kod, BS sütunundan enson DL sütunu nazara alınacak şekilde revize edilebilirse çok hayra geçecek.

Bir de bu kod ile yeni kayıt yapmayacağım. Sadece kayıtlı verilerle işlem yapacağım. Yeni kayıt için yazılan ibareler çıkartılabilir.

Çalışmamın örneğini ekleyemiyorum. Hacmi çok büyük.

Şimdiden çok teşekkür ederim.
aşağıdaki dodları kullanabilirsiniz.
Ancak burada en son DJ sütununa kadar miktar ve tarih girebileceksiniz.
DJ ve DK sütunlarınada veri girilecek olursa sut değişkeni için yazılan kod sonucu doğru dödürmeyip 1 olarak dödürüyor.
Aşağıdaki gibi kullanınız.:cool:
Kod:
Private Sub CommandButton72_Click()
Dim sat As Long, k As Range, sut As Integer
If ComboBox13.Value = "" Then
MsgBox "Bir numara giriniz..!!", vbCritical, "DİKKAT"
ComboBox13.SetFocus
Exit Sub
End If
Set k = Range("A3:A65536").Find(ComboBox13.Value, , xlValues, xlWhole)
If k Is Nothing Then
sat = Cells(65536, "A").End(xlUp).Row + 1
If sat >= 65534 Then
MsgBox "Satır doldu başka kayıt yapamazsınız..!!", vbCritical, "Dikkat"
Exit Sub
End If
Cells(sat, "A").Value = ComboBox13.Value

Cells(sat, "BT").Value = CDate(TextBox14.Value)
Cells(sat, "BS").Value = CDbl(TextBox1.Value)
Else
sut = Cells(k.Row, 115).End(xlToLeft).Column + 1
If sut < 72 Then sut = 71
If sut >= 114 Then
MsgBox "Sütun doldu.Kayıt Yapılmadı..", vbCritical, "Dikkat"
Exit Sub
End If
Cells(k.Row, "A").Value = ComboBox13.Value

Cells(k.Row, sut).Value = CDate(TextBox14.Value)
Cells(k.Row, sut + 1).Value = CDbl(TextBox1.Value)
End If
MsgBox "Kayıt Girildi..!!", vbOKOnly, "Kayıt"
End Sub
 
Üst