• DİKKAT

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

Excel Makro Array Yardım

Katılım
11 Nisan 2011
Mesajlar
111
Excel Vers. ve Dili
2003
Arkadaşlar merhaba,

Ekteki dosyanın sayfa2 kısmında A ve B sütunlarında verilerim var. Amacım şöyle:

Textbox1'e B sütunundaki değerlerden birini girerek süzme işlemi yapıyorum.
B sütununda bulduğum değerlere komşu olan değerleri (A sütunundaki) biyerde tutup bu kez o değerlere göre süzme işlemi yapmalıyım.

Örnek olarak:

Textbox1'e "ad" girerek süzme işlemi yapınca, A sütununda "2 ve 3" değerleri kalıyor.Amacım sonuç olarak (ad'den bağımsız olarak) 2 ve 3 e göre süzme işlemi yapmak. Sonuç olarak, textbox1'e ad yazdığımda sayfa 2 deki sonucun alınmasını istiyorum.(Örnek sonucu sayfa2'ye kopyalıyorum.)

İlgilerinize
 

Ekli dosyalar

Merhaba,

Sorunuzu inceledim. Anladığım kadarıyla siz Sayfa2 de ki "B" sütununda belirli bir değeri arayacaksınız ve bu değerin karşılığı olarak "A" sütununda oluşan dizideki verilere ait satırlar dışında kalan satırları gizlemek istiyorsunuz. Eğer istediğiniz bu yönde ise aşağıdaki kodu kullanabilirsiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim Dizi As Collection, BUL As Range, ADRES As String
    Dim X As Long, Y As Integer, Say As Integer
    
    Sheets("Sayfa2").Select
    
    Cells.EntireRow.Hidden = False
    
    Set Dizi = New Collection
    
    Set BUL = Range("B:B").Find(TextBox1.Value, , , xlWhole)
    If Not BUL Is Nothing Then
    ADRES = BUL.Address
    Do
        On Error Resume Next
            Dizi.Add Cells(BUL.Row, 1), CStr(Cells(BUL.Row, 1))
        On Error GoTo 0
    Set BUL = Range("B:B").FindNext(BUL)
    Loop While Not BUL Is Nothing And BUL.Address <> ADRES
    End If
            
    For X = 2 To Cells(Rows.Count, 1).End(3).Row
        For Y = 1 To Dizi.Count
            If Cells(X, 1) = Dizi.Item(Y) Then Say = Say + 1
        Next
        If Say = 0 Then Cells(X, 1).EntireRow.Hidden = True
        Say = 0
    Next
    
    Set Dizi = Nothing
    Set BUL = Nothing
    
    Unload Me
End Sub
 
Hocam bu kodu çalışmama eklediğimde sadece B sütununa göre süzme yapıyor. Kodu biraz açıklayabilirseniz belki uygulamada yanlış yaptığım bir yer olmuş olabilir.
 
Merhaba,

TextBox1 nesnesine "AD" yazdığınızda "B" sütununda bu değere göre "A" sütunundaki değerleri benzersiz olarak diziye alıyor.

Daha sonra "A" sütunundaki satırları döngüye alıp benzersiz dizi elemanları ile karşılaştırılıyor. Eşleşmeyen satırlar gizlenerek sadece benzersiz dizi elemanları görünür olarak kalıyor.
 
Hocam burada değiştirmem gereken tek yer A yerine benim Excel'imdeki hedef sütun sanırım. Başka bir değişiklik yapmam gerekiyor mu?
 
Merhaba,

Tabiki kodu kendi dosyanıza uyarlarken "A" yerine kendi hedef sütununuzu tanımlamanız gerekiyor.
 
Geri
Üst