• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Döngü ile Son Dolu Satıra Kadar Satır Silme

  • Konbuyu başlatan Konbuyu başlatan ahmedummu
  • Başlangıç tarihi Başlangıç tarihi
örnek dosyanızda bu bölüm yok

Kod:
For gun1 = 1 To 17
say = Controls("textbox" & gun1).Value
say1 = say1 + say
Next gun1
ActiveCell.Offset(0, 3).Value = say1

birde kodları buraya yapıştırırken tablonun üstünde # bu işaret var onu tıkla ve oluşan
Kod:
 arasına yapıştır.
 
Değerler virgülsüz toplanacaksa bu tamam eğer ondalıklı toplanacaksa kodları değiştirmek gerekecek


kod:

Kod:
Private Sub CommandButton2_Click()

If Val(TextBox42.Value) <= 0 Then MsgBox ("Lütfen aylık vergi matrağı yuk"): Exit Sub


If TextBox33.Value = "" Or TextBox33.Value = 0 Then
MsgBox ("Lütfen öğretmenin ders saatlerini giriniz")
TextBox40.SetFocus
Else


ListBox1.RowSource = ""


Sheets("ÇİZELGE").Select
Range("b4").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop

Dim adi, gorevi As String, toplam As Integer

adi = TextBox39.Value
gorevi = TextBox40.Value

ActiveCell.Offset(0, 0).Value = adi
ActiveCell.Offset(0, 1).Value = gorevi
    
Dim i As Integer
For i = 1 To 33
ActiveCell.Offset(0, i + 1).Value = Controls("textbox" & i).Value
Next i


'Range("AI55").Value = WorksheetFunction.Sum(Range("AI4:AI54").Value)
'TextBox48.Value = Sheets("ÇİZELGE").Range("aı55").Value

If Not IsNumeric(ActiveCell.Offset(-1, -1)) Then 'bir sol ve bir üst hücrenin nümerik olup olmadığı kontrol ediliyor
ActiveCell.Offset(0, -1).Value = 1 'eğer nümerik değil ise aktif hücrenin bir soldaki hücrenin değeri 1 oluyor
Else
ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value + 1 'nümerik ise aktif hücrenin bir solundaki hücrenin değeri, aktif hücrenin bir solundaki ve bir üstündeki hücre değerinin 1 afzlasını alıyor
End If

sayfa = "ÇİZELGE" 'ActiveSheet.Name
son = Worksheets(sayfa).Cells(Rows.Count, 2).End(3).Row
Sheets(sayfa).Cells(son + 1, "AI").Value = WorksheetFunction.Sum(Sheets(sayfa).Range(Sheets(sayfa).Cells(2, "AI"), Sheets(sayfa).Cells(son, "AI")).Value)

'For x = 1 To 31
'Controls("textbox" & x).Value = ""
'Next x

[COLOR="Red"]Dim gun1 As Integer
For gun1 = 1 To 17
say = CDbl(Val(Controls("textbox" & gun1).Value))
say1 = say1 + say
Next gun1
MsgBox say1[/COLOR]



Dim a As Byte
For a = 1 To 4
Controls("commandbutton" & a).Enabled = False
Next a
CommandButton7.Enabled = False

