update data dengan id number tidak sukses

  1. 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 Okt 2022 Terverifikasi Indonesia + 20.045 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!