• DİKKAT

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

Oto Filtreleme ile ilgili bir makro

  • Konbuyu başlatan Konbuyu başlatan Leturc
  • Başlangıç tarihi Başlangıç tarihi
Katılım
31 Temmuz 2008
Mesajlar
93
Excel Vers. ve Dili
2003
Üstadlar tekrardan selamlar,

Oto filtreleme ile ilgili bir makro hazırlamıştım (makro kaydederek) ve bir süre çalıştığını zannetmiştim :)

Şöyle ki ben makromu kaydettikten sonra 2 adet düğme ekledim. Bu düğmeler aracılığıyla makro yu çalıştırıyorum.

Amacım J (Date) ve Q (Lieu) sütunlarını önce J'den başlayarak peşinden Q sütununu da dahil ederek sıralamaktı.

Aslında bir yere kadar işlem gerçekleşiyor ama filtreleme yaparken son sütunu da alıyor ki burada herşey birbirine giriyor.

Toplamlar filtrelemeye dahil oluyor ve işin içinden çıkılmaz hale geliyor.

Yardımcı olabilir misiniz?

Teşekkürler, saygılar...
 

Ekli dosyalar

oto filtreleme ile ilgili bir makro göremedim.
ama sıralama (SORT) ile ilgili makrolar var.

mevcut makrolardan hareketle ve tablonun 9-16. satırlarda olacağını değerlendirerek aşağıdaki gibi bir çözüm önerebilirim. sayfada gruplama ve alt toplam alma vb işlemlerden ötürü önce onları kaldırıyor...

Kod:
Sub date_lieu()
    Dim rng As Range
    With Worksheets("Données")
        .Cells.ClearOutline
        Set rng = .Range("B9:AJ16")
        rng.Sort Key1:=.Range("J10"), Order1:=xlAscending, _
            Key2:=.Range("P10"), Order2:=xlAscending, _
            Header:=xlYes
    End With
End Sub



Sub SECTOR_DATE()
    Dim rng As Range
    With Worksheets("Données")
        .Cells.ClearOutline
        Set rng = .Range("B9:AJ16")
        rng.Sort Key1:=.Range("C10"), Order1:=xlAscending, _
            Key2:=.Range("J10"), Order2:=xlAscending, _
            Header:=xlYes
    End With
End Sub
 
TEşekkür ederim yardımınız için ancak maalesef yine aynı noktada takıldım kaldım. Şöyle ki tablo sabit değil ve sütun sayısı değişken. Bu nedenle kod kısıtlanmış oluyor :(


oto filtreleme ile ilgili bir makro göremedim.
ama sıralama (SORT) ile ilgili makrolar var.

mevcut makrolardan hareketle ve tablonun 9-16. satırlarda olacağını değerlendirerek aşağıdaki gibi bir çözüm önerebilirim. sayfada gruplama ve alt toplam alma vb işlemlerden ötürü önce onları kaldırıyor...

Kod:
Sub date_lieu()
    Dim rng As Range
    With Worksheets("Données")
        .Cells.ClearOutline
        Set rng = .Range("B9:AJ16")
        rng.Sort Key1:=.Range("J10"), Order1:=xlAscending, _
            Key2:=.Range("P10"), Order2:=xlAscending, _
            Header:=xlYes
    End With
End Sub



Sub SECTOR_DATE()
    Dim rng As Range
    With Worksheets("Données")
        .Cells.ClearOutline
        Set rng = .Range("B9:AJ16")
        rng.Sort Key1:=.Range("C10"), Order1:=xlAscending, _
            Key2:=.Range("J10"), Order2:=xlAscending, _
            Header:=xlYes
    End With
End Sub
 
ben kayıt makrolarından hareket ile bir çözüm üretmiştim.

siz veri eklemedikçe sütun sayısı değişmez. yapılan gruplama işlemi görsel ve veri organizasyonu amaçlıdır. bu nedenle önce "outline"ı kaldırıp kodları ondan sonra çalıştırıyoruz.

tam olarak hangi kodda hangi sütun başlığına göre sıralama yapmak istiyorsanız ona göre değerlendirelim.
 
doğru anladı isem şöyle bir şey de olabilir.


Kod:
Sub date_lieu()
    Dim rng As Range
    Dim ssut As Long, ssut1 As Long, ssut2 As Long
    With Worksheets("Données")
        .Cells.ClearOutline
        ssut = .Cells(9, .Columns.Count).End(xlToLeft).Column
        Set rng = .Range(.Cells(9, 2), .Cells(16, ssut))
        ssut1 = .Rows(9).Find("Inspection Date").Column
        ssut2 = .Rows(9).Find("Nb Mandays").Column
        rng.Sort Key1:=.Cells(10, ssut1), Order1:=xlAscending, _
            Key2:=.Cells(10, ssut2), Order2:=xlAscending, _
            Header:=xlYes
    End With
End Sub



Sub SECTOR_DATE()
    Dim rng As Range
    Dim ssut As Long, ssut1 As Long, ssut2 As Long
    With Worksheets("Données")
        .Cells.ClearOutline
        ssut = .Cells(9, .Columns.Count).End(xlToLeft).Column
        Set rng = .Range(.Cells(9, 2), .Cells(16, ssut))
        ssut1 = .Rows(9).Find("Sector").Column
        ssut2 = .Rows(9).Find("Inspection Date").Column
        rng.Sort Key1:=.Cells(10, ssut1), Order1:=xlAscending, _
            Key2:=.Cells(10, ssut2), Order2:=xlAscending, _
            Header:=xlYes
    End With
End Sub
 
hocam denemeleri yapıyorum. Şu an için herhangi bir sorun ile karşılaşmadım. Teşekkür ederim

Peki 16 numaralı satır bittikten sonra otomatik satır ekletme özelliği / makrosu var mıdır excelin=?
 
bir önceki kodda sıralama (sort) yapılacak sütun numarasını, 9. satırdaki sütun başlıklarını aratarak bulduk.

birinci makroda "Inspection Date" ve "Nb Mandays" değerlerini, ikinci makroda "Sector" ve "Inspection Date" değerlerini arattık.

bu veriler daha sonra farklı sütunlara gitse bile sıralama işlemini bu yeni sütunlara göre yapacaktır.
 
satır eklemek mümkün.

ben kısaca yazayım. siz kendi durumunuza uyarlayın.

11. satıra 1 satır eklemek:
Kod:
Rows("11").Insert


11-15. satırlara 5 satır eklemek:
Kod:
Rows("11:15").Insert
 
Geri
Üst