makro seperti itu hanya untuk menjawab benar jika data *sudah sorted.*
Kalau data masih unsorted;  misal:
*data1
data2
data2
data1
data3
data1*
maka hasilnya tidak sesuai keinginan;  data1 yg sudah disela oleh data lain
dianggap data baru dan mendapat nomor mulai dari 1 lagi.

Masalah seperti ini sebenarnya dapat diselesaikan dengan formula sederhana;
tidak perlu makro
misal  data ada di A1:A10,   tulis di B1
*=COUNTIF($A$1:A1,A1)*
lalu dicopy cells di bawahnya

Perhatikan Range *$A$1:A1  *jika dicopy di A10 akan menghasilkan
range *A$!:A10,* artinya range yg di-countif adalah dinamis, mengikuti
letak ditulisnya.
Hasilnya dapat anda lihat di sheet dlm workbook lampiran,

Tetapi jika tetap 'ngebet' dengan makro, siti mengajukan 3 contoh
salah satunya (yg tercepat waktunya) seperti di bawah ini; 2 lainnya
dapat dilihat langsung di lampiran

Sub NomorDataAkumulasi_B()
   '-----------------------------------------------------
   ' ctv | 5 aug 2009 | memberi nomor pada Unsorted data
   ' manfaatkan WorksheetFunction, loop 1 tingkat
   ' * terjadi loop hanya N kali
   '-----------------------------------------------------
   Dim i As Long           ' pencacah kalang (loop)
   Dim N As Long           ' penampung hasil Countif
   Dim DataRng As Range    ' data range
   Dim DynaRng As Range    ' sliding / dynamic range

   ' Setting dimensi Range yg akan diolah
   '*  (terserah Anda mau pilih cara apa)*

   ' Memberi Nomor untuk tiap data
   For i = 1 To DataRng.Rows.Count
      Set DynaRng = DataRng(1, 1).Resize(i, 1)
      N = WorksheetFunction.CountIf(DynaRng, DataRng(i, 1))
      DataRng(i, 3) = N
   Next i
End Sub



On Sat, Sep 5, 2009 at 3:14 PM, siti Vi <[email protected]> wrote:

> Jadi, si penjawab juga harus membuatkan workbook dan contoh data nya, (?)
> he he he..
>
> Sub NomorData()
> Dim i As Long, n As Long
> Dim dRange As Range
> Dim d As Variant
>
> Set dRange = Application.InputBox( _
> "Tunjukkan padaku Cell DataPertama :", _
> "NomorUrut Data", Selection.Address,Type:=8)
> Set dRange = Range(dRange, dRange.End(xlDown))
>
> For i = 1 To dRange.Rows.Count
> d = dRange(i, 1)
> If d <> dRange(i - 1, 1) Then n = 0
> n = n + 1
> dRange(i, 0) = n
> Next i
> End Sub
>
>
> 2009/9/4 easy goin <[email protected]>
> > dear Master Excel,
> > mohon bantuannya untuk autofill (no urut) dengan kriteria (menggunakan
> VB), seperti contoh terlampir
> > 1 data1
> > 2 data1
> > 3 data1
> > 1 data2 &gt;&gt; Jika datanya beda, autofillnya dimulai dengan angka satu
> lagi...??
> > 2 data2
> > 3 data2
> > 4 data2
> > 5 data2
> > 6 data2
> > dst......
>

Kirim email ke