sayfa1 deki sütuna yapılan sıralatma nasıl diğer sayfalarada otomatik uygulanabil

Katılım
19 Aralık 2005
Mesajlar
13
herkese saygılar.beni çok büyük zaman kayıplarından kurtarabilecek bir sorum olucak.30 sayfalık bir çalışma kitabında sayfa1 deki bir sütunda yaptırdığım a.z veya z.a tarzındaki bir sıralatmayı diğer sayfalarında aynı sütununda nasıl otomatik yaptırabilirm yardımcı olursanız beni çok mutlu edersiniz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,447
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Sıralama yaptırdığınızda tüm sayfalarda da sıralama olsun mu istiyorsunuz? Yoksa istediğim sayfada iken sıralama yaptırayım mı diyorsunuz?

Yani bir sıralama makrosu her sayfada çalışsın mı istiyorsunuz?

Hem bu sorulara yanıt veriniz hemde basit bir örnek dosya ekleyiniz. Yardımcı olacak çok arkadaş çıkacaktır.
 
Katılım
19 Aralık 2005
Mesajlar
13
ilginiz için tesekkürler.benim istediğim ben sayfa1 de çalışırken a sütununu z.a şeklinde sıralattığım zaman diğer 30 sayfadada aynı şekilde sıralanmasını istiyorum
böyle birşey mümkün olabilirmi? şunuda belirteyim tüm sayfalardaki bilgi cinsi ve sütun sayısı aynı. örnek olarak basit bir dosyayı ekledim
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

A dan Z ye tüm sayfaları sıralar.
Kod:
Sub TUMSAYFASIRALA()
Dim DEG1, AD As String
Dim I As Integer
DEG1 = InputBox("Sutun seçimi yapınız. A:D Gibi")
AD = InputBox("Hücre seçimi yapınız. A1 Gibi")
For I = 1 To Sheets.Count
Sheets(I).Select
Columns(DEG1).Select
Selection.Sort Key1:=Sheets(I).Range(AD), Order1:=xlAscending
Next
End Sub
 
Son düzenleme:
Katılım
19 Aralık 2005
Mesajlar
13
çok teşekkürler çok işime yaradı.bu sıralam a.z. şeklinde. z.a şeklinde olması için nasıl bir değişiklik gerekiyo acaba?
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Selection.Sort Key1:=Sheets(I).Range(AD), Order1:=xlDescending olarak değiştiriniz.
 
Katılım
19 Aralık 2005
Mesajlar
13
harika oldu tesekkürler tekrar.bana ne kadar zaman kazandırdığınızı bilemessiniz:)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,447
Excel Vers. ve Dili
Ofis 365 Türkçe
Tüm Sayfalarda Sıralama

Merhaba,

Bende sizin için uğraşmıştım, boşa gitmesin :)

Aşağıdaki kodları ThisWorkbook'un kod bölümüne kopyalarsanız, hangi sayfada olursanız olun ve 1. satırda herhangi bir kolonda çift tıklarsanız, Küçükten Büyüğe, Sağ tıklarsanız Büyükten Küçüğe tüm sayfalar tıkladığınız kolona göre sıralanır. Sıralanacak alanları kendisi bulur.

Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=1
    Next i
End If
Son:
End Sub
Kod:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=2
    Next i
End If
Target.Offset(1, 0).Select
Son:
End Sub
 
Katılım
19 Aralık 2005
Mesajlar
13
Merhaba,

Bende sizin için uğraşmıştım, boşa gitmesin :)

Aşağıdaki kodları ThisWorkbook'un kod bölümüne kopyalarsanız, hangi sayfada olursanız olun ve 1. satırda herhangi bir kolonda çift tıklarsanız, Küçükten Büyüğe, Sağ tıklarsanız Büyükten Küçüğe tüm sayfalar tıkladığınız kolona göre sıralanır. Sıralanacak alanları kendisi bulur.

Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=1
    Next i
End If
Son:
End Sub
Kod:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=2
    Next i
