VBA Insert Row Untuk Dua Workbook Yang Berbeda

  1. 6 tahun lalu

    Selamat Siang

    Saya punya dua file excel, misal file A dan B. Bagaimana VBA nya jika saya insert row pada cell tertentu di file A maka otomatis di file B juga akan terinsert row di cell yang sama.

    Mohon bantuannya.

    Terima kasih.

  2. Di sunting 6 tahun lalu oleh manweljs_

    @Anton Indra

    contoh skripnya:

    Sub insertROW()
    Dim x As Variant
    Dim wbX As Workbook, wsX As Worksheet
    On Error Resume Next
    Set x = Application.InputBox("Pilih Range", Type:=8)
    namafile = ThisWorkbook.Path & "\B.xlsx" '<--nama filenya
    Set wbX = Workbooks.Open(namafile)
    Set wsX = wbX.Sheets("sheet1") '<--nama sheetnya
    
    y = x.Address
    Sheet1.Range(y).EntireRow.Insert
    wsX.Range(y).EntireRow.Insert
    wbX.Save
    wbX.Close
    End Sub

  3. Terima kasih pencerahannya.

    Namun saya ada lagi pertanyaan :)
    (Pertanyaan ada dilampiran)

    Thx.

  4. @Anton Indra

    terlampir contohnya (di ekstrak dulu ya)

  5. Maaf Pak, tdk bisa saya ekstrak.."the archive is either in unknown formaat or damage"

  6. masa sih ?

    barusan saya download bisa

    coba yang ini

  7. Nah, yang terakhir bisa saya buka :)

    terima kasih Pak, saya coba pahami dulu scriptnya...:)

  8. Pak @manweljs_ , apakah perbedaanya jika script pertama formula akan muncul dan tercopy di sheet dan script kedua, formula tdk muncul di sheet namun hanya nilainya saja?

  9. @Anton Indra ....apakah perbedaanya....?

    perbedaanya sangat jelas, yang pertama hasilnya berupa formula sedangkan yang kedua hasilnya berupa value :)

  10. Siap, terima kasih banyak.

  11. Pak @manweljs_

    Untuk yang test refresh, jika 2 file tersebut berada pada 2 folder berbeda, VBA nya bagaimana ya?
    Saya sudah mencoba modifikasi scriptnya, tetap tidak berhasil.
    Misal File Book 1 ada di D: --> Latihan --> Data 1 --> Book1.xlsm, saya modif salah satu scriptnya jadi :

    xFile = ThisWorkbook.Path & "\D:\Latihan\Data1\Book1.xlsm"

    ketika saya run program, malah hang excel nya.

    Kemudian, bagaimana cara menampilkan hanya bulan dan tahun (pertanyaan terlampir)

    Terima kasih

  12. @Anton Indra

    ...saya modif salah satu scriptnya jadi :
    xFile = ThisWorkbook.Path & "\D:\Latihan\Data1\Book1.xlsm"....

    harusnya :

    xFile = "D:\Latihan\Data1\Book1.xlsm"

    ...bagaimana cara menampilkan hanya bulan dan tahun...

    terlampir contohnya

  13. Pak, ketika misal di Book 1 ada cell yang kosong, di Book 2 muncul juga bulan dan tahunnya (excel membacanya walaupun nilainya kosong). Bagaimana mengatasinya?

  14. Edit aja :

    xIdx = xWs.Range("A" & Rows.Count).End(xlUp).Row

    menjadi :

    xIdx = xWs.Range("C" & Rows.Count).End(xlUp).Row

  15. Masih muncul Pak

  16. Di sunting 6 tahun lalu oleh manweljs_

    @Anton Indra

    bisa gak kalo membuat pertanyaan itu selengkap-lengkapnya dan sejelas-jelasnya ? :)
    biar kita gak bolak-balik seperti ini dan sebelum-sebelumnya, kalau bisa langsung aja dengan format file sebenarnya (bukan data sebenarnya)

    untuk yg formula edit menjadi :

    ...
    xIdx = xWs.Range("C" & Rows.Count).End(xlUp).Row
    With yWb.Sheets("AW")
        yIdx = 2
        Do Until yIdx = xIdx + 1
        If xWs.Cells(yIdx, 1) = vbNullString Then
            Do Until xWs.Cells(yIdx, 1) <> vbNullString
            xWs.Cells(yIdx, 1) = vbNullString
            yIdx = yIdx + 1
            Loop
        End If
        .Cells(yIdx, 1) = "=ROMAN(MONTH([" & xWb.Name & "]W!A" & yIdx & "))"
        .Cells(yIdx, 2) = "=YEAR([" & xWb.Name & "]W!A" & yIdx & ")"
        .Cells(yIdx, 3) = "=[" & xWb.Name & "]W!B" & yIdx & _
                "& "" - "" &[" & xWb.Name & "]W!C" & yIdx
        yIdx = yIdx + 1
        Loop
    End With
    ...

    yg value edit menjadi :

    ...
    xIdx = xWs.Range("C" & Rows.Count).End(xlUp).Row
    With yWb.Sheets("AW")
        yIdx = 2
        Do Until yIdx = xIdx + 1
        If xWs.Cells(yIdx, 1) = vbNullString Then
            Do Until xWs.Cells(yIdx, 1) <> vbNullString
            xWs.Cells(yIdx, 1) = vbNullString
            yIdx = yIdx + 1
            Loop
        End If
        .Cells(yIdx, 1) = WorksheetFunction.Roman(Month(xWs.Cells(yIdx, 1)))
        .Cells(yIdx, 2) = Year(xWs.Cells(yIdx, 1))
        .Cells(yIdx, 3) = xWs.Cells(yIdx, 2) & " - " & xWs.Cells(yIdx, 3)
        yIdx = yIdx + 1
        Loop
    End With
    ...

    Demikian

  17. Hehehe, OK Pak, mohon maaf, saya khilaf. :)

    Terima kasih penjelasannya.

 

atau Mendaftar untuk ikut berdiskusi!