ToHaNS
Altın Üye
- Katılım
- 29 Haziran 2015
- Mesajlar
- 29
- Excel Vers. ve Dili
- Office 365 TR
- Altın Üyelik Bitiş Tarihi
- 21-04-2026
Merhaba arkadaşlar,
Kodlarımda bir mantık ve sıralama hatası var muhtemelen ama bir türlü hatamı çözemedim. Rica etsem kodları gözden geçirebilir misiniz.
Kodları tekrar tekrar kopyala yapıştır yapmayayım karmaşık bir yazım olmasın diye GoTo kullanmak istedim ama tam yapamadım. If - ElseIf - End if - GoTo arasında sıkıştım kaldım
Sorun yaşadığım kısım alttaki kısım Ödemeyi normal yapıyor hesaplamalar sutunlar satırlar doğru ama tahsilat yaptıramıyorum ödeme döngüsünü devam ettiriyor
Kodlarımda bir mantık ve sıralama hatası var muhtemelen ama bir türlü hatamı çözemedim. Rica etsem kodları gözden geçirebilir misiniz.
Kodları tekrar tekrar kopyala yapıştır yapmayayım karmaşık bir yazım olmasın diye GoTo kullanmak istedim ama tam yapamadım. If - ElseIf - End if - GoTo arasında sıkıştım kaldım
Kod:
Private Sub BtnKaydet_Click()
Dim Sor, tur As String, Sayfa As Worksheet, ss As Long, Form As Object, bul As Variant
If TextTarih.Value = Empty Then
MsgBox "Lütfen bir tarih giriniz", vbExclamation + vbOKOnly, "DİKKAT!..."
TextTarih.SetFocus
ElseIf TextCariAdi.Value = Empty Then
MsgBox "Lütfen kayıtlı bir cari seçiniz.", vbExclamation + vbOKOnly, "DİKKAT!..."
TextCariAdi.SetFocus
ElseIf TextTutar.Value = Empty Then
MsgBox "Lütfen bir tutar giriniz.", vbExclamation + vbOKOnly, "DİKKAT!..."
TextTutar.SetFocus
ElseIf ComboParaBirimi.ListIndex = -1 Then
MsgBox "Lütfen bir para birimi seçiniz.", vbExclamation + vbOKOnly, "DİKKAT!..."
ElseIf ComboIslemKasasi.ListIndex = -1 Then
MsgBox "Lütfen bir kasa seçiniz.", vbExclamation + vbOKOnly, "DİKKAT!..."
ElseIf TextAciklama.Value = Empty Then
MsgBox "Lütfen bir açıklama belirtiniz.", vbExclamation + vbOKOnly, "DİKKAT!..."
TextAciklama.SetFocus
Else
Set Form = FrmOdemeTahsilatYap
Set Sayfa = Sheets("KasaHareket")
ss = Sayfa.Cells(Rows.Count, 1).End(xlUp).Row + 1
If Form.islem = "ÖDEME" Then tur = "Ödeme"
If Form.islem = "TAHSİLAT" Then tur = "Tahsilat"
Sor = MsgBox(tur & " işlemi kaydedilecek. Onaylıyor musunuz?", vbQuestion + vbYesNo + vbDefaultButton1, "İŞLEM ONAY...")
If Sor = vbNo Then Exit Sub
If Form.islem = "ÖDEME" Then Sheets("Ayarlar").Range("I13").Value = Sheets("Ayarlar").Range("I13").Value + 1
Sayfa.Cells(ss, 1).Value = Sheets("Ayarlar").Range("I13").Value
Sayfa.Cells(ss, 7).Value = "ÖDEME"
Sheets("CariHareket").Range("A" & Sheets("CariHareket").Cells(Rows.Count, "A").End(xlUp).Row + 1) = Sheets("Ayarlar").Range("I13").Value
Sheets("CariHareket").Range("C" & Sheets("CariHareket").Cells(Rows.Count, "C").End(xlUp).Row + 1) = "ÖDEME"
For Each bul In Sheets("Cariler").Range("A2:O" & Sheets("Cariler").Cells(Rows.Count, "A").End(xlUp).Row)
If bul.Value = TextCariKodu.Value Then
bul(1, 11).Value = CDbl(bul(1, 11).Value) + CDbl(TextTutar.Value)
bul(1, 13).Value = CDbl(bul(1, 12).Value) - CDbl(bul(1, 11).Value)
End If
Next bul
MsgBox "Ödeme olarak işlem yaptım", vbOKOnly ' kod satırı kontrol amaçlı yazılmıştır
GoTo devam
'End If
If Form.islem = "TAHSİLAT" Then Sheets("Ayarlar").Range("I12").Value = Sheets("Ayarlar").Range("I12").Value + 1
Sayfa.Cells(ss, 1).Value = Sheets("Ayarlar").Range("I12").Value
Sayfa.Cells(ss, 7).Value = "TAHSİLAT"
Sheets("CariHareket").Range("A" & Sheets("CariHareket").Cells(Rows.Count, "A").End(xlUp).Row + 1) = Sheets("Ayarlar").Range("I12").Value
Sheets("CariHareket").Range("C" & Sheets("CariHareket").Cells(Rows.Count, "C").End(xlUp).Row + 1) = "TAHSİLAT"
For Each bul In Sheets("Cariler").Range("A2:O" & Sheets("Cariler").Cells(Rows.Count, "A").End(xlUp).Row)
If bul.Value = TextCariKodu.Value Then
bul(1, 12).Value = CDbl(bul(1, 12).Text) + CDbl(TextTutar.Text)
bul(1, 13).Value = CDbl(bul(1, 12).Text) - CDbl(bul(1, 11).Text)
End If
Next bul
MsgBox "tahsilat olarak işlem yaptım", vbOKOnly ' kod satırı kontrol amaçlı yazılmıştır
GoTo devam
'End If
devam:
Sayfa.Cells(ss, 2).Value = Format(CDate(TextTarih.Value), "dd.mm.yyyy")
Sayfa.Cells(ss, 3).Value = TextCariKodu.Value
Sayfa.Cells(ss, 4).Value = TextCariAdi.Value
Sayfa.Cells(ss, 5).Value = TextCariAdUnvan.Value
Sayfa.Cells(ss, 6).Value = ComboIslemKasasi.Value
Sayfa.Cells(ss, 8).Value = CDbl(TextTutar.Text)
Sayfa.Cells(ss, 9).Value = ComboParaBirimi.Value
Sayfa.Cells(ss, 10).Value = UCase(Replace(Replace(TextAciklama.Value, "ı", "I"), "i", "İ"))
Set Sayfa = Sheets("CariHareket")
ss = Sayfa.Cells(Rows.Count, "B").End(xlUp).Row + 1
Sayfa.Cells(ss, 2).Value = Format(CDate(TextTarih.Value), "dd.mm.yyyy")
Sayfa.Cells(ss, 4).Value = TextCariKodu.Value
Sayfa.Cells(ss, 5).Value = TextCariAdi.Value
Sayfa.Cells(ss, 6).Value = TextCariAdUnvan.Value
Sayfa.Cells(ss, 7).Value = CDbl(TextTutar.Text)
Sayfa.Cells(ss, 8).Value = CDbl(0)
Sayfa.Cells(ss, 9).Value = CDbl(0)
Sayfa.Cells(ss, 10).Value = CDbl(TextTutar.Text)
Sayfa.Cells(ss, 11).Value = ComboParaBirimi.Value
Sayfa.Cells(ss, 12).Value = ComboIslemKasasi.Value
Sayfa.Cells(ss, 13).Value = UCase(Replace(Replace(TextAciklama.Value, "ı", "I"), "i", "İ"))
MsgBox tur & " kaydetme işlemi başarılı.", vbInformation + vbOKOnly, "BAŞARILI KAYIT..."
CommandButton4_Click ' Temizlik yap
End If
End Sub
Sorun yaşadığım kısım alttaki kısım Ödemeyi normal yapıyor hesaplamalar sutunlar satırlar doğru ama tahsilat yaptıramıyorum ödeme döngüsünü devam ettiriyor
Kod:
If Form.islem = "ÖDEME" Then Sheets("Ayarlar").Range("I13").Value = Sheets("Ayarlar").Range("I13").Value + 1
Sayfa.Cells(ss, 1).Value = Sheets("Ayarlar").Range("I13").Value
Sayfa.Cells(ss, 7).Value = "ÖDEME"
Sheets("CariHareket").Range("A" & Sheets("CariHareket").Cells(Rows.Count, "A").End(xlUp).Row + 1) = Sheets("Ayarlar").Range("I13").Value
Sheets("CariHareket").Range("C" & Sheets("CariHareket").Cells(Rows.Count, "C").End(xlUp).Row + 1) = "ÖDEME"
For Each bul In Sheets("Cariler").Range("A2:O" & Sheets("Cariler").Cells(Rows.Count, "A").End(xlUp).Row)
If bul.Value = TextCariKodu.Value Then
bul(1, 11).Value = CDbl(bul(1, 11).Value) + CDbl(TextTutar.Value)
bul(1, 13).Value = CDbl(bul(1, 12).Value) - CDbl(bul(1, 11).Value)
End If
Next bul
MsgBox "Ödeme olarak işlem yaptım", vbOKOnly ' kod satırı kontrol amaçlı yazılmıştır
GoTo devam
'End If
If Form.islem = "TAHSİLAT" Then Sheets("Ayarlar").Range("I12").Value = Sheets("Ayarlar").Range("I12").Value + 1
Sayfa.Cells(ss, 1).Value = Sheets("Ayarlar").Range("I12").Value
Sayfa.Cells(ss, 7).Value = "TAHSİLAT"
Sheets("CariHareket").Range("A" & Sheets("CariHareket").Cells(Rows.Count, "A").End(xlUp).Row + 1) = Sheets("Ayarlar").Range("I12").Value
Sheets("CariHareket").Range("C" & Sheets("CariHareket").Cells(Rows.Count, "C").End(xlUp).Row + 1) = "TAHSİLAT"
For Each bul In Sheets("Cariler").Range("A2:O" & Sheets("Cariler").Cells(Rows.Count, "A").End(xlUp).Row)
If bul.Value = TextCariKodu.Value Then
bul(1, 12).Value = CDbl(bul(1, 12).Text) + CDbl(TextTutar.Text)
bul(1, 13).Value = CDbl(bul(1, 12).Text) - CDbl(bul(1, 11).Text)
End If
Next bul
MsgBox "tahsilat olarak işlem yaptım", vbOKOnly ' kod satırı kontrol amaçlı yazılmıştır
GoTo devam
'End If
devam:
Sayfa.Cells(ss, 2).Value = Format(CDate(TextTarih.Value), "dd.mm.yyyy")
Sayfa.Cells(ss, 3).Value = TextCariKodu.Value
Sayfa.Cells(ss, 4).Value = TextCariAdi.Value
Sayfa.Cells(ss, 5).Value = TextCariAdUnvan.Value
Sayfa.Cells(ss, 6).Value = ComboIslemKasasi.Value
Sayfa.Cells(ss, 8).Value = CDbl(TextTutar.Text)
Sayfa.Cells(ss, 9).Value = ComboParaBirimi.Value
Sayfa.Cells(ss, 10).Value = UCase(Replace(Replace(TextAciklama.Value, "ı", "I"), "i", "İ"))
Set Sayfa = Sheets("CariHareket")
ss = Sayfa.Cells(Rows.Count, "B").End(xlUp).Row + 1
Sayfa.Cells(ss, 2).Value = Format(CDate(TextTarih.Value), "dd.mm.yyyy")
Sayfa.Cells(ss, 4).Value = TextCariKodu.Value
Sayfa.Cells(ss, 5).Value = TextCariAdi.Value
Sayfa.Cells(ss, 6).Value = TextCariAdUnvan.Value
Sayfa.Cells(ss, 7).Value = CDbl(TextTutar.Text)
Sayfa.Cells(ss, 8).Value = CDbl(0)
Sayfa.Cells(ss, 9).Value = CDbl(0)
Sayfa.Cells(ss, 10).Value = CDbl(TextTutar.Text)
Sayfa.Cells(ss, 11).Value = ComboParaBirimi.Value
Sayfa.Cells(ss, 12).Value = ComboIslemKasasi.Value
Sayfa.Cells(ss, 13).Value = UCase(Replace(Replace(TextAciklama.Value, "ı", "I"), "i", "İ"))