Range sınıfının sort yöntemi başarısız

Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
Sn dostlar aslında bu kullandığım sıralama makrosunu birçok sayfada başarı ile kullanmaktaydım.ancak şimdi bu hatayı veriyor.tabi ben ne anlama geldiğini bilmediğim için çözemiyorum yardımcı olurmusunuz .forumda arattım ama bulamadım yada doğru aratamadım.Saygılarımla.

Range("A2").Select
ActiveSheet.Unprotect Password:="0"
Range("A3:J2000").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlAscending, Key3:=Range("B3"), Order3:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select
ActiveSheet.Protect Password:="0", DrawingObjects:=True, Contents:=True, Scenarios:=True
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
şimdi farkettiğim kadarıyla bu kodla çakışıyor.bunu kaldırınca sıralama makrosu çalışıyor.ancak kaldırmak istemiyorum .yolu varmı acaba teşekkürler.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect Password:="0"
If Intersect(Target, [a3:k2000]) Is Nothing Then
[a3:k2000].Interior.ColorIndex = 0
ActiveSheet.Protect Password:="0"
Exit Sub
End If
[a3:k2000].Interior.ColorIndex = 0
ActiveCell.Interior.ColorIndex = 6
ActiveSheet.Protect Password:="0"
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sıralama kodlarınızı aşağıdaki gibi değiştirip deneyin.

Kod:
[COLOR=red]Application.EnableEvents = False[/COLOR]
 
Range("A2").Select
ActiveSheet.Unprotect Password:="0"
Range("A3:J2000").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlAscending, Key3:=Range("B3"), Order3:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select
ActiveSheet.Protect Password:="0", DrawingObjects:=True, Contents:=True, Scenarios:=True
 
[COLOR=red]Application.EnableEvents = True[/COLOR]
veya sadece aşağıdakini kullanın.

Kod:
Range("A3:J2000").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlAscending, Key3:=Range("B3"), Order3:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
Sn fpc bu kodlar çalıştı elinize sağlık.ama müsadenizle birşey daha sormak istiyorum.aynı kodları tarih sıralamadada kullanıyorum.doğum tarihi ve aşı tarihi gibi ve bu tarihler 03/07/07 gibi formatlı ancak kodlar yılları göz önüne alıp ayları pek dikkate almıyor.tarihler için farklı bir sıralama kodu mu kullanılır acaba saygılarımla(bu sorun daha öncede vardı sizin verdiğiniz kod baştaki sorunumu zarten çözdü.teşekkürler)
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Hücrede gördüğünüz değer; 03/07/07 olabilir ama bunun Excel tarafından tarih olarak algılanıp algılanmadığı da önemli.... Yani, eğer 03/07/07 değerini bir formülle, hücrelerin birleştirilmesinden elde ediyorsanız, Excel bunu tarih olarak algılamaz ve sıralamada tarih düzeni (hatta daha doğrusu sayı düzeni) uygulamaz.

Bahsettiğiniz tarih değerini elle mi giriyorsunuz? yoksa bir formülle otomatik olarak mı hesaplanıyor? Eğer formülleyse nasıl bir formül olduğunu buraya yazınız.
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
manuel yani elle giriyorum.ancak bir hata buldum sanırım sorun kodda değil.beni girdiğim bazı tarihleri :02/06//07 gibi excel 02/06/1907 olarak görmüş.nasıl oldu anlamadım.manuel olarak düzeltince sıralamada doğru olarak çalıştı.bütün tarihler elle girildi ama bazı tarihleri neden 1900 gibi aldi anlamadım.teşekkürlerimle
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Bu durum, o verileri kaydettiğiniz bilgisayarın saat ve tarih ayarlarını değiştirdiğiniz güne rastlamış olmalı. Bilgisayarın tarih ayarını kontrol edin. Mutlaka bugünün tarihi olarak; bundan 100 yıl öncesinin tarihi ayarlanmıştır:) Yani siz kısa yoldan 07 dediğinizde, normal şartlarda Excel bunu ilgili 2007 olarak algılar... Ama bilgisayarın güncel tarihi 1900 (yani Excel için tarihin başlangıcı) ise; bunu da 1907 olarak algılar. Milenyum krizine yakalanmışsınız anlaşılan....
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
Sn fpc milenyum krizi değil anladığım.benim bu sayfada bir kayıt için user form var ve hızlı arama var.özellikle arama yapıp kaydı bulmuşsam ve tarih değiştirip tekrar güncelleştirdiysem(user form üzerinden),excele farklı bir formatta kaydediyor.bunuda sıralamada farkediyorum.o tarihi sıralamaya almıyıp sona atıyor.tarih formatı vs birçok yeri kurcaladım olmuyor.o tarihi elle düzeltirsemde bu sefer excel üzerinden userdeki textbox alırken ay ve günün yerini değiştiriyor.yani excelde 02/03/07 olan tarih text de 03/02/07 oluyor bir türlü çözemedim dosyamı ekledim vakit bulur bi bakarsanız sevinirim.saygılarımla
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
anca ekleyebildim


