izin pinjam script dari Miss Jan dan modifikasi sedikit ya..

script awal:

    Dim rgNpb As Range, cel As Range, rgCount As Range
    Dim lRow As Long, lCel As Long
    Dim iCount As Integer

    lRow = Cells(Rows.Count, 2).End(xlUp).Row
    Set rgNpb = Range(Cells(6, 2), Cells(lRow, 2))
    For Each cel In rgNpb
        lCel = cel.Row
        Set rgCount = Range(Cells(6, 2), Cells(lCel, 2))
        iCount = Application.WorksheetFunction.CountIf(rgCount, cel.Value)
        cel.Offset(, 20).Value = cel.Value & "-" & iCount
    Next cel


script hasil modifikasi:

    Dim rgNpb As Range, cel As Range
    Dim lRow As Long

    lRow = Cells(Rows.Count, 2).End(xlUp).Row
    Set rgNpb = Range(Cells(6, 2), Cells(lRow, 2))
    For Each cel In rgNpb
        cel.Offset(, 20).Value = cel.Value & "-" &
Evaluate("=COUNTIF(J$6:J6,J6)")
    Next cel


yang diwarnai merah adalah script asli yang dihilangkan
yang warna biru dalam blok hijau adalah script pengganti

btw, foto profilenya Miss Jan yang baru keren [?]

Wassalam,

-dwint-


Pada 8 September 2013 11.52, hendrik karnadi <[email protected]>menulis:

> **
>
>
> Pak Dwint,
> Jika iCount = Application.WorksheetFunction.CountIf(rgCount, cel.Value) 
> diganti
> dengan iCount = Evaluate("=CountIf(rgCount, cel.Value") maka ketika macro
> dijalankan akan timbul error "Type mismatch".
>
> Salam,
> HK
>
>   ------------------------------
>  *From:* dwint ruswanto <[email protected]>
> *To:* [email protected]
> *Sent:* Sunday, 8 September 2013, 5:34
>
> *Subject:* Re: [belajar-excel] rumus yang tidak running
>
>
> mungkin seperti ini
> Cells("alamat_celnya").Value = Evaluate("=formulanya")
> jadi script yang berbunyi
> Application.WorksheetFuntion.Formulanya(blablabla)
> langsung diganti dengan Evaluate
> secara logika script tersebut akan berjalan lebih cepat karena:
> memangkas waktu yang digunakan untuk memanggil formula di worksheet untuk
> diaplikasikan ke dalam vba, karena prosesnya langsung digantikan oleh
> fungsi internal vba itu sendiri
> kira2 seperti itu.. untuk pembuktian mungkin dapat diuji kecepatan proses
> dengan beberapa baris data yabg lebih banyak.
> maaf jika penjelasannya berantakan, karena diketik menggunakan handphone.
> cmiiw.
> -dwint-
> On Sep 7, 2013 10:17 PM, "hendrik karnadi" <[email protected]>
> wrote:
>
> **
>
>  Btw, gimana codenya Mr. Kid karena saya belum kenal baik dengan teman
> kita yang bernama "Evaluate".
>
> Salam,
> HK
>
>   ------------------------------
>  *From:* Mr. Kid <[email protected]>
> *To:* BeExcel <[email protected]>
> *Sent:* Saturday, 7 September 2013, 19:10
> *Subject:* Re: [belajar-excel] rumus yang tidak running
>
>
> Kalau pakai loop, coba pakai Evaluate daripada worksheetfunction. Sapa
> tahu bisa lebih cepat.
>
> Wassalam,
> Kid.
>
>
>
> On Sat, Sep 7, 2013 at 4:54 PM, hendrik karnadi 
> <[email protected]>wrote:
>
> **
>
>  Mumpung lagi senggang dan Mr Kid. baru saja membahas looping dengan
> For....., dengan meminjam codes dari MJR (boleh kan Miss?),
> maka saya coba mainkan dengan Event Worksheet_Change pada sel U5 tempat
> dimana No. NPB, No. PR dan No. PO mau diletakkan.
>
> Codes pada VBE Sheet3(tabel):
> Option Explicit
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>     If Target.Address = "$U$5" Then
>         If Target.Count = 1 Then
>             With Target
>                 If .Value = "No. NPB" Then
>                     Call NPB
>                 ElseIf .Value = "No. PR" Then
>                     Call PR
>                 ElseIf .Value = "No. PO" Then
>                     Call PO
>
>                 End If
>             End With
>         End If
>     End If
> End Sub
>
> Codes pada Module1 (setelah insert module):
> Option Explicit
>
> Sub NPB()
>     Dim rgNpb As Range, cel As Range, rgCount As Range
>     Dim lRow As Long, lCel As Long
>     Dim iCount As Integer
>
>     lRow = Cells(Rows.Count, 2).End(xlUp).Row
>     Set rgNpb = Range(Cells(6, 2), Cells(lRow, 2))
>     For Each cel In rgNpb
>         lCel = cel.Row
>         Set rgCount = Range(Cells(6, 2), Cells(lCel, 2))
>         iCount = Application.WorksheetFunction.CountIf(rgCount, cel.Value)
>         cel.Offset(, 19).Value = cel.Value & "-" & iCount '20 diganti 19 
> (sebelumnya
> tertulis 20)
>     Next cel
> End Sub
>
> Sub PR()
>     Dim rgPR As Range, cel As Range, rgCount As Range
>     Dim lRow As Long, lCel As Long
>     Dim iCount As Integer
>
>     lRow = Cells(Rows.Count, 10).End(xlUp).Row '2 diganti 10
>     Set rgPR = Range(Cells(6, 10), Cells(lRow, 10)) '2 diganti 10
>     For Each cel In rgPR
>         lCel = cel.Row
>         Set rgCount = Range(Cells(6, 10), Cells(lCel, 10)) '2 diganti 10
>         iCount = Application.WorksheetFunction.CountIf(rgCount, cel.Value)
>         cel.Offset(, 11).Value = cel.Value & "-" & iCount '19 diganti 11
>     Next cel
> End Sub
>
> Sub PO()
>     Dim rgPO As Range, cel As Range, rgCount As Range
>     Dim lRow As Long, lCel As Long
>     Dim iCount As Integer
>
>     lRow = Cells(Rows.Count, 16).End(xlUp).Row '2 diganti 16
>     Set rgPO = Range(Cells(6, 16), Cells(lRow, 16)) '2 diganti 16
>     For Each cel In rgPO
>         lCel = cel.Row
>         Set rgCount = Range(Cells(6, 16), Cells(lCel, 16)) '2 diganti 16
>         iCount = Application.WorksheetFunction.CountIf(rgCount, cel.Value)
>         cel.Offset(, 5).Value = cel.Value & "-" & iCount '19 diganti 5
>     Next cel
> End Sub
>
> Semoga bermanfaat (pinjam slogan pak Anton).
>
> Salam,
> HK
>
> File dilampirkan untuk uji materi
>
>   ------------------------------
>  *From:* neza ibaneza <[email protected]>
> *To:* "[email protected]" <[email protected]>
> *Sent:* Friday, 6 September 2013, 7:19
> *Subject:* [belajar-excel] rumus yang tidak running
>
>
> Salam B-Excel
>
> Master-master yang baik hati, saya coba buat rumus VBA, tp kok ada
> sebagian yang tidak running
> masalahnya dimana ya?
>
> Salam
> Neza
>
>
>
>
>
>
>
>   
>

<<328.png>>

Kirim email ke