Hai Gultom, Jujur saja, saya kurang paham dengan kasus ini. Moga-moga ada BeExceller yang lebih paham ya... Yang jelas, penggunaan properti Cells menggunakan syntax : Cells( nomor_cells ) atau Cells( nomor_baris , nomor_kolom )
Anda bisa mengatur nomor_cells, nomor_baris, dan nomor_kolom untuk berubah nilainya dalam loop, sehingga arah loop bisa sesuai kebutuhan. Jadi, perhatikan ulang saja baris-baris kode yang Anda miliki, bagian mana yang diubah oleh baris kode Anda, nomor_cells kah, nomor_baris kah, atau nomor_kolom Lalu, ubah baris kode agar arah loop sesuai kebutuhan Anda. btw, *1. Secara default, loop pada sekumpulan range menggunakan for each akan bergerak ke kanan (pindah kolom) lebih dulu.* Kalau kolom di baris itu sudah habis, baru ke baris berikutnya kolom pertama. dim rng as range, lNilai as long lnilai=0 for each rng in range("a1:F5") lnilai=lnilai+10 rng.value=lnilai next rng *2. Kalau pakai cells* 'lcellsnumber dan lNilai bertipe LONG dim lCellsNumber as long, lNilai as long 'kalau deklarasi dengan bunyi dim lCellsNumber, lNilai as long -> lcellsnumber bertipe variant, lNilai bertipe long lnilai=0 for lcellsnumber=1 to range("a11:F15").count lnilai=lnilai+1000 range("a11:F15").cells( lcellsnumber ).value = lnilai 'kalau baris ini tidak pakai range("a11:F15") akan seperti apa jadinya ya ? next lcellsnumber *3. Pakai nested loop* dim lCol as long, lRow as long, lNilai as long lnilai=0 for lRow=21 to 25 for lCol=1 to 6 lnilai=lnilai+10 cells( lrow , lcol ).value = lnilai next lcol next lrow *4. For each dengan range bisa sangat luwes, contoh :* dim rng as range, lNilai as long lnilai=0 for each rng in range("h6:m6,i3:i7,k5:L11,j9:n10,n3:k3,h11:h9") lnilai=lnilai+10 rng.value= rng.text & " [" & lnilai & "]" next rng Regards, Kid 2017-12-11 11:51 GMT+07:00 R T Gultom ro_...@yahoo.com [belajar-excel] < belajar-excel@yahoogroups.com>: > > > Dear All, > > Mohon bantuannya buat merubah loop vba xls dari kalum daulu baru kemudian > ke baris. > > Ini salah contoh yang saya buat > > > Sub Forecast() > Dim rng1, rng2 As Range > Dim rw, clm, no1, no2, no3, no4, no5 As Integer > > no3 = 30 > Set rng1 = Application.Selection > Set rng2 = Cells(11, no3) > > no4 = rng1.Column > > For Each dt In rng1 > If dt >= 1 Then > Range(Cells(no3, 12), Cells(no3 + dt.Value, 12)).Value = dt.Offset(0, -3 - > dt.Column + no4).Value > no3 = no3 + dt.Value > End If > Next > > End Sub > > Kalau ini dijalankan, maka akan diurutkan dari baris kemudian ke kolumn. > > yang diinginkan adalah sebaluknya dari kelumn dulu baru baris. > > Terima kasih, > > > Gultom > > > >