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
>
>
>   
>

Kirim email ke