• DİKKAT

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

InputBox ile sıralama

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı Bayramlar.

Ekte gönderdiğim excel dosyamda Application.InputBox kullanarak sıralama yaptırmak istiyorum.

Bir çok kod eklemek gerekti, bu kodlar da sıralama yapmıyor. Her sütun için ayrı ayrı kod eklemek gerekiyor mu? Yoksa bu kodlar kısaltılabilir mi?

Ayrıca sıralama yaptığında da ekrana gelecek mesaj kutusunda da örneğin C1 hücresindeki bilgiye göre sıralandı (SİCİL'e göre sıralandı.) şeklinde mesaj verebilir mi?

Yardımcı olur musunuz?
.
 

Ekli dosyalar

Son düzenleme:
Merhaba.

Aşağıdaki şekilde dener misiniz?
Anladığım kadarıyla SIRALAMA KODU sütununa ilişkin istisnai bir durum var.
.
Kod:
Sub Sırala()
sor = Application.InputBox("Sıralacanak SÜTUNUN Harfini Giriniz!.." & vbCrLf & " ", "ASLAN", "A")
sor = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(sor, "ç", "c"), _
    "Ç", "C"), "ğ", "G"), "Ğ", "G"), "ö", "O"), "ö", "O"), "ş", "S"), "Ş", "S"), "ü", "U"), "Ü", "U")
        If sor = False Then
            MsgBox "İşlemi iptal ettiniz."
            Exit Sub
        ElseIf Range(sor & "1").Column < 2 Then
            MsgBox "[COLOR="Blue"][B]A sütununa göre sıralama yapılamaz!...[/B][/COLOR]", vbCritical, "ASLAN"
            Exit Sub
        ElseIf Range(sor & "1").Column > 14 Or Len(sor) > 1 Then
            MsgBox "[COLOR="blue"][B]Veri olmayan sütun adı yazılamaz.[/B][/COLOR]", vbCritical, "ASLAN"
            Exit Sub
        End If
    Range("B2:N" & Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row).Sort _
        Key1:=Range(sor & "2"), Order1:=xlAscending, _
        Key2:=[C2], order2:=xlAscending
    MsgBox Range(sor & "1").Value & " sütununa göre sıralama yapıldı.", vbInformation, "ASLAN"
End Sub
 
Sayın Ömer Bey, şimdiden hayırlı Bayramlar. İlginiz için çok teşekkür ediyorum.

Kodlar gayet güzel çalışıyor, ancak sırala dediğimde sayfadaki 1.satırdaki başlıkları bir alt satıra atıyor.
 
Sayın Ömer Bey, birde InputBox içerisine küçük harf girdiğimde Veri olmayan sütun adı belirttiniz şeklinde uyarı geliyor.
 
Sayın Ömer Bey kodlar arasında aşağıdaki kod var, E sütununda başka veriler var, kod ile ilgili bir durum yok.

If baslik = "SIRALAMA KODU" Then
 
Sayfayı yenileyerek tekrar kontrol edin.
Ben düzeltme yaparken kod'un önceki halini kullanmış olmalısınız.

SIRALAMA KODUna ilişkin bir istisna yok ise kırmızı satırları silerek kullanabilirsiniz.
.
 
Sayın Ömer Bey, kodlar gayet güzel çalışıyor, ancak B sütununa göre sırala dediğimde sayfadaki 1.satırdaki başlıkları bir alt satıra atıyor.
 
Sanırım C sütununda veri olmamasıyla ilgili.
Çünkü mevcut kod'unuz C sütunundaki son dolu satıra göre çalışıyordu.

Artık son satırı başka türlü buldurdum (mavi kısım).

Önceki cevabımı yeniden güncelledim, yeni halini kontrol edin.
.
 
Sayın Ömer Bey şimdi daha güzel çalışıyor, ellerinize sağlık çok teşekkür ediyor.

InputBox kutusuna küçük harfte yazsam sıralıyor, kod içerisinde bu bölümü bulamadım, bunu hangisi yapıyor acaba?

Bir de InputBox içerisinde A harfi yazılı bu şekilde TAMAM'a basıldığında debug hatası veriyor.
 
Sayın Ömer Bey aşağıdaki kod ile InputBox içerisinde A harfi yazılı şekilde TAMAM'a basıldığında aşağıdaki kod ile çözdüm.

ElseIf Range(sor & "1").Column > 14 Or Range(sor & "1").Column < 2 Then

Bu mesaj kutusu içerisine Türkçe noktalı harfler yazıldığı zaman da debug hatası veriyor, bunları da iptal edebilir miyiz?
 
Sayın Ömer Bey kodları kendi sayfamda denedikçe eksikleri buluyorum, kusura bakmayın parça parça yazıyorum.

Mesaj kutusuna hangi sütun harfini yazarsam yazayım, önce yazılı olan sütuna göre sıralasın, sonrada C sütununa göre yani sicile göre sıralasın istiyorum.
 
Tekrar merhaba.

Önceki cevabımı tekrar güncelledim, sayfayı yenileyerek yeniden kontrol ediniz.
.
 
Sayın Ömer Bey ellerinize sağlık kodlar çok güzel çalışıyor. Küçük bir sorunu da halledersek çok güzel olacak.

Aşağıdaki mesaj kodunu ayrı ayrı verdirebilir miyiz.
Yani mesaj kutusuna A yazıldığı zaman A sütununa göre sıralama yapılamaz şeklinde,

N harfinden sonraki harfler yazıldığı zaman Veri olmayan sütun adı yazılamaz şeklinde olursa çok daha güzel olacak.

MsgBox "-- A sütununa göre sıralama yapılamaz," & vbLf & _
"-- Veri olmayan sütun adı yazılamaz."


Sizi yoruyorum kusura bakmayın.
 
Sayfayı yenileyerek önceki cevabı tekrar kontrol edin.
.
 
Sayın Ömer Bey ellerinize sağlık şimdi tam istediğim gibi oldu. Allah razı olsun, sizi gece gece yordum kusura bakmayın, hakkınızı helal edin.

Hayırlı geceler, hayırlı bayramlar diliyorum.
 
Estağfurullah, bilmukabele.
 
Geri
Üst