gile...e ketemu aza jalannya padahal semalaman di zikirin ngga ketemu2 Terima kasih banyak boss, walau masih ada yang kurang, mengingat alokasi datanya adalah tidak fix sehingga harus merubah2 cell addressVBA jika mau di run Sebenarnya terjadinya data yang sama adalah karena jumlah data itu tergantung daripada jumlah barang (karena satu PO terdiri dari 1 PO tapi kadang kalau langsung main urutin aza, takut kalau tiba2 loncat jadinya loss kontrol Sementara untuk memisah-misahkan adalah dengan insert row seusai dengan jumlah barang misalnya ada barang 5 dengan po mulai urutan AA34556 maka akan saya insert rownya 4 kemudian saya copas sehingga timbul nomor yang sama
yang ada 0 di depan angka masing2 barang kadang mempunyai digit yang berbeda dengan angka yang rendah Regards, Gultom ----- Forwarded Message ----- From: jkssxls Sudarsono <[email protected]> To: Belajar-Excel Yahoo Groups <[email protected]> Sent: Thursday, October 20, 2011 4:04 PM Subject: RE: [belajar-excel] mengurutkan data Maaf ada sedikit koreksi yg akhirnya di test ulang . Sub coba() jumbaris = Range("d8:d29").Rows.Count - 1 Range("D8").Select nilaisebelumnya = Selection.Offset(0, 0) panjang = Len(nilaisebelumnya) j = 0 If IsNumeric(Mid(nilaisebelumnya, 2, 1)) Then Selection.Offset(i, 1) = Left(nilaisebelumnya, 1) & Mid(nilaisebelumnya, 2, panjang - 1) & "-" & WorksheetFunction.Text(j + 1, "###") ElseIf IsNumeric(Mid(nilaisebelumnya, 3, 1)) Then Selection.Offset(i, 1) = nilaisebelumnya End If For i = 1 To jumbaris j = j + 1 nilaisekarang = Range("D8").Offset(i, 0) panjang = Len(nilaisekarang) If nilaisekarang = nilaisebelumnya Then If WorksheetFunction.IsText(nilaisebelumnya) Then If IsNumeric(Mid(nilaisebelumnya, 2, 1)) Then Selection.Offset(i, 1) = Left(nilaisebelumnya, 1) & Mid(nilaisebelumnya, 2, panjang - 1) & "-" & WorksheetFunction.Text(j + 1, "###") ElseIf IsNumeric(Mid(nilaisebelumnya, 3, 1)) Then Selection.Offset(i, 1) = Left(nilaisebelumnya, 2) & WorksheetFunction.Text(Mid(nilaisebelumnya, 3, panjang - 2) + j, WorksheetFunction.Rept("0", panjang - 2)) End If Else MsgBox "aturan lainya" End If Else nilaisebelumnya = nilaisekarang j = 0 If IsNumeric(Mid(nilaisebelumnya, 2, 1)) Then Selection.Offset(i, 1) = Left(nilaisebelumnya, 1) & Mid(nilaisebelumnya, 2, panjang - 1) & "-" & WorksheetFunction.Text(j + 1, "###") ElseIf IsNumeric(Mid(nilaisebelumnya, 3, 1)) Then Selection.Offset(i, 1) = nilaisebelumnya End If End If Next i End Sub Dan ada hal yang juga cukup mengganggu : di sel D18 terisi : AA34556, apa seharusnya AA034556 ? karena jika dianggap sama maka perlu kdoing tambahan ? '==== sebelumnya Sub coba() Range("D8").Select nilaisebelumnya = Selection.Offset(0, 0) Selection.Offset(0, 1) = nilaisebelumnya jumbaris = Range("d8:d27").Rows.Count - 1 j = 1 For i = 1 To jumbaris nilaisekarang = Range("D8").Offset(i, 0) panjang = Len(nilaisekarang) If nilaisekarang = nilaisebelumnya Then If WorksheetFunction.IsText(nilaisebelumnya) Then If IsNumeric(Mid(nilaisebelumnya, 2, 1)) Then ' P1234567 maka semua utuh P1234567 & "-" & urut ( 1,2,3,...) Selection.Offset(i, 1) = Left(nilaisebelumnya, 1) & nilaisebelumnya & "-" & WorksheetFunction.Text(j + 1, "###") ElseIf IsNumeric(Mid(nilaisebelumnya, 3, 1)) Then 'AA123456 maka yg diambil 6 digit angka ( 8-2 ) Selection.Offset(i, 1) = Left(nilaisebelumnya, 2) & WorksheetFunction.Text(Mid(nilaisebelumnya, 3, panjang - 2) + j, WorksheetFunction.Rept("0", panjang - 2)) End If Else MsgBox "aturan lainya" End If j = j + 1 Else nilaisebelumnya = nilaisekarang Selection.Offset(i, 1) = nilaisekarang j = 1 End If Next i End Sub ________________________________ To: [email protected] From: [email protected] Date: Thu, 20 Oct 2011 09:08:47 +0800 Subject: Fw: [belajar-excel] mengurutkan data Dear Pa' Hapsari Mamtab...b Tapi kayaknya ada yang kurang kalau boleh nambah seperti terlampir dimana datanya akan semua diurutkan berdasarkan data teratas yang disorot kalau sekaligus di sorot padahal patokannya adalah hanya dengan nilai teratas dengan nilai yang sama kalau sekaligus di sorot semua, tidak perlu yang sama saja dan sebagai tambahan bagaimana agar angka misalnya 6 digit kalau kurang di tambah "0" di depang angka Juga ada penambhan type item yang berbeda mohon masukannya Regards, Gultom ----- Forwarded Message ----- From: Haps <[email protected]> To: [email protected] Sent: Wednesday, October 19, 2011 10:16 PM Subject: Re: [belajar-excel] mengurutkan data maaf ada salah tulis, di bagian penjelasan baris ke 3 yg bisa menimbulkan kesulitan menangkap maksud yg disampaikan. tertulis: Kelompok-depan namanya Pre (diharapkan berisi karakter-karakater Huruf) seharusnya: Kelompok-depan namanya Hrf (diharapkan berisi karakter-karakater Huruf) terima kasih 2011/10/19 Haps <[email protected]> "Tunjek" point saja...: > > >Sub Ubah_NrPO() > ' hapsari / Oct 19, 2011 > ' beExcel Posting# 13632 > '-------------------------- > Dim Nmr As Long, n As Integer > Dim Hrf As String, Itm As String > > Itm = Selection(1, 1) > For n = Len(Itm) To 1 Step -1 > If Not IsNumeric(Mid(Itm, n, 1)) Then Exit For > Next > Hrf = Left(Itm, n) > Nmr = Val(Right(Itm, Len(Itm) - n)) > For n = 1 To Selection.Rows.Count > Selection(n, 1) = Hrf & Nmr + n - 1 > Next n > > >End Sub > > >Data pertama di daerah yg disorot (selection) dianggap mewakili semua data >di bawahnya; data itu kita ingat sbgItm dan kita penggal menjadi dua kelompok. >Kelompok-depan namanyaPre (diharapkan berisi karakter-karakater Huruf) >Kelompok belakang namanya Nmr (diharapkan berisi karakter-karakter Numeric) > > >Untuk BISA membagi dua kelompok tsb diperlukan posisi (N) yaitu letak karakter >HURUF (bukan angka)yg terkanan, untuk keperluan itu diperlukan loop (loop >pertama) >yg hanya mengunjungi semua karakter dlm string Itm. > > >Setelah itu dilakukan loop lagi yg mengunjungi semua cell dlm sorotan >(selection) >tiap cell yg dikunjungi diisi DATA BARU yaitu gabungan dari Hrf dan Nmr >tetapi >setiap stepNmr ditambah dengan nilai Counter (n) dikurangi 1 > > >Pantas saja kalau hasilnya sepeti yg diharapkan (mudah-mudahanan sih...) > > >-haps- > >

