• DİKKAT

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

Sıralama sorunu

manisali50

Banned
Katılım
29 Ekim 2010
Mesajlar
471
Excel Vers. ve Dili
Excel2003
Arkadaşlar merhaba.
Buradaki üstadlarımın üstün ilgi ve gayretleriyle oluşturduğum programla ilgili sıralama sorunu ortaya çıktı.
Ekte gönderdiğim programın "GİRİŞ" , "ÇIKIŞ" ve "STOK" sayfalarına "ANA EKRAN" sayfasından ve başka bir programdan veriler aktarıyorum.
İsteğim şu :
Aktardığım bu verileni her üç sayfada da "PARÇA NO" sütunları baz alınarak sıraya sokulması..Yalnız şöyle bir sorun var.
Sıralama;normal bir sıralam şeklinde olmayacak . Alfa karakterler en başta,sayısal karakterler ondan sonra gelmek üzere ve rakamların kendi değerlerine göre (basamak değerlerine göre değil) sıralanması lazım..
Örneğin;1111 sayısı 22 sayısından büyük ama benim istediğim sıralamada 1111 sayısı başta olacak..Umarım anlatabilmişimdir.
Yine burada bir üstadım daha önceki bir programımda bu sorunu halletmişti..Üstadımın yazdığı kodları ayağışa yazıyorum..İşte bu kodları benim ekteki programıma uyarlayamadım bir türlü..Kodlar şöyle idi :

