• DİKKAT

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

Sıralamada Key1 de hata

  • Konbuyu başlatan Konbuyu başlatan ikikan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
say1 = shf.Range("B65500").End(3).Row
shf.Range("B3:B" & say1).Sort Key1:=shf.Range("B3")
say2 = shf.Range("B65500").End(3).Row

Bu kod ile verileri sıraya koyuyorum ama nedense
1
10
11
12
2
3
4
şeklinde sıralıyor bir neden olabilir ?
 
sıralama yaptığınız sütundaki değerler sayı değil , metin dir.O sebeple yapar.
 
Sayın Orion bunu metin değilde sayı olarak mı tanımlamamaız gerekiyor çözümü nedir ?
İlgili sutunu sayıya çevir meniz gerekiyor.
o sütunu seçin ve sayı olarak biçimlendirin.
sonra boş bir hücreye 1 yazın.
sonra onu kopyalayın.
iligili sütunu seçin
ilgili sütuna sağ tıklayıp özel yapıştırı seçin
çıkan formda çarpmayı seçin tamam a basın.şimdi metin olan sayılar sayı oldular.:cool:
 
İlgili sutunu sayıya çevir meniz gerekiyor.
o sütunu seçin ve sayı olarak biçimlendirin.
sonra boş bir hücreye 1 yazın.
sonra onu kopyalayın.
iligili sütunu seçin
ilgili sütuna sağ tıklayıp özel yapıştırı seçin
çıkan formda çarpmayı seçin tamam a basın.şimdi metin olan sayılar sayı oldular.:cool:

Sayın Orion1 başka bir şekilde yapılandırdım ilginize teşekürler ekteki dosyada açıklama yaptım.
Fakat koda yanlış bir durum var kırmızı ile işaretlediğim yerde
sorun -5 değer verdigimiz için listbox ListCount değeri 15 veri varken 10 veri varmış gibi görmesi?

örnek dosya ektedir...

Option Explicit
Sub PROJE1()
Dim ss As Integer, say As Integer
Dim i, e, sonuc, Birlestir
Dim shf1, shf2 As Worksheet
Dim hucre As Range

Set shf2 = Sheets("VG")

Set shf1 = Sheets("PROJE")
ss = shf1.Range("B65500").End(3).Row
shf1.Range("B3:CV" & ss).ClearContents
say = Sheets("HES").ListBox1.ListCount - 5

For i = 0 To say
If Sheets("HES").ListBox1.Selected(i) = True Then

Birlestir = ""
For e = 1 To 50
If e = 1 Then
Birlestir = shf2.Cells(i + 5, e).Value
Else
Birlestir = Birlestir & " " & shf2.Cells(i + 5, e).Value
End If
Next e
shf1.Cells(i + 3, 2).Value = Birlestir

End If
Next i

For Each hucre In shf1.Range("B3:B50")
If UCase(hucre.Value) = " " Then
sonuc = sonuc & hucre.Value & Chr(10)
Else
sonuc = sonuc & hucre.Value
End If
Next hucre

shf1.Range("C3").Value = sonuc

Call LİSTBOX1
End Sub
 

Ekli dosyalar

-5 i silin.O zman tam görünür.:cool:
 
-5 i silin.O zman tam görünür.:cool:

Hata veriyor denedim istediğim satırdan veri almıyor vs vs aslında bir yol daha var lakin tüm kodu değiştirmem gerekiyor ... neyse bir kaç saat daha uğraşalım bakalım neolacak.

örneği inceledinmi aynı sonuca ulaşacak başka bir fikir varsa denerim...
 
Hata veriyor denedim istediğim satırdan veri almıyor vs vs aslında bir yol daha var lakin tüm kodu değiştirmem gerekiyor ... neyse bir kaç saat daha uğraşalım bakalım neolacak.

örneği inceledinmi aynı sonuca ulaşacak başka bir fikir varsa denerim...
Hatamı veriyor yoksa istediğin satırdan verimi almıyor.:cool:
 
şunu bir deneyin.:cool:
Kod:
say = Sheets("HES").ListBox1.ListCount - 1
 
şunu bir deneyin.:cool:
Kod:
say = Sheets("HES").ListBox1.ListCount - 1

Teşekürler , Birini çöz diğer sorun çıkıyor nedir bu yarabim, bir fikirdaha alabilirmiyim kırmızı ile işaretli yer "Trim" ekleyince neden altındaki kod işe yaramıyor?

Option Explicit
Sub PROJE1()
Dim ss As Integer, say As Integer
Dim i, e, sonuc, Birlestir
Dim shf1, shf2 As Worksheet
Dim hucre As Range

If Sheets("HES").Range("A1").Value = 1 Then

ElseIf Sheets("HES").Range("A1").Value = 2 Then
Set shf2 = Sheets("VG")
ElseIf Sheets("HES").Range("A1").Value = 3 Then
Set shf2 = Sheets("VE")
End If

Set shf1 = Sheets("PROJE")
ss = shf1.Range("B65500").End(3).Row
shf1.Range("B3:CV" & ss).ClearContents
say = Sheets("HES").ListBox1.ListCount - 1

For i = 0 To say
If Sheets("HES").ListBox1.Selected(i) = True Then

Birlestir = ""
For e = 1 To 50
If e = 1 Then
Birlestir = shf2.Cells(i + 5, e).Value
Else
Birlestir = Birlestir & " " & shf2.Cells(i + 5, e).Value
End If
Next e
shf1.Cells(i + 3, 2).Value = Trim(Birlestir)

End If
Next i

For Each hucre In shf1.Range("B3:B50")
If UCase(hucre.Value) = " " Then
sonuc = sonuc & Chr(10) & hucre.Value
Else
sonuc = sonuc & hucre.Value
End If
Next hucre

shf1.Range("C3").Value = sonuc

Call LİSTBOX1
End Sub
 
Altta kod yok ki .Boş orası.:cool:
boş bir satır var.:cool:
 
Dur Çözdüm uğraşam
For Each hucre In shf1.Range("B3:B50")
If UCase(hucre.Value) = Empty Then
sonuc = sonuc & hucre.Value
Else
sonuc = sonuc & hucre.Value & Chr(10)
End If
Next hucre

shf1.Range("C3").Value = sonuc

olmalı imiş
 
Altta kod yok ki .Boş orası.:cool:
boş bir satır var.:cool:

Nasıl boş ? bir daha yayınlayımı geçi çözdüm ama kodda ile ilgili bircok değişiklik yapacağım

yardım edermisin

Daha uzunluk, mak, yinele, foksiyonlarını makroya aktarmayı ve sonuç raporunu tek hücrede çıkarmayı düşünüyorum arada soru sorarsam çevaplarsan sevinirim...
 
Kod:
shf1.Cells(i + 3, 2).Value = Trim(Birlestir)

End If
Bakın arada boş satır var.
 
Geri
Üst