• DİKKAT

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

Alfabetik Sıralama Makrosu

Katılım
11 Kasım 2007
Mesajlar
21
Excel Vers. ve Dili
Office 2003 - Türkçe ingilizce
Arkadaşlar bir sıralama makrosuna ihtiyacım var. Veya fonksiyona. Excelde bir listem var. Oldukça uzun bir liste. Bu liste karışık bir halde geliyor. Ancak benim teslim ederken önce firmaları alfabetik sıralamam, sonra firma içindeki İsimlere göre alfabetik sıralama yapmam gerekiyor. Alfabetik sıralama yaptığımda kişilere ait doğum yeri, doğum tarihi, firma adı ve pasaport no gibi verilerin değişmemesi gerekiyor. Yardımcı olabilirseniz çok sevinirim. Saygılarımla
 

Ekli dosyalar

Merhaba,

Bu işlemi makro yada formüle gerek kalmadan yapabilirsiniz.

B4 hücresinde iken Veri / Sırala menüsünden B sütununu ( Adı Soyadı ) sıralatabilirsiniz. Başlık satırı var butonunu işaretleyiniz..

.
 
Espiyonajl bey;
Yardımınız için çok teşekkür ederim, ancak firma isimleri karmaşık hale geliyor. Benim yapmam gereken hem firma isimleri sıralanacak. Firmalara görede Ad ısaralaması gerçekleşecek. Tekrar teşekkür ederim.
 
Merhaba,

Makrolu isterseniz :

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayınız.
Hangi sütuna göre sıralama yaptırmak istiyorsanız o sütunun herhangi bir hücresine çift tıklamanız yeterli.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:E]) Is Nothing Then Exit Sub
Range("A5:E" & [A65536].End(3).Row).Sort Key1:=Cells(1, Target.Column)
End Sub
 
Çok özürdilerim sevgili arkadaşlar ama biraz önce yollamış olduğum dosyanın bir kısmını ben düzeltmiş olduğum için hatalı oldu galiba.Ve tam olarak anlatamadım. Örnek bir dosya yolluyorum içinde daha ayrıntılı anlatmaya çalıştım. Yardımlarınız için çok teşşekkür ederim şimdiden.
 

Ekli dosyalar

Merhaba,

Adını soyadını birleştirmek sorun değil, siz onu birleştirin tek hale getirin ve yukarıda verdiğim kodu kullanabilirsiniz.
 
Bildiğim kadarı ile =birleştir(Hücre1;Hücre2) şeklinde formül. Bu şekilde yaptığımda arada boşluk bırakmıyor. Diğer türlü gerçekten zaman alıyor. Yani tek tek yapmak. Çok fazla zamanımı aldığı için böyle bir yardım talebinde bulundum siz ustalardan.
 
Bildiğim kadarı ile =birleştir(Hücre1;Hücre2) şeklinde formül. Bu şekilde yaptığımda arada boşluk bırakmıyor. Diğer türlü gerçekten zaman alıyor. Yani tek tek yapmak. Çok fazla zamanımı aldığı için böyle bir yardım talebinde bulundum siz ustalardan.


Ad Soyad İçin: =birleştir(Hücre1;" ";Hücre2)
F,G,H için: =birleştir(F4;"-";G4;"-";H4)

Bu şekilde formüle ederseniz olacaktır.

Sıralamaya gelince veri/sırala seçeneğinden ilk düzeyde firma sütunun seçersiniz ikinci düzeyde isimleri seçerseniz istediğiniz şekilde sıralanacaktır.
 
Son düzenleme:
=a1&" "&b1 bu formülü dene
hangi hücre ise sen a1 ve b1 i ona göre ayarlarsınız
 
Merhaba,

Makrolu isterseniz :

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayınız.
Hangi sütuna göre sıralama yaptırmak istiyorsanız o sütunun herhangi bir hücresine çift tıklamanız yeterli.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:E]) Is Nothing Then Exit Sub
Range("A5:E" & [A65536].End(3).Row).Sort Key1:=Cells(1, Target.Column)
End Sub


Üstad,
burda tek düzey olarak sıralama yapıyor.Küçükten büyüğe doğru büyükten küçüğe doğru sıralama yapabilir miyiz.

