Script Range harga ( antara dari )

  1. ‹ Older
  2. 4 minggu lalu

    @manweljs_
    Siap :D
    Terima kasih

  3. Di sunting 4 minggu lalu oleh Chris212

    @manweljs_
    saya coba tambahkan script untuk Sheet "Tes" di kolom "C"
    dan berjalan , Pertanyaan an sayaa ..
    >>Script yng saya tambhkan :<<

    ah As Worksheet

    Set ah = Sheets("Tahun " & [C1])

    p = [C2]

     With ah
            For Each xsel In .Range("B2:K2")
                dari = Left(xsel, InStr(1, xsel.Value, "s/d") - 1) * 1
                sampai = Mid(xsel, InStr(1, xsel.Value, "s/d") + 3, 100000) * 1
                If p >= dari And p <= sampai Then
                    r = .Range("A:A").Find(sel, , xlValues, xlWhole).Row
                    c = xsel.Column
                    Range("C" & sel.Row) = .Cells(r, c)
               
                       Exit For
            End If
            Next
    End With

    1. bisakah script di atas diringkas , karena Sheet " Tes " setiap kolom B kekanan ( c , d e , f , dst ) akan saya beri script
    2. jika tidak bisa , berati harus penambhan script di atas ( no 1 ) , setiap ada penambhan kolom script di sheet " Tes" ?

    Terima kasih

  4. @Chris212

    bisa manfaatkan alamat sel target. contohnya terlampir

  5. @manweljs_
    Siap , saya pelajari lagi =D
    Terima kasih

  6. @manweljs_
    1.mau tanya fungsi angka 1 & 2 di script ini untuk apa ya ?

    Set sh = Sheets("Tahun " & Cells(1, target.Column))

    n = Cells(2, target.Column)

    2.saat saya hapus di B1"Tahun yg diisi" dan B2 " nilai angka yg diisi" rumus error menjadi ' Subscript out of range ' dan harus buka tutub file agar script bisa berjalan lagi ..
    3. jika saya ingin sheet " tes " kolom yg saya buat script ingin berjarak tidak berurutan terus "b,c,e,f,g,h,j,k" ( jarak tidak mesti )

    Script yg digunakan untuk No 2 + 3 seperti apa ?
    Terima kasih

  7. Di sunting 4 minggu lalu oleh manweljs_

    @Chris212

    1] Cells itu adalah salah satu properti vba. sintaksnya Cells(baris, kolom)

    Cells(1,1) = A1
    Cells(1,10) = J1
    Cells(10,1) = A10


    2] kalo B1 di hapus maka tidak akan ditemukan nama sheetnya, kalo B2 dihapus maka tidak akan ditemukan kolomnya. gunakan error trap untuk menyelesaikan masalah tersebut

    3] cara bisa bermacam-macam. berikut saya contohkan dengan mengecek nilai baris dan kolom dari target (cell yang diganti) :

    Private Sub Worksheet_Change(ByVal target As Range)
    On Error Resume Next '<-- error trap disini
    Dim col As Variant
    If target.Row <= 2 Then '<-- agar hanya berfungsi di baris 1 dan 2
        col = "2,3,5,6,8" '<--- agar hanya berfungsi di kolom B, C, E, F, H
        col = Split(col, ",")
            For i = 0 To UBound(col)
                If col(i) = target.Column Then
                    Call cumacontoh(target)
                    Exit For
                End If
            Next
    End If
    Err.Clear
    End Sub
    


    demikian

  8. @manweljs_
    siap , seperti biasa penjelasanay mudah dipahami =D
    akan saya coba terapkan ke file saya
    Terima kasih

  9. @manweljs_
    maaf mau tanya keluar dari persoalan script diatas
    saya melihat ada script " ubound , split , instr , byval , left , mid ,dll ) jika saya ingin belajar script itu berfungsi untuk apa
    kira kira kata kunci di pencarian google seprti apa ya ? ( agar bisa langsung ketujuan , biar gk muter muter , selama ini penjelasan di google ruwet , eheheehehe =D )
    Sebelumnya terima kasih

  10. @manweljs_
    maaf mau tanya keluar dari persoalan script diatas
    saya melihat ada script " ubound , split , instr , byval , left , mid ,dll ) jika saya ingin belajar script itu berfungsi untuk apa
    kira kira kata kunci di pencarian google seprti apa ya ? ( agar bisa langsung ketujuan , biar gk muter muter , selama ini penjelasan di google ruwet jika pakai katan kunci saya sendiri , eheheehehe =D )
    Sebelumnya terima kasih

  11. @Chris212 ...jika saya ingin belajar script itu berfungsi untuk apa kira kira kata kunci di pencarian google seprti apa ya ?...

    mungkin bisa mulai dari sini : https://belajarexcel.org/conversation/post/6072

  12. @manweljs_
    ok siap
    Terima kasih

  13. @manweljs_
    mau tanya
    jika saya ingin sheet " tes " kolom yg saya buat script aktif setiap loncat 1 kolom( b d f h [ script] )
    dan kolom ( i j k [data normal]) , ( L n p r [ script] ) dan kolom ( s t u [data normal]) dst.
    Maka script yg digunakan seperti apa ?

    Terima kasih

  14. manweljs_

    Sep 2 Terverifikasi + 11.070 Poin

    @Chris212

    saya tidak paham apa yang anda tanyakan

  15. 3 minggu lalu

    Chris212

    Sep 2 Jawaban Terpilih Malang + 320 Poin
    Di sunting 3 minggu lalu oleh Chris212

    @manweljs_
    Maksutnya saya ingin membuat script dengan setelah 1 & 2 kolom script akan aktif ..,
    Kolom a b c adalah data ( kolom utama )
    Kolom d f h adalah script ( yg untuk kolom e g , tidak ada scriptt )
    Kolom i k m adalah script ( yang kolom j l , tidak ada script ) dst
    Saya Ngin mengulang itu terus , script yg digunakan seperti apa ?

    Script sebelumnya yg diberikan @manweljs_ untuk target kolom , tapi yg saya cari sekarang untuk pengulangan scrip target ( agar tidak perlu menulis ulang setiap target selanjutnya )

  16. manweljs_

    Sep 6 Terverifikasi + 11.070 Poin

    @Chris212

    saya masih tidak paham. sebaiknya lampirkan contoh filenya serta hasil yang diinginkan

  17. @manweljs_
    Siap
    saya lampirkan filenya

  18. manweljs_

    Sep 7 Terverifikasi + 11.070 Poin

    @Chris212

    coba skrip berikut :

    Private Sub Worksheet_Change(ByVal target As Range)
    On Error Resume Next '<-- error trap disini
    Dim col As Variant
    If target.Row <= 2 Then '<-- agar hanya berfungsi di baris 1 dan 2
        col = "1,3,5"
        col = Split(col, ",")
            For i = 0 To UBound(col)
                If col(i) = (target.Column - 2) Mod 9 Then <-- jika mod kolom sesuai dengan nilai col (1,3,5)
                    Call cumacontoh(target)
                    Exit For
                End If
            Next
    End If
    Err.Clear
    End Sub


    note : skrip ini hanya berlaku pada file contoh. untuk file realnya harus di cek mod kolom nya.

    cara cek mod kolom ada pada file terlampir

  19. @manweljs_
    mau tanya untuk penjelasan rumus ini;
    If col(i) = (target.Column - 2) Mod 9 |
    setelah saya browsing untuk fungsi MOD ini , fungsinya adalah untuk sisa pembagian ( saya tambah bingung untuk penjelasanya dari googling )
    Jadi menurut pendapat saya sendiri dari melihat scriptnya ,..

    1. Fungsi mod itu untuk mengkonversi Nama Kolom menjadi sebuah angka yg dimana untuk mejalankan rumus di target kolom tsb ? ( apakah seperti itu )
    2. untuk angka -2 & 9 itu berfungsi untuk menentukan nomer konversi dari kolom , bararti angka tsb bisa saya ganti sesui kebutuhan dimana script yg saya inginkan berjalan . ( apakah seperti itu )

    Terima kasih

  20. Di sunting 3 minggu lalu oleh Chris212

    @manweljs_

    1. jika tidak ada nama barang bisaka hasil script = 0 / -
    2. jika format cell ingin kita yg menentukan agar di hasil script tidak harus selalu merubah formatnya , bisakah

    Terima kasih

  21. minggu lalu

    Mau tanya lagi
    masih tentang nilai barang , saya mencoba menambah script untuk nilai barang di tambahkan dengan harga barang ,..
    dan berjalan normal , tapi yang jadi maslah jika ada nama barang yang tidak terdaftar ( terlist ) malah muncul nilai yang salah Seharusnya " 0 " ( karena ada harga barang , yg semula " 0 " menjadi sesui dari harga barang tsb )

    Sub MencariNilaiBarang(ByVal target As Range)
    Dim sh As Worksheet, sel As Range, xsel As Range
    Set sh = Sheets("Tahun " & Cells(1, target.Column))
    
    n = Cells(2, target.Column)
    
    On Error Resume Next
    For Each sel In Range("A3:A10")
        With sh
            For Each xsel In .Range("B2:K2")
                dari = Left(xsel, InStr(1, xsel.Value, "s/d") - 1) * 1
                sampai = Mid(xsel, InStr(1, xsel.Value, "s/d") + 3, 100) * 1
                If n >= dari And n <= sampai Then
                    r = .Range("A:A").Find(sel, , xlValues, xlWhole).Row
                    C = xsel.Column
                    Cells(sel.Row, target.Column) = .Cells(r, C) + getHarga(sel.Value)
                    Exit For
                End If
                Next
         End With
    Next
    Err.Clear
    End Sub
    
    Function getHarga(Str As String) As Double
    Dim sh As Worksheet, DBBarang, C As Range
    Set sh = Sheet4
    Set DBBarang = sh.Range("A1:A10")
    
    Set C = DBBarang.Find(Str, , xlValues)
    If Not C Is Nothing Then
        getHarga = C.Offset(0, 1).Value
    Else
        getHarga = 0
    End If
    End Function
    

    Terima kasih

 

atau Mendaftar untuk ikut berdiskusi!