Tecnologia, programação e muito Visual FoxPro.

quinta-feira, 15 de setembro de 2011

Re: ]] XL-mania [[ Maximum Loop

 

coba mkro berikut ini


prosedur kedua (Fungsi HapsRange) itu tidak harus dipakai; karena dia hanya
mengOtomatiskan pemilihan area range yg berdata (Real Used Range dgn anchor A1)

Jika anda mau menentukan Rangenya (di sheet aktif) dengan cara manual
prosedur tsb tidak perlu dipakai
Range yg akan diproses di SET secara hardcoded saja


Sub HapusCell_Bersayarat()
' dlm makro ini ini sudah dikhususkan
' syarat ada di kolom X (kol# 24)
' haps // 15 sept 2011
Dim RNG As Range, i As Long
Set RNG = HapsRange(ActiveSheet)
For i = 1 To RNG.Rows.Count
   If LCase(RNG(i, 24)) = "delete" Then RNG(i, 26).Clear
Next i
End Sub

'
sebelum dan sesudah loop baik juga kalau ditambahkan setting mengenai 
Calculation dan Screeen Editing (off kemudan on ) demi mempercepat jalannya makro
'-----------------------

Private Function HapsRange(Optional Sht As Worksheet) As Range
   ' purpose: returns Real DataRange from a1 to last data
   ' courtesy of siti Vi
   ' Jakarta, 24 Nov 2009
   '---------------------
   Dim LstRow As Long, LstCol As Integer
   
   On Error Resume Next
   If Sht Is Nothing Then Set Sht = ActiveSheet
      With Sht
         LstRow = Cells.Find(What:="*", _
                  SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
         LstCol = Cells.Find(What:="*", _
                  SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
         If Len(Cells(1)) > 0 Then FstRow = 1: FstCol = 1
      End With
   Set HapsRange = Range(Cells(1), Cells(LstRow, LstCol))
End Function

contoh workbook hanya akan dikirim at request


2011/9/14 Hachi Rizki <hachiuz_ld27@yahoo.co.id>
Dear Excel Expert,
Saya ketemu masalah dengan looping for next pada VBA
saya menggunakan sintaks sebagai berikut

For i = 2 To baris
        If proses.Cells(i, "X").Value = "delete" Then
            proses.Range(Cells(i, 1), Cells(i, "Z")).Value = vbNullString
            proses.Cells(i, 1).Select
        End If
Next i

sebelumnya saya gunakan count untuk baris, sehingga baris mencerminkan jumlah baris dari data yang bersangkutan.
Saya run macro tersebut 2 kali. Pertama saya menggunakan data dengan jumlah row sebanyak 28000-an dan berjalan dengan baik
Selanjutnya saya coba dengan data dengan jumlah row sebanyak 105.000-an. Dan muncuk error. 'type mismatch'

pertanyaan saya :
- apakah memang ada batas maksimum untuk loop for - next ? kalau ada, berapakah jumlah maksimumnya ..??
- ada teman2 yang punya alternatif untuk scrip nya. Tujuan saya adalah menghilangkan baris yang pada kolom X ada tulisan "delete"

terima kasih,
hachi

__._,_.___
Recent Activity:
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| selamat idul fitri, mohon maaf lahir dan batin...                 |
| www.linkedin.com/company/xl-mania                                 |
| ayo pesan buku "mengapa boss benci chart anda"  :D :D :D          |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau...  |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html           |
+-------------------------------------------------------------------+
| Message lama ada di :                                             |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id]  |
| http://www.mail-archive.com/xl-mania@yahoogroups.com              |
+-------------------------------------------------------------------+
MARKETPLACE
A bad score is 579. A good idea is checking yours at freecreditscore.com.

Stay on top of your group activity without leaving the page you're on - Get the Yahoo! Toolbar now.

.

__,_._,___

Nenhum comentário:

Arquivo do blog