next without for hatası

Katılım
11 Ocak 2011
Mesajlar
7
Excel Vers. ve Dili
2010 türkçe
Sub gizle()

Dim i , a As Integer
a=val(g1")
For i = 1 To a
If ActiveSheet.Cells(i, 5).Value = 14 Then
Rows(i, 5).Select
Selection.EntireRow.Hidden = True
i = i + 1
Next i

End Sub

arkadaşlar, "e sütünundaki değerin 14 olması halinde o satırı gizle" şeklinde bir makro yapmak istiyorum, yukarıdaki kodu çalıştırdığımda "next without for" hatası veriyor. sorun nedir? yardım ederseniz sevinirim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Blok if açmışsınız.
Aşağıdaki kırmızı kod ile İf koşulunu sonlandırmanı lazım.:)
Kod:
If ActiveSheet.Cells(i, 5).Value = 14 Then
Rows(i, 5).Select
Selection.EntireRow.Hidden = True
i = i + 1
[B][COLOR="Red"]End If[/COLOR][/B]
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Edit:Sayın Orion1, kusura bakmayın yanıtınızı görmeden yazmışım

Kodu aşağıdaki gibi düzeltip denermisiniz?

Kod:
Sub gizle()
a = Range("E1").Value
If a = 14 Then
Columns("E:E").Select
    Selection.EntireColumn.Hidden = True
    Range("A1").Select
End If
End Sub
 
Katılım
11 Ocak 2011
Mesajlar
7
Excel Vers. ve Dili
2010 türkçe
Edit:Sayın Orion1, kusura bakmayın yanıtınızı görmeden yazmışım

Kodu aşağıdaki gibi düzeltip denermisiniz?

Kod:
Sub gizle()
a = Range("E1").Value
If a = 14 Then
Columns("E:E").Select
    Selection.EntireColumn.Hidden = True
    Range("A1").Select
End If
End Sub
bu e sütununu gizliyor, ben 14 olan hücrenin olduğu satırı gizlemek istiyorum,

orion'un söylediğini yaptım çalıştı.

teşekkürler.
 
Katılım
11 Ocak 2011
Mesajlar
7
Excel Vers. ve Dili
2010 türkçe
Sub gizle()

Dim i, a, sayac As Integer
a = Range("q3").Value
sayac = 1
For i = 2 To a
'If ActiveSheet.Cells(i, 10).Value = 14 Then
If Range("J" & i).Value = 14 Then
'Cells(i, 10).Select
Range("J" & i).Select
Selection.EntireRow.Hidden = True
Range("J" & i - 1).Select
i = i + 1
sayac = sayac + 1
End If
Next i
MsgBox sayac & "sayıda satır gizlendi"


End Sub
Sub goster()

Cells.Select
Selection.EntireRow.Hidden = False
Range("A1").Activate
End Sub


arkadaşlar; makroda son durum bu, ancak yine bir sorun çıktı ve bir türlü halledemedim, sorun şu; "gizle" makrosunu çalıştırdığımda, if koşulunu sağlayan ardarda olan hücrelerde ilkini gizliyor ikincisini gizlemiyor, ardarda değilse sorun çıkmıyor. yani şu : mesela j10,j11,j12,j13,j14 hücreleri koşulu sağlıyorsa, j10,j12 ve j14 ün olduğu satırlar gizleniyor sadece.
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Kodları aşağıdaki gibi düzenleyip denermisiniz?

Kod:
Sub gizle()
Dim i, a, sayac As Integer
a = Range("q3").Value
For i = a To 2 Step -1
Cells(i, 10).Select
b = Cells(i, 10)
If b = 14 Then Rows(i).Select Else GoTo 10
Selection.EntireRow.Hidden = True
sayac = sayac + 1
10
Next i
MsgBox sayac & " sayıda satır gizlendi."
End Sub
Gizlenmiş satırları göstermek içinde aşağıdaki kodlardan faydalanabilirsiniz. İyi çalışmalar.

Kod:
sub goster()
a = [q3]
Rows("2:" & a + 1).Select
Selection.EntireRow.Hidden = False
Range("A2").Select
End Sub

Örnek dosya ektedir.
 

Ekli dosyalar

Son düzenleme:
S

Skorpiyon

Misafir
Sayın omerrica,

Aşağıdaki kodu bir dener misiniz.

Sub Düğme1_Tıklat()
Dim a,b,i as Integer
a = Range("q3").Value
b = 0
For i = 2 To a
If Rows(i).Hidden = True Then i = i + 1
If Cells(i, 10) = 14 Then
Rows(i).EntireRow.Hidden = True
i = i - 1
b = b + 1
End If
Next i
MsgBox b & " satır gizlendi"
End Sub
 
Üst