• DİKKAT

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

excelde otomatik sıralama

Merhaba,

Sizin istediğinizi yaptım, her hücre değişikliğinde sıralamayı sizin dediğiniz şekildi sıralıyor. Uygulamadaki olumsuzlukları paylaşırsanız sevinirim. Verilere sahip olabilecek misiniz merak ettim gerçekten :)

Sıralama şekli B-C-D sütunu olduğu için Son A sütunundaki değişiklik sonucu sıralama yapmıyor gibi olabilir.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SonKolon As Integer
Dim SonSatir As Long
SonKolon = [IV1].End(1).Column - 1
If Target.Column > SonKolon Then
    MsgBox "Sınırlar İçinde Kalalım Lütfennnnn :)", vbCritical, "[URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
    Exit Sub
End If
If Cells(1, SonKolon + 1) <> 1 And Cells(1, SonKolon + 1) <> 2 Then
    MsgBox "Sıralama Şekli Belli Değil, Küçükten Büyüğe Sıralamak İçin : 1, Büyükten Küçüğe Sıralamak İçin : 2 Olmalıdır " & Cells(1, SonKolon + 1)
    Cells(1, SonKolon + 1).Activate
    Exit Sub
End If
SonSatir = [A65536].End(3).Row
Range(Cells(2, 1), Cells(SonSatir, SonKolon)).Sort Key1:=[B1], Order1:=Cells(1, SonKolon + 1), Key2:=[C2], Order2:=Cells(1, SonKolon + 1), Key3:=[D2], order3:=Cells(1, SonKolon + 1)
End Sub
 

Ekli dosyalar

teşekkür ederim

Teşekkür ederim hocam. Bu sefer tam istediğim gibi olmuş. Elinize ve emeğinize sağlık. Saygılar hoşcakalın.:mutlu:
 
Sınıfımda kitap okuyan öğrencilerin kayıtlarını tutmak için ekli dosyadaki programı yaptım. Ana sayfadaki renkli ile belirttiğim hücrelere giriş yaptığımda her öğrencinin kendi sayfasına örnekteki gibi formüllerle aktarım yapılıyor. Her öğrencinin kendi sayfasına tek tek girip otomatik sıralama yapmam gerekiyor. Bunu da 2.ekli dosyamda yapılmış halini veriyorum. İşte benim istediğim Ana sayfaya verileri girdikten sonra yine ana sayfa üzerinde otomatik sıralamaya tıkladığımda bütün öğrencilerin kendi sayfasında sıralanmış halini görmek istiyorum. Tabiiki öncelikle bunun mümkün olup olmayacağını öğrenmek istiyorum. Makrolar konusunda fazla bilgim yok. Yardımcı olursanız en azından böyle bir şeyin mümkün olup olmayacağı konusunda bilgi verirseniz memnun olurum.
 

Ekli dosyalar

Merhaba,

Eki inceleyiniz..

Tüm Sayfaları seç yaparak tek bir sayfada işlem yaparak diğer sayfalarada yansıtabilirsiniz.Dosya bu şekilde hazırlanmıştır. Tabi ana sayfayı pasif yapmanız gerekir..

.
 

Ekli dosyalar

Ömer Bey, öncelikle göstermiş olduğunuz ilgiden dolayı çok teşekkür ederim. Hazırlamış olduğunuz dosya işimi fazlasıyla görür. Ama ben başka uygulamalarda da kullanmak için otomatik sıralamanın tam olarak benim istediğim gibi olmasını istiyorum. Demek istediğim, ana sayfada verdiğim rakamlara göre her öğrencinin kendi sayfasında kitap isimlerinin de bu verdiğim rakamlara göre sıraya girmesini istiyorum. Yani ana sayfadaki kitapların sıra (satır) numarasına göre değil, benim girdiğim rakamlara göre bu kitapların öğrenci sayfasında sıralanmasını istiyorum. Yardımcı olsanızda olmasanızda çok teşekkür ederim.
 
Makrolu çözümde benden olsun.:cool:
Kod:
Sub kitap()
Dim i As Integer, sut As Integer, sat As Long, k As Long, sat2 As Long
Sheets("Ana").Select
Application.ScreenUpdating = False
sut = 5
sat = Cells(65536, "B").End(xlUp).Row
For i = 2 To Worksheets.Count
    With Sheets(i)
        sat2 = 3
        .Range("A1:D1").Value = ""
        .Range("B3:D65536").Clear
        .Range("A1").Value = Cells(1, sut).Value
        .Range("C1").Value = Cells(2, sut).Value
        For k = 3 To sat
            If Cells(k, sut).Value > 0 Then
                .Cells(sat2, "A").Value = Cells(k, sut).Value
                .Cells(sat2, "B").Value = Cells(k, "B").Value
                .Cells(sat2, "C").Value = Cells(k, "C").Value
                .Cells(sat2, "D").Value = Cells(k, "D").Value
                sat2 = sat2 + 1
            End If
        Next k
        .Range("A3:D65536").Sort .Range("A3")
    End With
    sut = sut + 1