'BURADA BORDROYA KAYIT YAPILIYOR.
Sheets("ÜBORD").Select
Range("b1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
Dim saat_ucreti_eski, saat_ucreti_yeni As Double, gelir_vergisi_orani, damga_vergisi_orani, sgk_kesintisi_devlet, sgk_kesintisi_kisi As Single

saat_ucreti_yeni = Sheets("SABİTLER").Range("b5").Value
saat_ucreti_eski = Sheets("SABİTLER").Range("b6").Value
gelir_vergisi_orani = Sheets("SABİTLER").Range("b7").Value
damga_vergisi_orani = Sheets("SABİTLER").Range("b8").Value
sgk_kesintisi_devlet = Sheets("SABİTLER").Range("b9").Value
sgk_kesintisi_kisi = Sheets("SABİTLER").Range("b10").Value

ActiveCell.Offset(0, 0).Value = adi
ActiveCell.Offset(0, 5).Value = toplam
ActiveCell.Offset(0, 6).Value = saat_ucreti_yeni
ActiveCell.Offset(0, 8).Value = toplam * saat_ucreti_yeni
'ActiveCell.Offset(0, 9).Value = Format(ActiveCell.Offset(0, 8).Value, "#,##,0") * Format(sgk_kesintisi_kisi, "#,##,0")
ActiveCell.Offset(0, 9).Value = ActiveCell.Offset(0, 8).Value * sgk_kesintisi_kisi
ActiveCell.Offset(0, 10).Value = WorksheetFunction.Sum(ActiveCell.Offset(0, 8).Value) + WorksheetFunction.Sum(ActiveCell.Offset(0, 9).Value)
'Format(TextBox125.Value, "#,###,0")
ActiveCell.Offset(0, 11).Value = ActiveCell.Offset(0, 10).Value * gelir_vergisi_orani
'AGİ HESAPLAMA
Dim agi1, agi2, agisonuc, asgari_ucret, kisi_agi_orani As Integer
asgari_ucret = Sheets("SABİTLER").Range("b12").Value
kisi_agi_orani = TextBox42.Value * 1
agi1 = asgari_ucret / 12
agi2 = agi1 * kisi_agi_orani
agisonuc = agi2 * 0.15 / 12
ActiveCell.Offset(0, 12).Value = ActiveCell.Offset(0, 11).Value - agisonuc
'AGİ HESAPLAMA SONU
ActiveCell.Offset(0, 13).Value = ActiveCell.Offset(0, 10).Value * damga_vergisi_orani
ActiveCell.Offset(0, 14).Value = ActiveCell.Offset(0, 10).Value * sgk_kesintisi_devlet
ActiveCell.Offset(0, 15).Value = ActiveCell.Offset(0, 10).Value * sgk_kesintisi_kisi
ActiveCell.Offset(0, 16).Value = WorksheetFunction.Sum(ActiveCell.Offset(0, 14).Value) + WorksheetFunction.Sum(ActiveCell.Offset(0, 15).Value)

Call temizle
Sheets("ÇİZELGE").Select

With ListBox1
.ColumnCount = 35
.ColumnWidths = "20;100;50;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;18;30"
.RowSource = "A4:AL" & Cells(Rows.Count, "B").End(xlUp).Row + 1
End With
End If


End Sub


Ondalık olursa toplama işlemleri kırmızı yerin yerine bunu kullan

Kod:
For gun1 = 1 To 17
If IsNumeric(Controls("textbox" & gun1).Value) = True Then
say = Round(Controls("textbox" & gun1).Value, 2) * 1
say1 = say1 + say
End If
Next gun1
MsgBox say1
 
Haklısınız nesneler biraz karışık. Yine aynı hatayı verdi.

Halit bey dosyayı commandbuttonları aktifleştirip yeniden gönderdim. Commandbuton2 deki kodlarda hata var. Hata veren her iki yeri de kesik çizgilerle belirttim.
-------------------
hata
------------------
Gibi. Sadece iki yerdeki kodlarda hata veriyor. Diğer taraflarda bir hata yok. Değişken tipi hatası.
 

Ekli dosyalar

Moderatör tarafında düzenlendi:
Haklısınız nesneler biraz karışık. Yine aynı hatayı verdi.

Halit bey dosyayı commandbuttonları aktifleştirip yeniden gönderdim. Commandbuton2 deki kodlarda hata var. Hata veren her iki yeri de kesik çizgilerle belirttim.
-------------------
hata
------------------
Gibi. Sadece iki yerdeki kodlarda hata veriyor. Diğer taraflarda bir hata yok. Değişken tipi hatası.

22 nolu mesajdaki kodu denedinizmi
 
Kod:
kisi_agi_orani = TextBox42.Value * 1

TextBox42 nesnesinde bir değer olmadığı için bu hatayı veriyor

aşağıdaki gibi deneyin

Kod:
kisi_agi_orani = val(TextBox42.Value) * 1

bunun içinde

Kod:
Dim gun1 As Byte, say, say1 As Integer
For gun1 = 1 To 17
say = Controls("textbox" & gun1).Value              'BU KOD BLOĞUNDA TYPE MİSTMATCH HATASI VERİYOR.
say1 = say1 + say
Next gun1
ActiveCell.Offset(0, 3).Value = say1

bununla değiştirin

Kod:
Dim gun1 As Byte, say, say1 As Integer
For gun1 = 1 To 17
say =val( Controls("textbox" & gun1).Value)              'BU KOD BLOĞUNDA TYPE MİSTMATCH HATASI VERİYOR.
say1 = say1 + say
Next gun1
ActiveCell.Offset(0, 3).Value = say1
 
Merhaba Halit bey.
Msgbox'a sonucu veriyor fakat

Dim gun1 As Integer
For gun1 = 1 To 17
say = CDbl(Val(Controls("textbox" & gun1).Value))
say1 = say1 + say
Next gun1
Sheets("ÜBORD").Cells(0.3).Value = say1

Yukarıdaki ve aşağıdaki kodlarda sonuç 0 çıkıyor.

Dim gun1 As Integer
For gun1 = 1 To 17
say = CDbl(Val(Controls("textbox" & gun1).Value))
say1 = say1 + say
Next gun1
Activecell.Offset(0,3).Value = say1
 
Merhaba Halit bey.
Msgbox'a sonucu veriyor fakat

Dim gun1 As Integer
For gun1 = 1 To 17
say = CDbl(Val(Controls("textbox" & gun1).Value))
say1 = say1 + say
Next gun1
Sheets("ÜBORD").Cells(0.3).Value = say1

Yukarıdaki ve aşağıdaki kodlarda sonuç 0 çıkıyor.

Dim gun1 As Integer
For gun1 = 1 To 17
say = CDbl(Val(Controls("textbox" & gun1).Value))
say1 = say1 + say
Next gun1
Activecell.Offset(0,3).Value = say1

bu yanlış kod

Kod:
Sheets("ÜBORD").Cells(0.3).Value = say1

ya böyle olmalı
Kod:
ActiveCell.Offset(0, 3).Value = say1

yada böyle olmalı karmızı satır değerini nasıl bulduracaksınız.

Kod:
Sheets("ÜBORD").Cells([COLOR="Red"]3[/COLOR], 5).Value = say1
 
Çok teşekkür ederim, Halit bey. Elinize sağlık.
 
Geri
Üst