Cara membuat kategori perbaris dengan VB

  1. 7 minggu lalu
    Di sunting 7 minggu lalu oleh mumuskh

    Salam para master, semoga selalu sehat dan dalam keberkahan
    mohon bantuannya.
    punya data tunggakan pembayar spp dengan table sebagai berikut
    no,nama, tgl awal ,tgl akhir, waktu, status pembayaran
    dalam status pembayaran sy buat dengan 5 kreteria kira2 giman ya cara supaya sekali tombol langsung ter update semua baris
    sy coba pakek seperti ini hanya sukses satu baris saja

    Sub test_1()
    a = Range("C2")
    b = Range("D2")
    c = b - a
    If c >= 15 Then
    Range("F2").Value = "N"
    ElseIf c > 45 Then
    Range("F2").Value = "D"
    ElseIf c > 90 Then
    Range("F2").Value = "DR"
    ElseIf c > 135 Then
    Range("F2").Value = "K"
    Else
    If c > 45 Then
    Range("F2").Value = "M"
    End If
    End Sub

    @mumuskh ...

    Sub Test()
        Dim lA As Long, lB As Long
        Dim lR As Long, lX As Long
        Dim sStatus As String
        
        lR = Sheet1.Cells(Rows.Count, "B").End(xlUp).Row
        
        If lR > 1 Then
            For lX = 2 To lR
                lA = Sheet1.Cells(lX, "C").Value
                lB = Sheet1.Cells(lX, "D").Value
                
                Select Case lB - lA
                    Case Is < 15: sStatus = "M"     '+-- < 15
                    Case Is < 46: sStatus = "N"     '+-- 15 ~ 45
                    Case Is < 91: sStatus = "D"     '+-- 46 ~ 90
                    Case Is < 136: sStatus = "DR"   '+-- 91 ~ 135
                    Case Else: sStatus = "K"        '+-- > 136
                End Select
                
                Sheet1.Cells(lX, "F").Value = sStatus
            Next
        End If
    End Sub

    Demikian.

  2. Caton

    Okt 19 Terverifikasi Indonesia + 19.288 Poin

    @mumuskh ...

    ... sy coba pakek seperti ini hanya sukses satu baris saja ...

    Benar, karena baris berikut :

    a = Range("C2")
    b = Range("D2")

    hanya akan mengambil nilai dari 1 baris saja, yakni baris ke-2 pada kolom C dan kolom D. Lakukan pengulangan untuk mengambil seluruh baris data yang ada.

    Demikian.

  3. Di sunting 7 minggu lalu oleh mumuskh

    terima kasih pencerahannya, coba otak atik, tidak sukses boleh kasih contoh mas @Caton

  4. Dan setiap baris bebeda2 isinya, dicoba blum sukses mohon pencerahannya

  5. Caton

    Okt 20 Terverifikasi Jawaban Terpilih Indonesia + 19.288 Poin

    @mumuskh ...

    Sub Test()
        Dim lA As Long, lB As Long
        Dim lR As Long, lX As Long
        Dim sStatus As String
        
        lR = Sheet1.Cells(Rows.Count, "B").End(xlUp).Row
        
        If lR > 1 Then
            For lX = 2 To lR
                lA = Sheet1.Cells(lX, "C").Value
                lB = Sheet1.Cells(lX, "D").Value
                
                Select Case lB - lA
                    Case Is < 15: sStatus = "M"     '+-- < 15
                    Case Is < 46: sStatus = "N"     '+-- 15 ~ 45
                    Case Is < 91: sStatus = "D"     '+-- 46 ~ 90
                    Case Is < 136: sStatus = "DR"   '+-- 91 ~ 135
                    Case Else: sStatus = "K"        '+-- > 136
                End Select
                
                Sheet1.Cells(lX, "F").Value = sStatus
            Next
        End If
    End Sub

    Demikian.

  6. terimakasih banyak, baru faham cara loping

 

atau Mendaftar untuk ikut berdiskusi!