Satır Gizle

Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back

http://g.imageshack.us/g.php?h=171&i=59811557rk7.jpg


Yukarıdaki tablomda günün tarihi B:B Sütununda biçimlendirilmiş. Q:Q Sütununda da o günün bakiyeleri var. Aşağıdaki kodlarla Q:Q Sütununda bakiyesi olmayan günleri, satır gizle yapıyorum.
Sorum şu : aşağıdaki kodlarda "Set Rng = Range("Q3:Q136")" satırındaki "Q136" Günün tarihinden bir önceki satırı temsil ediyor. Gün değişince yani bir gün sonra koddaki değer Q137 olmalı (Düşünüyorum:Ama koddaki Q136 aynen duruyor :) ). Kısacası; koddaki değeri hücre değerine bağlı olarak, otomatik nasıl değiştirebiliriz.
Q136 yerine B:B Sütünunda bulacağı gününtarihi - 1 gibi birşey herhalde...
Saygılarımla...

Kod:
Sub satirgizle()
    Sheets("Analiz").Select
    Range("A1").Select
Application.ScreenUpdating = False
Dim Rng As Range
Dim c As Range
Set Rng = Range("Q3:Q136")
Rng.Rows.Hidden = False
For Each c In Rng
If c.Value = 0 Then
c.EntireRow.Hidden = 1
End If
Next c
Application.ScreenUpdating = False
End Sub
 
Son düzenleme:

Orion1

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

Ofis-2010-TR 32 Bit
:cool:
Kod:
Set rng = Range("Q3:Q" & Cells(65536, "Q").End(xlUp).Row+1)
 
Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
:cool:
Kod:
Set rng = Range("Q3:Q" & Cells(65536, "Q").End(xlUp).Row+1)
Üzgünüm olmadı. Bu kod ile farkındaysanız günün tarihi B137 satırının gün bakiyesi olan Q137, sıfır bakiyeli olduğu için onu da gizledi... Halbuki ben sadece günün tarihine kadar olan boş bakiyeli satırları gizlemek istiyordum. Günün tarihi olan satır ve altındaki satırlar duracak, gizlenmeyecek...

1 gün sonra yani B138 satırında iken Q137 satırına kadar,
2 gün sonra yani B139 satırında iken Q138 satırına kadar,
3 gün sonra yani B140 satırında iken Q139 satırına kadar,
...
vb. gizlenmeli...
Her yeni günde Q Sütünundaki satır numarası, günün tarihi olan satır numarasından bir önceki güne kadar değişmeli.
 
Son düzenleme:

Orion1

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

Ofis-2010-TR 32 Bit
:cool:
Kod:
Dim k As Range
Set k = Range("B:B").Find(Date - 1, , xlValues, xlWhole)
Set rng = Range("Q3:Q" & k.Row)
 
Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
Kod:
Sub satirgizle()
    Sheets("Analiz").Select
    Range("A1").Select
Application.ScreenUpdating = False
Dim Rng As Range
Dim c As Range
Dim k As Range
Set k = Range("B:B").Find(Date - 1, , xlValues, xlWhole)
[COLOR="DarkOrange"]Set Rng = Range("Q3:Q" & k.Row)[/COLOR]
Rng.Rows.Hidden = False
For Each c In Rng
If c.Value = 0 Then
c.EntireRow.Hidden = 1
End If
Next c
Application.ScreenUpdating = False
End Sub
Kodları yukarıdaki gibi revize ettim fakat turuncu renkli bölümde hata verdi kodlar...
 

Orion1

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

Ofis-2010-TR 32 Bit
Kod:
Sub satirgizle()
    Sheets("Analiz").Select
    Range("A1").Select
Application.ScreenUpdating = False
Dim Rng As Range
Dim c As Range
Dim k As Range
Set k = Range("B:B").Find(Date - 1, , xlValues, xlWhole)
[COLOR="DarkOrange"]Set Rng = Range("Q3:Q" & k.Row)[/COLOR]
Rng.Rows.Hidden = False
For Each c In Rng
If c.Value = 0 Then
c.EntireRow.Hidden = 1
End If
Next c
Application.ScreenUpdating = False
End Sub
Kodları yukarıdaki gibi revize ettim fakat turuncu renkli bölümde hata verdi kodlar...
Kodu aşağıdaki şekilde revize ediniz.:cool:
Kod:
Set k = Range("B:B").Find(Date, , xlValues, xlWhole)
If k Is Nothing Then
    MsgBox "Bu günkü Tarih : " & Format(Date, "dd.mm.yyyy") & " bulunamadı..!!"
    Exit Sub
End If
Set Rng = Range("Q3:Q" & k.Row - 1)
 
Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
Kod:
[LEFT]Sub satirgizle()
   Sheets("Analiz").Select
   Range("A1").Select
Application.ScreenUpdating = False
Dim Rng As Range
Dim c As Range
Dim k As Range

[COLOR=dimgray]Set k = Range("B:B").Find(Date, , xlValues, xlWhole)[/COLOR]
[LEFT][COLOR=dimgray]If k Is Nothing Then[/COLOR]
[COLOR=dimgray]   MsgBox "Bu günkü Tarih : " & Format(Date, "dd.mm.yyyy") & " bulunamadı..!!"[/COLOR]
[COLOR=dimgray]   Exit Sub[/COLOR]
[COLOR=dimgray]End If[/COLOR]
[COLOR=dimgray]Set Rng = Range("Q3:Q" & k.Row - 1)[/COLOR][/LEFT]
 
Rng.Rows.Hidden = False
For Each c In Rng
If c.Value = 0 Then
c.EntireRow.Hidden = 1
End If
Next c
Application.ScreenUpdating = False
End Sub
[/LEFT]


şeklinde kodları revize ettim fakat;




Şeklinde hata verdi, günün tarihi olduğu halde...
 

Orion1

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

Ofis-2010-TR 32 Bit
o hücredeki değer tarih değeri değil.Elle girilmiş string bir değer olabilir.
Boş bir excel dosyasına o hücreyi kopyalayıp yapıştırıp bir dosyaya ekleyip yollarmısınız.
Veya bu lkodlarının çalıştığı esnada sayfanızın adı Analiz değildir.:cool:
 

Orion1

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

Ofis-2010-TR 32 Bit
Aşağıdaki kodları kullanınız.:cool:
Bu durumda B sütununun formatı b sütununda hep ayni biçimde olmalıdır.:cool:
Kod:
Sub satirgizle()
   Sheets("Analiz").Select
   Range("A1").Select
Application.ScreenUpdating = False
Dim Rng As Range
Dim c As Range
Dim k As Range
Dim tarih As String
tarih = Format(Date, "dd mmmm yyyy") & " " & Format(Date, "dddd")
Set k = Range("B:B").Find(tarih, , xlValues, xlWhole)
If k Is Nothing Then
   MsgBox "Bu günkü Tarih : " & Format(Date, "dd.mm.yyyy") & " bulunamadı..!!"
   Exit Sub
End If
Set Rng = Range("Q3:Q" & k.Row - 1)
Rng.Rows.Hidden = False
For Each c In Rng
If c.Value = 0 Then
c.EntireRow.Hidden = 1
End If
Next c
Application.ScreenUpdating = False
End Sub
 
Üst