İkinci olarakda diyelimki A sütuna göre sıraladıktan sonra A sütunundaki sıralama değişmeden 2. bir düzey olarak b sütununa göre sıralamak istiyorum. bu şekilde yapılabilir mi.
 
Üstad,
burda tek düzey olarak sıralama yapıyor.Küçükten büyüğe doğru büyükten küçüğe doğru sıralama yapabilir miyiz.

İkinci olarakda diyelimki A sütuna göre sıraladıktan sonra A sütunundaki sıralama değişmeden 2. bir düzey olarak b sütununa göre sıralamak istiyorum. bu şekilde yapılabilir mi.
Aşağıdaki kodları çalışma sayfasının kod bölümüne yazınız.Öncekileri siliniz . çift tıklayınca , a sütununda artan sıarlama b sütunundada azalan sıralama yapıyor.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:E]) Is Nothing Then Exit Sub
Cancel = True
Range("A5:E" & [A65536].End(3).Row).Sort Key1:=Cells(1, "A"), key2:=Cells(1, "B"), Order2:=xlDescending
End Sub
 
Aşağıdaki kodları çalışma sayfasının kod bölümüne yazınız.Öncekileri siliniz . çift tıklayınca , a sütununda artan sıarlama b sütunundada azalan sıralama yapıyor.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:E]) Is Nothing Then Exit Sub
Cancel = True
Range("A5:E" & [A65536].End(3).Row).Sort Key1:=Cells(1, "A"), key2:=Cells(1, "B"), Order2:=xlDescending
End Sub

Sadece "H" sütununu küçükten büyüğe doğru sıralamak istiyorum ama beceremedim.Hep büyükten küçüğe dorğu sıralanıyor.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:K]) Is Nothing Then Exit Sub
Range("A2:K" & [A65536].End(3).Row).Sort Key1:=Cells(1, "H"), Order1:=xlDescending
End Sub
 
Sadece "H" sütununu küçükten büyüğe doğru sıralamak istiyorum ama beceremedim.Hep büyükten küçüğe dorğu sıralanıyor.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A:K]) Is Nothing Then Exit Sub
Range("A2:K" & [A65536].End(3).Row).Sort Key1:=Cells(1, "H"), Order1:=xlDescending
End Sub

Aşağıdaki gibi deneyiniz.:cool:
Kod:
If Intersect(Target, [A:K]) Is Nothing Then Exit Sub
Range("A2:K" & [A65536].End(3).Row).Sort Key1:=Cells(1, "H")
End Sub
 
Aşağıdaki gibi deneyiniz.:cool:
Kod:
If Intersect(Target, [A:K]) Is Nothing Then Exit Sub
Range("A2:K" & [A65536].End(3).Row).Sort Key1:=Cells(1, "H")
End Sub

Teşekkür ederim.Eline sağlık.İstediğim gibi oldu

Aşağıdaki makroyu kaydet yöntemiyle yaptıp.Makroda ilk koşul olarak "A" sütununa göre sıralama artan düzeyde yapıyor.İkinci koşul olarak "F" sütununa göre artan düzeyde sıralama yapıyor.
Sayfa 1 olarak yazdığı için sadece sayfa birde çalışıyor.Her sayfada çalışması için sayfa1 yerine ne yazmalıyım.Yardımcı olabilir misiniz.

Sub Siralama()
ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Add Key:=Range("A2:A24") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Add Key:=Range("F2:F24") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sayfa1").Sort
.SetRange Range("A1:H24")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
 
abiler konu burda açılmış diye buraya yazıyorum inşallah cevap gelir elimde 40000 kişilik hasta listesi var aynı kişinin 4,5 kez müracaat etmiş benden istenen en fazla müracaat eden ilk 30 kişi bunu nasıl sıralayabilirim.
 
abiler konu burda açılmış diye buraya yazıyorum inşallah cevap gelir elimde 40000 kişilik hasta listesi var aynı kişinin 4,5 kez müracaat etmiş benden istenen en fazla müracaat eden ilk 30 kişi bunu nasıl sıralayabilirim.
Yeni bir başlık açarak sorunuzu sorunuz.:cool:
 
Sn Ersin Yıldız Dosyanız ekte makroyu çalıştırıp dener misiniz?
istediğiniz sonuca ulaşabiliyor mu?
 

Ekli dosyalar

Geri
Üst