dosyada sarı işaretli tarih ve bitişik aşı tarihi userden girildi ve formatı farklı bunu sıralamada almıyor.tarih formatı ise 14/03/2007 seklinde ayarlı ama olmuyor.elle girdiğimde excele bu tarihi sıralamaya alıyor.userden girince olmuyor

koruma kodu 0 (sıfır)
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kaydet butonuna bağlı kodlarda aşağıdaki satırları değiştirin

MEVCUTTA :
Kod:
ActiveCell.Offset(0, 1).Value = AŞT.Text
ActiveCell.Offset(0, 2).Value = DOĞUM.Text
DEĞİŞİM ŞEKLİ:
Kod:
if isdate(AŞT.Text)=False Then:MsgBox "Tarih giriniz":Exit Sub
if isdate(DOĞUM.Text)=False Then:MsgBox "Tarih giriniz":Exit Sub
ActiveCell.Offset(0, 1).Value = CDATE(AŞT.Text)
ActiveCell.Offset(0, 2).Value = CDATE(DOĞUM.Text)
Listbox1'in Click olayın daki ilgili satırları da aşağıdaki gibi değiştirin.
MEVCUTTA :
Kod:
AŞT.Value = ActiveCell.Offset(0, 1).Value
DOĞUM.Value = ActiveCell.Offset(0, 2).Value
DEĞİŞİM ŞEKLİ:
Kod:
AŞT.Value = CDATE(ActiveCell.Offset(0, 1).Value)
DOĞUM.Value = CDATE(ActiveCell.Offset(0, 2).Value)
 
Katılım
12 Ocak 2007
Mesajlar
465
Excel Vers. ve Dili
2003
Sn fpc yardımlarınıza teşekkür ederim.size dosyamı tekrar son haliyle gönderiyorum.müsait olur ve bir fikir verirseniz memnun olurum.
Tarih formatı ile ilgili sorunun halen devam ediyor.belkide ben yanlış anlatıyor olabilirim.userform da adı kısmına "batuhan tasasız ,mevlüt uluışık "isimlerinden birini yazdığınızda aşı tarihi ve doğum tarihi formatları karışıyor,yani doğum tarihi 01/10/06 olarak excelde kayıtlı çocuğun user görüntüsü 10/01/06 olarak geliyor.bu genel bir excel sorunu değil sanıtrım çünki aynı isim kutusuna gülşen yılman yazdığınızda aşı ve doğum tarihleri usere exeldeki şekliyle geliyor.içinden çıkamadım.yani bazı hücrelerdeki tarihleri farklı alıyor.eğer yardımcı olabilir vefırsat bulur bakabilirseniz sevinirim.üstte verdiğiniz kodlarla denedim ama olmuyor.saygılar


Sevgili diğer hocalarım.sizlerinde çok yardımını aldım.bu konuya daha önce sn fpc cevap vermiş olduğundan onun adını kullandım.bilgisi olan ve yardım edebileceklerden yardım almayada hazırım.herkese teşekkürler.
 
Üst