• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Hücredeki değere göre satırları gizleme/gösterme

  • Konbuyu başlatan Konbuyu başlatan ptcsite
  • Başlangıç tarihi Başlangıç tarihi

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
139
Excel Vers. ve Dili
M.OFFICE 2021 TR 64 Bit
Benimde bir sorum var ama bir türlü excelldeki kodları uyarlayamadım. Çünkü gizlenecek ve gösterileek hücre sayısı teker teker belirtmek uzun sürecek... Kısa bir kod yapılabilir mi?
Aşağıdaki örnekte satırlar ve sütunlar değişmeden bir kod yazabilirmisinz? H10 hücresindeki değere göre (Bu değer daha sonra başka bir sayfadan alacak. Şimdilik aynı sayfada girilmiştir) Tablodaki satırlar gizlenip gösterilecek ve ürün bilgisi altındaki satırlar gizlenip gösterilecek.
Yani şu an H10 da 25 yazıyor. Buna göre;
Tabloda 25 nesneye kadar satırlar gösterilecek diğer satırlar gizlenecek.
Ürün bilgisi altındaki Nesne 25 ve altındaki Ürün özellikler satırına kadar satırlar gösterilecek diğer satırlar gizlenecek..

H10 = 35 olunca;
Tabloda 35 nesneye kadar satır gösterilirken 26-99 arası nesne satırları gizlenecek. Aynı şekilde;
Ürün hakkında bilgiler bölümünde 35 nesne ve altındaki satırda yer alan ürün özellikler gösterilirken 36 nesneden - 334.satıra kadar satırlar gizlenecek. Umarım anlatabilmişimdir. Örnek aşağıdadır;
http://www.dosya.tc/server10/seu4wa/Ornek.rar.html

Şimdiden teşekkür ederim.:)
 
Şöyle bir Kod tasarladım... Mantık hatası vardır muhakkak :) Bir tane yazılmış kodun üzerinde anlamaya çalışaraktan yapmaya çalıştım... Bunu örneğe uygulayabilirmisiniz. Burdaki H14 hücresi belki örnekte farklıdır. Şu an örneği indiremiyorum... ve belirtilen rakamlara göre satırlar da farklılık gösterebilir

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Tablo, Girdi, Girdi_2 As Integer
If [H14] <> "" Then
Tablo = 25
Girdi = 138
Girdi_2 = 139
For a = 1 To [H14]
Rows(Tablo).EntireRow.Hidden = False
Tablo = Tablo + 1

For b = 1 To 99
Rows(Girdi).EntireRow.Hidden = False
Rows(Girdi_2).EntireRow.Hidden = False
Next
Girdi = Girdi + 2 * b
Girdi_2 = Girdi_2 + 2 * b
Next
'-----------------------------------------------------------------
For a = 1 To 99 - ([H14] + 1)
Rows(Tablo + 1).EntireRow.Hidden = True
Tablo = Tablo + 1
For b = 1 To 99
Rows(Girdi + (2 * b)).EntireRow.Hidden = True
Rows(Girdi_2 + (2 * b)).EntireRow.Hidden = True
Next
Girdi = Girdi + 1
Girdi_2 = Girdi_2 + 1
Next

Else
MsgBox "Ürün Sayısı Giriniz"
End If
End Sub
 
Geri
Üst