End If
Target.Offset(1, 0).Select
Son:
End Sub
öncelikle sunu söyleyeyim gerçekten çok profosyenelce ve paratik bi çalışma olmuş.ama bi yerlerde bir hata var gönderdiğiniz örnekte sıralama yaparken tüm sayfalarda değil bazı sayfalarda sıralama yapıyo.bunu halledebilirsek eminim forumdaki birçok insanın çok işine yarayacaktır.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,447
Excel Vers. ve Dili
Ofis 365 Türkçe
Hakl&#305;s&#305;n&#305;z &#214;z&#252;r Dilerim.

Tek bir sayfada &#231;al&#305;&#351;&#305;yordu kodlar, genele uyarlarken ederken p&#252;f noktas&#305; g&#246;zden ka&#231;m&#305;&#351; :) Kodlar a&#351;a&#287;&#305;da, tekrar dener misiniz?

Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
[B][COLOR=red]  Kolon = Target.Column[/COLOR][/B]
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, [COLOR=red][B]Kolon[/B][/COLOR]), Order1:=1
    Next i
End If
Son:
End Sub
Kod:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
[COLOR=red][B]  Kolon = Target.Column[/B][/COLOR]
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1,[B][COLOR=red] Kolon[/COLOR][/B]), Order1:=2
    Next i
End If
Target.Offset(1, 0).Select
Son:
End Sub
 
Son düzenleme:
Katılım
19 Aralık 2005
Mesajlar
13
elinize sa&#287;l&#305;k &#231;ok g&#252;zel oldu. ger&#231;ekten &#231;ok pratik. bisey sorucam z.a s&#305;ralat&#305;rken sorun yok ama a.z s&#305;ralat&#305;rken yani &#231;ift t&#305;klay&#305;nca her sayfay&#305; s&#305;ralarken bir msgbox penceresi &#231;&#305;k&#305;yo ve 56 173 yaz&#305;yo.yani her sayfa s&#305;ralan&#305;rken entere basmak gerekiyo.bunu nas&#305;l halledebiliriz?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,447
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Denemek i&#231;in koymu&#351;tum o mesaj&#305;, sonra fark&#305;na vard&#305;m, &#252;stteki mesajda d&#252;zelttim. Yeniden al&#305;n&#305;z.
 
Katılım
19 Aralık 2005
Mesajlar
13
evet &#351;u anda kusursuz oldu ve bir&#231;ok insan&#305;n &#231;ok i&#351;ine yarayaca&#287;&#305;na eminim &#231;&#252;nk&#252; insanlar&#305;n en &#231;ok kulland&#305;klar&#305; fonsiyonlar bence s&#305;ralama fonksiyonlar&#305;.size ve V.Basic For Applications uzman&#305; arkada&#351;&#305;m&#305;za en derin sayg&#305;lar&#305;m&#305; sunuyorum.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,447
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba Tekrar,

Kod sayısını teke indirmek olası.

Herhangi bir sayfada 1. satırda herhangi bir hücreye Çift Tıklandığında açılan input mesaja 1 ya da 2 kodu verildiğinde : 1 Küçükten Büyüğe, 2 ise Büyükten Küçüğe sıralar.

Yine aşağıdaki kodları ThisWorkbook'un kod bölümüne kopyalamak gerek.

Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim Tip As Integer
On Error GoTo Son
Application.ScreenUpdating = False
Sayfa_Adı = ActiveSheet.Name
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
Kolon = Target.Column
Tip = InputBox("Nasıl Sıralama Yapmak İstiyorsunuz = 1 : A-Z, 2 : Z-A", "SIRALAMA ŞEKLİ", 1)
If Tip = 1 Or Tip = 2 Then
    SonK = [A1].End(2).Column
    SonS = [A65536].End(3).Row
    If Target.Column <= SonK Then
        For i = 1 To Sheets.Count
            Sheets(i).Select
            Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, Kolon), Order1:=Tip
        Next i
    End If
End If
Sheets(Sayfa_Adı).Select
Cells(1, Kolon).Select
Son:
End Sub
 
Üst