Ömer BARAN
Uzman
- Katılım
- 8 Mart 2011
- Mesajlar
- 12,997
- Excel Vers. ve Dili
- Office 2013 ( 32 bit ) TÜRKÇE
- Altın Üyelik Bitiş Tarihi
- (18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Tekrar merhaba.
Sorunu pek anlamadım, bazı denemeler yaptım ama malesef sonuç alamadım.
Çözüm için şöyle bir yöntem düşündüm;
-- önce Sayfa2'deki rütbe listesinin bulunduğu alan için rutbe ismini vererek bir AD TANIMLAMASI oluşturup,
-- ardından uygun bir sütunda (ben R sütununu düşündüm), bir sütun ilave edip (kod tarafından sonradan silinmek üzere), eklenen sütunda G sütunundaki rütbelerin, rütbe sıralamasında kaçıncı sırada olduğunu bulup,
-- sıralamayı artık, G sütunu yerine R sütununu ikinci kriter olarak kullanarak (öncelik sırasına göre E,R,C sütunları) gerçekleştirip,
-- son olarak da geçici olarak eklenen R sütunu silinir.
Yukarıdaki işlemlerin tümü (AD TANIMLAMASI dahil) aşağıdaki kod tarafından yapılıyor.
Sıralama alanını A:Z sütun aralığı olarak yazdım ve sıralama işlemi .Sort kelimesinin olduğu tek kod satırında gerçekleşiyor.
.
Sorunu pek anlamadım, bazı denemeler yaptım ama malesef sonuç alamadım.
Çözüm için şöyle bir yöntem düşündüm;
-- önce Sayfa2'deki rütbe listesinin bulunduğu alan için rutbe ismini vererek bir AD TANIMLAMASI oluşturup,
-- ardından uygun bir sütunda (ben R sütununu düşündüm), bir sütun ilave edip (kod tarafından sonradan silinmek üzere), eklenen sütunda G sütunundaki rütbelerin, rütbe sıralamasında kaçıncı sırada olduğunu bulup,
-- sıralamayı artık, G sütunu yerine R sütununu ikinci kriter olarak kullanarak (öncelik sırasına göre E,R,C sütunları) gerçekleştirip,
-- son olarak da geçici olarak eklenen R sütunu silinir.
Yukarıdaki işlemlerin tümü (AD TANIMLAMASI dahil) aşağıdaki kod tarafından yapılıyor.
Sıralama alanını A:Z sütun aralığı olarak yazdım ve sıralama işlemi .Sort kelimesinin olduğu tek kod satırında gerçekleşiyor.
.
Rich (BB code):
Sub RUTBEYE_GORE_SIRALA()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic ' bu satır sonradan eklendi
Set s1 = Sheets("Sayfa1")
sonsat = s1.Cells(Rows.Count, 1).End(3).Row
If sonsat = 1 Then Exit Sub
s1.Columns("R:R").Insert Shift:=xlToRight
ActiveWorkbook.Names.Add Name:="rutbe", RefersTo:="=Sayfa2!$Z$2:$Z$17"
s1.[R2].Formula = "=MATCH(G2,rutbe,0)"
s1.[R2].AutoFill Destination:=s1.Range("R2:R" & sonsat)
s1.Range("A2:Z" & sonsat).Sort Key1:=s1.[E2], Order1:=1, Key2:=s1.[R2], Order2:=1, Key3:=s1.[C2], ORder3:=1
Columns("R:R").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
MsgBox "RÜTBEye göre sıralama yapıldı."
End Sub
Son düzenleme: