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

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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..

.
 
Katılım
11 Kasım 2007
Mesajlar
21
Excel Vers. ve Dili
Office 2003 - Türkçe ingilizce
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.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,531
Excel Vers. ve Dili
Ofis 365 Türkçe
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
 
Katılım
11 Kasım 2007
Mesajlar
21
Excel Vers. ve Dili
Office 2003 - Türkçe ingilizce
Ç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

Necdet

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

Adını soyadını birleştirmek sorun değil, siz onu birleştirin tek hale getirin ve yukarıda verdiğim kodu kullanabilirsiniz.
 
Katılım
11 Kasım 2007
Mesajlar
21
Excel Vers. ve Dili
Office 2003 - Türkçe ingilizce
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.
 

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
348
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
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:
Katılım
21 Mart 2008
Mesajlar
232
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
16-07-2023
=a1&" "&b1 bu formülü dene
hangi hücre ise sen a1 ve b1 i ona göre ayarlarsınız
 

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
348
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
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.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ü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
 

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
348
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
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
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
348
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
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
 
Katılım
23 Haziran 2009
Mesajlar
7
Excel Vers. ve Dili
2007
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.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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:
 
Katılım
7 Ağustos 2007
Mesajlar
328
Excel Vers. ve Dili
excell 2003 - 2007
Sn Ersin Yıldız Dosyanız ekte makroyu çalıştırıp dener misiniz?
istediğiniz sonuca ulaşabiliyor mu?
 

Ekli dosyalar

Üst