Excel'deki özel sıralama çok kullanışlı bir özelliktir. Bu yazımızda Excel VBA kullanarak bir aralıktaki özel sıralamayı otomatik olarak nasıl güncelleyebileceğimizden bahsedeceğiz.
Özel sıralamayı kullandığınızda, bunun Excel'de harika bir özellik olduğunu göreceksiniz. Ancak, bu özelliği sık kullanırsanız, bir sorun da bulabilirsiniz. Belirli veri ve bilgilere sahip bir aralıkta sıralama yapacaksınız. Aralığa ek veri ve bilgi eklediğinizde, aralıktaki sıralama otomatik olarak değişmeyecektir. Aşağıdaki resim böyle bir durumun bir örneğini göstermektedir.
Aralığa yeni bir veri seti eklediğinizde, sıralama otomatik olarak değişmeyecektir. Yine de bu daha geniş aralığı aynı ölçütlere göre yeni veri kümesiyle sıralamak istiyorsanız, özel sıralama işlemini yeniden gerçekleştirmeniz gerekir. Özellikle çalışma sayfasındaki veri ve bilgileri sürekli güncellemeniz gerektiğinde bunun çok zahmetli olduğunu görebilirsiniz. Aralığa her yeni bilgi eklediğinizde, yeniden sıralamanız gerekir. Bu sorunu çözmek ve görevinizi hızlı bir şekilde bitirmek için bu makaleyi okumaya devam edebilirsiniz.
Makro Kaydet
Özel sıralama kriterleri çok karmaşık olduğunda, doğrudan VBA kodlarını yazmakta zorlanacaksınız. Böylece, şimdi önce bir makro kaydedebilirsiniz. Ve bu makrodaki kodlar başka makrolarda kullanılabilir. Kodları kaydetme işlemi çok kolaydır.
- Bir makro kaydetmeden önce, şeride VBA sekmesini eklemeniz gerekir. Burada şeritteki herhangi bir sekmeye sağ tıklayın.
- Ardından menüden "Şeridi Özelleştir"i seçin.
- Şimdi "Excel Seçenekleri" penceresinde, "Ana Sekmeler" listesinden "Geliştirici" seçeneğini işaretleyin.
- Bundan sonra, pencerede "Tamam" ı tıklayın. Bu nedenle, şeritteki sekmeyi eklediniz.
- Şimdi çalışma sayfasına geri döneceksiniz. Eklemiş olduğunuz “Geliştirici” sekmesine tıklayın.
- Ardından araç çubuğundaki “Makro Kaydet” düğmesine tıklayın. Böylece “Makro Kaydet” penceresi açılacaktır.
Öte yandan, yukarıdaki 6 adımı değiştirmek için çalışma sayfasının altındaki küçük düğmeyi de tıklayabilirsiniz.
- Şimdi "Makro Kaydet" penceresinde, adı ilk metin kutusuna girin. Gerekirse bir kısayol tuşu atayın. Ardından ihtiyacınıza göre açıklamayı ekleyin.
- Sonra "Tamam"a tıklayın. Böylece makro yaptığınız her işlemi kaydetmeye başlar.
- Çalışma sayfasında sıralamanız gereken aralığı seçin.
- "Ana Sayfa" sekmesine tıklayın.
- Ardından şeritteki "Sırala ve Filtrele" düğmesini tıklayın.
- Açılır listede “Özel Sıralama” seçeneğini seçin.
- “Sırala” penceresinde, ihtiyacınıza göre kriterleri belirleyin. Tüm eylemler makroya kaydedilecektir.
Makro kaydederken ek adımlar atmayın. Aksi takdirde bu adımlar da kaydedilecektir. Bu da ilerleyen kısımlarda sıkıntı yaratacaktır.
- “Sırala” penceresindeki ayarı tamamladıktan sonra, ayarları kaydetmek için “Tamam”a tıklayın.
- Şimdi şeritteki "Geliştirici" sekmesine tekrar tıklayın.
- Ardından "Kaydı Durdur" düğmesini tıklayın. Çalışma sayfası makro kaydetme durumundayken, düğme "Kaydı Durdur" olarak değişecektir.
Makro kaydını durdurmak için çalışma sayfasının altındaki düğmeyi de tıklayabilirsiniz. Böylece kaydı bitirmiş olursunuz. Tüm sıralama kriterleri Makro 1'e kaydedilmiştir.
Excel VBA Makrolarını Kullanın
Bu bölümde, çalışma sayfanızdaki özel sıralamayı güncellemek için VBA makrolarını nasıl kullanacağınızı göstereceğiz. Ayrıca bu bölümde kaydedilen makroları da kullanacaksınız.
- Şeritte "Geliştirici" sekmesine tıklayın.
- Ardından araç çubuğundaki "Visual Basic" düğmesine tıklayın. Bunun yerine, 11 adımı değiştirmek için klavyedeki “Alt +F2” düğmesine de basabilirsiniz.
- Visual Basic düzenleyicisinde, "VBAProject" alanındaki sayfaya çift tıklayın. Bu sayfada, özel sıralamayı güncellemeniz gerekiyor. Ve gerçek dosyanızda, ilgili sayfaya çift tıklamanız gerekir.
- Şimdi aşağıdaki kodları alana girin.
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
- Ve sonra yukarıdaki iki VBA cümlesi arasına aşağıdaki kodları girin.
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
End If
Burada aralık tahmin edilmektedir. Satış hacmi için 12 ay olacak ve başlığın ilk satırı ile birlikte “A1:C13” aralığını giriyoruz. Aralığı, gerçek çalışma sayfanıza göre de kodlara girebilirsiniz.
- Bu adımda, düzenleyicide modül 1'i açın. Bu modüldeki kodlar daha önce yapmış olduğunuz özel sıralama işlemidir. Makro kaydetme özelliğini kullanmanın size çok zaman kazandırdığını görebilirsiniz.
- Şimdi ana kısmı bu modüle kopyalayın.
- Ardından “VBAProject” bölümündeki hedef sayfaya çift tıklayın.
- Bundan sonra, kodları IF-END IF kodlarına yapıştırın.
- Ardından, kodlardaki aralığı ihtiyacınıza göre değiştirin. Kaydedilen makro biraz karmaşık ve gereksizdir. Ayrıca ihtiyacınıza göre değiştirebilirsiniz. Bu nedenle, tam VBA kodları şöyle olacaktır:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("B2:B13"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("C2:C13"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
End With
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C13")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
End Sub
Kodların içine başka bir WITH-END WITH ekliyoruz. Böylece kayıt sonucundan daha net olacaktır. Başka gereksinimleriniz varsa, gerçek ihtiyacınıza göre de değiştirebilirsiniz. Kodları değiştirirken dikkatli olmalısınız. Aksi takdirde, çalışma sayfasında bazı yanlış sonuçlar üreteceksiniz.
- Artık editördeki VBA kodlarını bitirdiniz. Çalışma sayfasına geri dönebilir ve sonucu test edebilirsiniz. Aralığa bir sonraki ayı ve karşılık gelen sayıları eklediğinizde, özel sıralama otomatik olarak yenilenir.
Bu nedenle, hedef aralığa yeni öğeler girdiğinizde özel sıralamayı her seferinde manuel olarak güncellemenize asla gerek kalmayacak. Öte yandan, bu çalışma kitabını makro etkinleştirilmiş bir Excel dosyası olarak kaydetmeniz gerekiyor. Aksi takdirde, sıradan bir dosya olarak kaydederseniz kodları kaybedersiniz.
Excel Yolsuzluk Mağdurlarına Yardım Sağlayacağız
Excel'in çok güçlü olduğunu ve işinizi hızlı ve kolay bir şekilde bitirmenize yardımcı olabileceğini hepimiz biliyoruz. Ancak Excel uygulaması hala mükemmel olmaktan uzak. Bazen Excel birçok farklı nedenden dolayı bozulabilir. Excel bozulduğunda, bu uygulama ile görevlerinizi tamamlayamazsınız. Daha iyi çalışabilmesi için en kısa sürede tamir etmeniz gerekecek.
Firmamız özellikle Excel kurtarma olmak üzere kurtarma alanı üzerinde uzun yıllardır çalışmaktadır. Bu nedenle, yardım için teknik ekibimize başvurabilirsiniz. Yılların verdiği tecrübe ile dosyalarınıza zarar veren sebebi kolayca anlayabiliriz. Ve size daha iyi yardımcı olmak için Excel xlsx dosya hasarını onarın, üçüncü taraf bir araç geliştirdik. Bu aracı manipüle etmek çok kolaydır ve gizlilik sorunu hakkında endişelenmenize gerek yoktur.
Yazar Tanıtımı:
Anna Ma bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. Word docx hatasını onar ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com









