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 <[email protected]>

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

Kirim email ke