Range("A5:K" & ss).Sort Key1:=Range("K5"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Range("A" & ss).Offset(1, 0).Select
Case Else
End Select

End Sub
 

Ekli dosyalar

Syn. Manisalı50;
Ekteki dosyayı inceleyin. İstediğiniz bumu?
 

Ekli dosyalar

Arkadaşlar merhaba.
Sıralama sorunu ile ilgili dosyam ilişiktedir.
İlgi ve yardımlarınıza şimdiden teşekkürler
 

Ekli dosyalar

3 tane makro var.

her makroda "MsgBox....." satırından önce gelmek üzere aşağıdaki satırları ekleyin. bakalım olacak mı?

Liste_Aktar() ve Aktar_Çıkış() makrolarına:
Kod:
    .Cells(ss, 13).FormulaR1C1 = "=IF(RC[-6]=0,1&"" ""&REPT(""Z"",7)&"" ""&RC[-6],IF(ISNUMBER(RC[-6]),LEFT(RC[-6])&"" ""&REPT(""Z"",7)&"" ""&RC[-6],1&"" ""&TEXT(RC[-6],""#"")))"
    .Range("A4:M" & ss).Sort Key1:=Range("M4"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal



yeni_malzeme() makrosuna:
Kod:
        .Cells(ss, 13).FormulaR1C1 = "=IF(RC[-11]=0,1&"" ""&REPT(""Z"",7)&"" ""&RC[-11],IF(ISNUMBER(RC[-11]),LEFT(RC[-11])&"" ""&REPT(""Z"",7)&"" ""&RC[-11],1&"" ""&TEXT(RC[-11],""#"")))"
        .Range("A4:M" & ss).Sort Key1:=Range("M4"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, _
            MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal


not: cevap veren kişilerin ayırdıkları zaman ve harcadıkları çaba açısından geri dönüşümde bulunmaya özen gösterelim. aşağıda sayın ynmcany'nin çalışması açıkta kalmış.
 
Üstadım merhaba..
Öncelikle ilgine teşekkür ediyorum..
Yanıt veren bütün üstadlarıma sonsuz teşekkürlerimi anında sunmayı bir görev ve borç bilmişimdir her zaman..Dün gece sistemde meydana gelen br arızadan dolayı çok geç saatte girebildim,onu da size hemen yazdım.Gündüz ise size daha önce de söyledim.İşyerimde ancak öğle arası 12,00-13,00 arası girebiliyoruz hemen bakıp yanıtlıyorum.
Kodlar maalesef çalışmıyor.
.Range("A4:M" & ss).Sort Key1:=Range("M4"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
satırı sarıya boyanıp hata mesajı veriyor
 
Son düzenleme:
benim verdiğim kodların tamamını dosyadaki her 3 koda eklemiş isek şöyle düzeltelim.

".Range("A4:M" & ss).Sort Key1:=..." satırlarını her 3 koddan da silelim.

MsgBox'tan sonraki End With"ten sonra gelmek üzere her koda, kodun çalışacağı sayfa isimlerini değiştirmek suretiyle aşağıdaki kodu ekleyelim.

Kod:
Sheets("[COLOR="Red"]GİRİŞ[/COLOR]").Range("A4:M" & ss).Sort Key1:=Sheets("[COLOR="red"]GİRİŞ[/COLOR]").Range("M4"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

dosyanızda temsili veri olmadığı için test edemiyorum. yedek dosyanızda denedikten sonra problem varsa tekrar bakalım.
 
Üstadım öncelikle ilgine ve emeğine sonsuz teşekkürler..
Sorunların büyük bir kıslı çözüldü..Yeni ürün eklemeyi,stok girişi ve stok çıkışı sorunsuz sıralıyor..
Ancak;
Stoktan çıkışlar başladı mı "STOK" sayfasının "G" ve "I" sütunlarında ETOPLA formülü olduğu için stoktan düşümlerde hata meydana geliyor..Bunu nasıl aşabiliriz?
Buraya kadar olan kısmı harika biçimde çözülmüş..Son bir hamle kaldı sanırım.. Bu arada kodlarla ilgili dediklerinizi uyguladım.Önce hata verdi..Düzelttim ama nasıl düzelttiğimi sormayın çünkü bilmiyorum.. :)
 

Ekli dosyalar

rica ederim.

stoktan çıkışların başlaması ne demek (excel anlamında tabii)?
hata tam olarak nedir?
 
ANA EKRAN'ın Stok Çıkış Bölümünden ürün çıkışı yapıp aktar dedik mi STOK sayfasına düzgün aktarmıyor..Dediğim gibi ETOPLA formülüyle alakalı..Denerseniz siz de olayı göreceksiniz..
ANA EKRAN sayfasının Stok Çıkışı bölümüne girin.Şu an üzerinde sanırım ABC123 kodlu cam ürünü duruyor..Hemen AKTAR butonuna basın..STOK sayfasında Cıvata ürününe işlediğini göreceksiniz..
 
sıralama yaparken bir hata olmuş zannediyorum. kod dışında manuel yapmış olabilirsiniiz belki.

stok sayfasında G5:J9 aralığının formülleri hatalı.

G10:J10 aralığını seçin. kopyala.
G5:J9 aralığını seçin. özel yapıştır, formüller, tamam.
dosyayı kaydedin.
 
Dostum tekrar merhaba..
Formül her seferinde bozuluyor..Dediğiniz gibi yaptım ve düzeldi..Ama en başa AA5 parça numaralı bir ürün ekledim..Bu ürünü en başa sorunsuz kaydediyor ama formüllü satırı da en başa alıyor.. Dolayısıyla (örneğin 10 satır ürün varsa) 11. satırı en başa alıyor.. Gerçi bu kadarına da şükür..Her işlemden sonra 2 dakikamı ayırıp formülü en başa kopyalayıp aşağıya doğru çekersem sorun çözülüyor ama pratik bir çözümü varsa daha memnun olurum..Bir işi yapıyorsak en iyisini yapmalıyız bence..
 
stok sayfasındaki m sütununda, hizasında veri olmayan 2 formül var. onları silerek dener misiniz? fornüllerinizde değişen hücre referanslarının başında $ olmadığı için sıralamayla birlikte sorun oladan işlem görmesi lazım.

ben denedim. tamamdır.
 
Syn. Manisalı50;

Sıralama ile ilgili kodları dosyanıza uyarladım.

Ancak stok sayfasındaki "G" sütunuda ( Giriş toplamı ) ve "I" sütununda( Çıkış toplamı ) bulunan formüller de yer değiştirmektedir.

Bundan dolayı malzeme giriş ve çıkışı yaparken bunları stok sayfasındaki karşılığı olan hücrelere kaydetmediğinden, bu sütunlardaki formülleri "N" ve "O" sutunlarına aktardım. Buradan kod yardımı ile tekrar gerekli hücrelere aktarma yaptım. Bu "N" ve "O" sutunlarına gerekirse gizleyebilirsiniz.

Dosyayı inceleyin .
 

Ekli dosyalar

Arkadaşlar merhaba..
Mancubus uzmanımın isteği ile dosyanın son halini gönderiyorum..
Sadece tek hatası var..
"ANA EKRAN" sayfasındaki Stok girişi - Stok Çıkışı ve Yeni Malzeme Ekleme bölümlerinden yaptığım veri girişleri,bölümlerine göre "GİRİŞ","ÇIKIŞ" ya da "STOK" Sayfalarına "AKTAR" ve "EKLE" butonları aracılığıyla aktarılıp alfabetik sıralamaya göre sıralanıyor.(Parça No sütunları baz alınarak) Ancak alfanümerik olan parça numaraları (ABC123 gibi) nümerik sıralamanın sonuna ekleniyor..Ben ABC123 gibi harfle başlayan parça numaralarının listenin en başında olmasını, ondan sonra rakamlardan oluşan parça numaralarının sıralanmasını istiyorum.. Dediğim gibi sadece ve sadece harfle başlayan parça numaralarının başa gelmesini istiyorum.
Dosyanın son hali ektedir.
 

Ekli dosyalar

Oradaki sorunumu 15 no'lu mesajda anlattım ve çözülmesini istediğim dosyamın son hali 15. mesajımda..Benim için önemli olan sıralama sorunu..Verilerin girildikten sonra ekranın temizlenmesi de olursa o zaman benim için daha da harika olur..Yardımlarınızı bekliyorum..
 
Geri
Üst