Next i
Application.ScreenUpdating = True
MsgBox "İşlem tamamdır.", vbOKOnly + vbInformation, Application.UserName
End Sub
 

Ekli dosyalar

Tam olarak istediğim buydu. Yardımlarınızdan dolayı herkese teşekkürler.
 
Buda istediğiniz sıralamaya göre fonksiyonlarla yapılan örnek olsun.

.
 

Ekli dosyalar

Ömer Bey, ellerinize sağlık, güzel olmuş. Bir kez daha sonsuz teşekkürler. Sayenizde bundan sonra kitap okuma listesini daha rahat bir şekilde yapacağım. Ayrıca program bana başka çalışmalarımda da rehber olacak. Hepinize kolay gelsin, sağlıcakla kalın.
 
iyi günler. ben excel i yeni kullanmaya başladım ve kütüphanemdeki kitap envanterini çıkarıp excelde bi sıralamaya sokmak ve yeni bi kitap geldiğnde o kolayca sıralamak istiyorum. anlattıklarınızdan bir çok şeyi öğrendim yalnız şöyle bir sorum var veya ben anlamadım tam olarak:

şimdi ben çeşitli veri başlıklarıyla 4-5 sütün yapmak istiyorum ama yaptğım sıralamanın sadece o sütunu etkilemesini istemiyorum yani satır olarak komple sıralamaya girmesini istiyorum. şöle bi örnek veriyim:

yazar adı kitap adı yayınevi
ali gül kırmızı balkon kalem yayınevi
mehmet ak altın çiçek zihin yayınevi

işte böyle bi sıralamada sıralama yaptğımda mesela sadece adlar sıralanıp diğer yerler karışık kalmasın o adın yanındaki bilgilerin de onunla beraber bir bütün olarak sıralanmasını istiyorum. umarım anlatabilmişimdir derdimi, bilgiverebilirseniz minnettar olurum.
 
bu örneği kendime uyarladım ancak şöyle bir sorunum var; ben kendi dosyamda örneğin A2 hücresine giriş yaptıktan sonra hemen ardından B2 hücresine de A2'ye karşılık gelen bir değer giriyorum. önce A sütununa sonra da B sütununa değer girdikten sonra A sütununa göre küçükten büyüğe otomatik sıralama yaptırmak istiyorum. bu kodu nasıl uyarlayacağımı bilemedim
yarımdılarınızı bekliyorum.

saygılar.
 
Alternatif

Yine aşağıdaki kodlar ilgili sayfanın kod bölümünde olmalı.

A sütunundaki bir değişiklikte sıralama yapar ve aynı satırı bulmaya çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
Dim Sat As Long
Dim Kolon As Integer
Dim Deger As String
Dim c As Range
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
If Target.Row < 4 Then Exit Sub
Kolon = [IV3].End(1).Column
Deger = Target.Value
Sat = [A65536].End(3).Row
Range(Cells(4, "A"), Cells(Sat, Kolon)).Sort Key1:=Cells(4, "A")
Set c = Range("A4:A" & Sat).Find(Deger)
Range("B" & c.Row).Select
Son:
End Sub

hocam, eklediğiniz dosya benim işime çok yarayacak. anacak küçük bir değişiklik gerekiyor. ben isime göre alfabetik değil, tarihe göre otomatik sıralama yaptırmak istiyorum. yani en alt satıra tarih yazıp enter'a bastığımda otomatik olarak sıralamadaki yerine atsın ve cursor hemen yanındaki hücreye geçsin. mevcut dosyada isim yazılı sütunu tarihe çevirince sıralama yapıyor, ama hemen yanındaki hücreye otomatik geçemediğim için sıralamada nereye attığını aramak zorunda kalıyorum.
şimdiden teşekkürler
 
bu arada kastettiğim dosya, 6 no.lu mesayda ekli olan dosyadır. belirtmeyi unutmuşum.
saygılar
 
