update data dengan id number tidak sukses

  1. 2 tahun lalu

    Mohon pencerahannya para master.
    Update data antar sheet ketika pakek number tidak sukses, mohon pencerahannya
    contoh seperti file terlampir

    Private Sub CommandButton1_Click()
    Dim id As Integer
    Dim form2 As String
    Dim Source As Worksheet, Target As Worksheet
    Dim ItsAMatch As Boolean
    Dim i As Integer

    Set Source = ThisWorkbook.Worksheets("Sheet1")
    Set Target = ThisWorkbook.Worksheets("Sheet2")
    id = Source.Range("B2")
    update = Source.Range("C2")

    Do Until IsEmpty(Target.Cells(2 + i, 2))
    If Target.Cells(2 + i, 3) = id Then
    ItsAMatch = True
    Target.Cells(2 + i, 7) = update
    Exit Do
    End If

    If ItsAMatch = False Then
    MsgBox "Data tidak ditemuka"
    End If

    Set Source = Nothing
    Set Target = Nothing

    End Sub

  2. Caton

    20 Oct 2022 Terverifikasi Indonesia + 20.102 Poin

    @mumuskh ...

    Pada script yang Anda buat (sesuai yang ada pada file yang Anda lampirkan),

    ...
    Do Until IsEmpty(Target.Cells(2 + i, 2))
        If Target.Cells(2 + i, 3) = Name Then
            ItsAMatch = True
            Target.Cells(2 + i, 7) = Problem '
            Exit Do
        End If
    ...

    akan menghasilkan masalah antara lain :

    1 — Error Do without loop.
    Statement DO pada pengulangan yang Anda buat di atas, harus ditutup dengan statement LOOP! Coba pelajari dulu bentuk-bentuk pengulangan di sini .

    2 — Terjadinya Infinite loop.
    Proses pengulangan akan berlangsung secara terus menerus tanpa henti (infinite loop) dikarenakan masalah pada baris :

    Do Until IsEmpty(Target.Cells(2 + i, 2))

    Pada baris script tersebut, kondisi :

    IsEmpty(Target.Cells(2 + i, 2))

    tidak pernah terpenuhi (selalu FALSE), dikarenakan nilai variabel i tidak pernah berubah, selalu bernilai 0 (nol), sehingga posisi aktual baris data tetap pada baris ke-2 kolom B (sel B2)! Seharusnya, lakukan penambahan terhadap nilai variabel i!

    3 — Script pada blok :

    If Target.Cells(2 + i, 3) = Name Then
        ItsAMatch = True
        Target.Cells(2 + i, 7) = Problem '
        Exit Do
    End If

    tidak akan pernah tereksekusi dikarenakan variabel Name dikomparasikan dengan nilai yang berbeda, karena statement Target.Cells(2 + i, 3) akan selalu mengambil nilai dari kolom ke-3 (kolom C) yang bertipe Double (numerik), sedangkan variabel Name sendiri bertipe String (alphanumerik).

    Coba usahakan perbaiki dahulu kesalahan-kesalahan di atas. Nanti didiskusikan kembali.

    Demikian.

  3. Terima kasih pencerahannya mas @Caton , semoga mas @Caton sekeluarga diberi kesehatan dan panjang umur

 

atau Mendaftar untuk ikut berdiskusi!