Excel'de çok sayıda çalışma sayfasıyla çalışıyorsanız, yönetiminin bir sorun haline gelebileceğini bilirsiniz.
Birkaç taneden fazla çalışma sayfanız olduğunda, bunları manuel olarak düzenlemeniz gerekir.
Excel'de çalışma sayfalarını hızlı bir şekilde sıralamanın bir yolu olsaydı ne kadar kolay olurdu.
Bunu yapmanın yerleşik bir özelliği olmasa da, VBA kullanılarak (kolayca) yapılabilir.
Bu derste, size Excel'de çalışma sayfalarını sıralamak için izlemeniz gereken kodu ve tam adımları vereceğim.
Çalışma sayfalarını artan veya azalan düzende sıralamak için kodu değiştirebilirsiniz.
Excel'de Çalışma Sayfalarını Sıralamak için VBA kodu
Çalışma sayfalarını çalıştırır çalıştırmaz alfabetik sıraya göre sıralayacak kod aşağıdadır.
Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j). Name) < UCase(Sheets(i).Name) Then Sheets(j).Move Before:=Sheets(i) End If Next j Sonraki i Application.ScreenUpdating = True End Sub
Yukarıdakiler, her bir çalışma sayfasını tüm çalışma sayfalarına karşı analiz etmek için For Next döngülerinde kullanılan basit bir koddur.
Bir çalışma sayfasının adını tüm çalışma sayfalarıyla karşılaştırır ve adına göre alfabetik sıraya göre hareket ettirir.
Ardından bir sonraki çalışma sayfasına geçer ve ardından tüm çalışma sayfalarına karşı kontrol eder.
Bu işlem tüm çalışma sayfaları için tekrarlanır ve nihai sonuç, alfabetik sıraya göre sıralanmış bir çalışma sayfası sırasıdır.
Bu kod hakkında bilmeniz gereken birkaç önemli şey:
- UCase işlevi, küçük ve büyük harflerin farklı şekilde ele alınmamasını sağlamak için kullanılır.
- Application.ScreenUpdating değeri, kodun başında False olarak ayarlanır ve kodun sonunda True olarak değiştirilir. Bu, kod çalışırken, ekranda olduğunu görmemenizi sağlar. Bu aynı zamanda kodun yürütülmesini hızlandırmaya yardımcı olur.
Çalışma sayfalarını azalan düzende sıralamak istiyorsanız, yalnızca (büyüktür) işaretini değiştirmeniz gerekir.
Aşağıdaki kod, çalışma sayfalarını azalan düzende sıralar:
'Bu kod, çalışma sayfalarını alfabetik olarak sıralar Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount UCase(Sheets(j).Name) > UCase(Sheets(i).Name) Then Sheets(j).Move önce:=Sheets(i) End If Next j Sonraki i Application.ScreenUpdating = True End Sub
Ayrıca kullanıcıya artan/azalan düzende sıralama yapmak isteyip istemediğini seçme seçeneği de verebilirsiniz.
Aşağıdaki kod bir mesaj kutusu gösterecektir ve kullanıcı sıralama sırasını seçebilir.
Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox("Artan Sıra için Evet ve Azalan Sıra için Hayır'ı seçin", vbYesNoCancel için ShCount = Sheets için ShCount i = 1 ShCount'a - 1 j = i + 1 ShCount'a Eğer SortOrder = vbYes ise UCase(Sheets(j).Name) UCase(Sheets(i).Name) Then Sheets(j).Move Before:=Sheets (i) End If End If Next j Sonraki i Application.ScreenUpdating = True End Sub
Yukarıdaki kod çalıştırıldığında, aşağıda gösterildiği gibi bir mesaj gösterir. Seçime göre sıralar (Artan için Evet ve Azalan için Hayır).
İptal'i tıklatırsanız kod durur ve hiçbir şey olmaz.
Not: Sıralama geri alınamaz. Orijinal düzeni de korumak istiyorsanız, çalışma kitabının bir kopyasını alın.
Uyarı kelimesi: Yukarıdaki kod çoğu durumda çalışır. Size yanlış sonuç vereceği bir alan, Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022 gibi sekme adlarına sahip olduğunuz zamandır. İdeal olarak, aynı yıllara ait tüm sekmelerin bir arada olmasını istersiniz, ancak Q12021-2022, Q22021-2022'den önce yerleştirileceği için yapılmayacaktır.VBA Kodunu Nereye Koymalı
Excel'in VBA düzenleyicisi adı verilen bir VBA arka ucu vardır.
VBA kodunu kopyalayıp VB Editor modülü kod penceresine yapıştırmanız gerekir.
İşte bunu yapmak için adımlar:
- 'Geliştirici' sekmesini tıklayın. (Geliştirici sekmesini göremiyor musunuz? Nasıl edineceğinizi öğrenmek için burayı tıklayın).
- Visual Basic seçeneğine tıklayın. Bu, arka uçta VB düzenleyicisini açacaktır.
- VB Düzenleyicisi'ndeki Proje Gezgini bölmesinde, kodu eklemek istediğiniz çalışma kitabı için herhangi bir nesneye sağ tıklayın. (Proje Gezgini'ni görmüyorsanız, "Görünüm" sekmesine gidin ve "Proje Gezgini"ne tıklayın.)
- Ekle'ye gidin ve Modül'e tıklayın. Bu, çalışma kitabınız için bir modül nesnesi ekleyecektir.
- Modül penceresindeki kodu kopyalayıp yapıştırın.
VBA Kodu Nasıl Çalıştırılır
Excel'de VBA kodunu çalıştırmanın çeşitli yolları vardır.
Kodu doğrudan Visual Basic Düzenleyicisi'nden (VB Düzenleyici olarak da adlandırılır) çalıştırabilirsiniz.
Çalışma sayfasına bir düğme veya şekil ekleyebilir ve makroyu buna atayabilirsiniz. Düğmeye tıkladığınızda, makroyu anında çalıştıracaktır.
Makroyu Hızlı Erişim Araç Çubuğuna (QAT) da ekleyebilirsiniz. Artık çalışma sayfası sekmelerini sıralamanız gerektiğinde, QAT'deki makro kodu simgesine tıklamanız yeterlidir.
Makroyu çalıştırma hakkında her şeyi buradan okuyabilirsiniz - Excel'de Makro Nasıl Çalıştırılır (veya aşağıdaki videoyu izleyin).Aşağıdaki Excel/VBA Eğitimlerini de Beğenebilirsiniz:
- VBA kullanarak Excel'de Veriler Nasıl Sıralanır.
- Formül kullanarak Verileri Alfabetik Sıraya Göre Otomatik Olarak Sıralayın.
- Excel'de Çok Düzeyli Veri Sıralaması nasıl yapılır.
- Excel Veri Sıralama Seçeneklerine Giriş.
- Excel VBA Otomatik Filtresi: Örneklerle Tam Bir Kılavuz
- Excel'de Çalışma Sayfaları Nasıl Gruplandırılır
- Excel'de Veri Nasıl Çevirilir