Yaklaşık 2 buçuk sene önce ekli dosyayı son haline getirmiştiniz. O zamandan beri dosyayı kullanıyorum. Bir kez daha teşekkürlerimi borç bilirim. Ancak dosyayı daha rahat kullanabilmek için ana sayfada değişiklik yapmayı düşündüm biraz uğraştım ama yapamadım. İstediğim şekilde olur mu bilemiyorum ama ben yine de derdimi anlatayım. Ana sayfada her öğrencinin okumuş olduğu kitabın karşısına kaçıncı sırada okuduysa o sayıyı yazıyordum.(E sütunu) Bu şekilde kendi sayfasına otomatik sıralanmış şekliyle yansıyordu. Şimdi yapmak istediğim ise sayı yerine kitabı hangi tarihte aldıysa o tarihi girmek istiyorum.(F sütunu) Öğrencinin kendi sayfasına tarih sırasına göre otomatik sıralanmasını ve kitabı teslim aldığı tarihin de geçmesini istiyorum. Teslim tarihi bir sonraki aldığı kitabın alınış tarihi olacaktır. Yardımlarınızdan dolayı sonsuz teşekkürlerimi sunarım.
 

Ekli dosyalar

Otomatik Olarak sayfalara A-Z sıralaması

Değerli üstadlar;
Bir çalışma sayfasında Sayfa1 de yaptığım listeye bir isim eklediğim zaman yanındaki sütünlarla birlikte A-Z ye sıralamasını ve diğer sayfalarda da geçerli olmasını ve onları da sıralamasını planlıyorum. Böyle bir formül var mıdır? Makro sistemlerden anlamıyorum. Fonksiyonel olarak anlatırsanız çok sevinirim. Ekte bir örnek veriyorum. İnceleyip yardımcı olursanız sevinirim.
 

Ekli dosyalar

Alternatif

Yine aşağıdaki kodlar ilgili sayfanın kod bölümünde olmalı.

A sütunundaki bir değişiklikte sıralama yapar ve aynı satırı bulmaya çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
Dim Sat As Long
Dim Kolon As Integer
Dim Deger As String
Dim c As Range
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
If Target.Row < 4 Then Exit Sub
Kolon = [IV3].End(1).Column
Deger = Target.Value
Sat = [A65536].End(3).Row
Range(Cells(4, "A"), Cells(Sat, Kolon)).Sort Key1:=Cells(4, "A")
Set c = Range("A4:A" & Sat).Find(Deger)
Range("B" & c.Row).Select
Son:
End Sub

üstad bu kodları girince A sütununa göre sıralama yapıyor fakat b sütunu aynı kalıyor b sütununu değiştirmek için nasıl bir değişiklik yapacaz çözemedim yardımcı olursan sevinirim teşekkürler
 
Necdet Bey merhaba,

#9 numaralı mesajınızda yazdığınız makro benim için gerçekten çok faydalı oldu.

Ancak bunu kullanabilmem için şunları da yapabilmem lazım ve bir türlü çözemedim:
1- Sıralamayı yalnızca C3:DE265 aralığında yapması,
2- Sıralama için de 2. satırda yer alan sütun başlığına ilk doubleclick'te azalan şekilde, ikinci doubleclick'te ise artan şekilde sıralaması,
Böyle bir şey yapabilir miyiz?
Hatırlatıcı olması açısından yolladığınız kodları aşağıda yapıştıyorum:

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim SonKolon As Integer
Dim SonSatir As Long
SonKolon = [IV1].End(1).Column - 1
If Target.Column > SonKolon Then
    MsgBox "Sınırlar İçinde Kalalım Lütfennnnn :)", vbCritical, "www.excel.web.tr"
    Exit Sub
End If
If Cells(1, SonKolon + 1) <> 1 And Cells(1, SonKolon + 1) <> 2 Then
    MsgBox "Sıralama Şekli Belli Değil, Küçükten Büyüğe Sıralamak İçin : 1, Büyükten Küçüğe Sıralamak İçin : 2 Olmalıdır " & Cells(1, SonKolon + 1)
    Cells(1, SonKolon + 1).Activate
    Exit Sub
End If
SonSatir = [A65536].End(3).Row
Range(Cells(2, 1), Cells(SonSatir, SonKolon)).Sort Key1:=Cells(1, Target.Column), Order1:=Cells(1, SonKolon + 1)
End Sub

İlginiz için şimdiden çok teşekkürler,
 
Alternatif

Yine aşağıdaki kodlar ilgili sayfanın kod bölümünde olmalı.

A sütunundaki bir değişiklikte sıralama yapar ve aynı satırı bulmaya çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
Dim Sat As Long
Dim Kolon As Integer
Dim Deger As String
Dim c As Range
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
If Target.Row < 4 Then Exit Sub
Kolon = [IV3].End(1).Column
Deger = Target.Value
Sat = [A65536].End(3).Row
Range(Cells(4, "A"), Cells(Sat, Kolon)).Sort Key1:=Cells(4, "A")
Set c = Range("A4:A" & Sat).Find(Deger)
Range("B" & c.Row).Select
Son:
End Sub





bu sıralamayı tarih için nasıl yapabiliriz acaba
 
Geri
Üst