• DİKKAT

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

textboxlara en büyük sayıdan başlayarak en büyük 10 sayıyı aldırmak

ömer bey kodlar çalıştı ellerinize sağlık. ancak
textbox1-5 i kendi arasında büyükten küçüğe
textbox6-10 u kendi arasında büyükten küçüğe sıralamamız mümkün mü?
ilk üçler kırmızı renkte olacak ve kupa ve madalyalar belirtilecek. bunun için sıralanmasını istiyorum. eğer mümkünse..
 
ömer bey kusura bakmayın sistemde mesaj gitmedi gözüktü. ben de bir daha gönderdim. mükerrer oldu ama internet hatası
ömer bey kodlar muntazam. ve #12 . mesajda dedikleriniz doğru. mantığı düzgün kuramamışım ya da düzgün ifade edememişim.
ama bir düzenleme yapmak mümkün mü?
textbox1-5 kendi arasında büyükten küçüğe doğru sıralanacak
textbox6-10 kendi arasında büyükten küçüğe doğru sıralanacak
öğrencilerin kupa ve madalya aldıkları görünecek. ilk üçlerin kırmızı olması lazım. onu textbox ayarlarından yaptım ancak sıralama gerekli. eğer uygunsa...
 
Son düzenleme:
Bu şekilde deneyin.

Kod:
Private Sub ComboBox1_Change()

    Dim i As Byte, a As Double, b As Integer, sut As Integer, sat As Long
    Dim Wf As WorksheetFunction, alan As Range, S2 As Worksheet, dizi()
    Dim c As Double, s As Byte, k As Byte, j As Byte, t As Byte, z As Byte
    
    Set Wf = WorksheetFunction
    sut = ComboBox1.ListIndex + 6
    ReDim dizi(1 To 5, 1 To 4)
    
    For i = 1 To 50
        Controls("TextBox" & i) = ""
    Next i
    If ComboBox1.Value = "" Then Exit Sub
    
    sat = 1
    For i = 1 To 10

        Set alan = Range(Cells(sat + 1, sut), Cells(sat + 50, sut))
 
        a = Wf.Max(alan)
        b = sat + 1
        
        If Wf.CountIf(alan, a) > 0 Then
            b = Wf.Match(a, alan, 0) + sat
        End If
    
        dizi(i, 1) = a
        dizi(i, 2) = Cells(b, "E")
        dizi(i, 3) = Cells(b, "C")
        dizi(i, 4) = Cells(b, "B")
        
        sat = sat + 50

        t = 0
        If i = 5 Then
            If z > 0 Then t = 5
    
            For j = 1 To 5
            
                c = Wf.Large(dizi, j)
                Controls("TextBox" & j + t) = c
        
                s = 0
                For k = 1 To 5
                    If c = dizi(k, 1) Then
                        If Controls("TextBox" & j + 10 + s + t) = "" Then
                            Controls("TextBox" & j + 10 + s + t) = dizi(k, 2)
                            Controls("TextBox" & j + 20 + s + t) = dizi(k, 3)
                            Controls("TextBox" & j + 30 + s + t) = dizi(k, 4)
                            s = s + 1
                        End If
                    End If
                Next k
        
            Next j
            i = 1
            z = z + 1
            Erase dizi
            ReDim dizi(1 To 5, 1 To 4)
            
        End If
        If z > 1 Then Exit For
    
    Next i
    
    Set S2 = Sheets("PUANLAR")
    TextBox41.Value = S2.Cells(3, 2).Value
    TextBox42.Value = S2.Cells(3, 3).Value
    TextBox43.Value = S2.Cells(3, 4).Value
    TextBox44.Value = S2.Cells(3, 5).Value
    TextBox45.Value = S2.Cells(3, 6).Value

End Sub

.
 
ömer bey çok teşekkür ederim. kod çalışıyor.1. sorum önemli diğerleri eğer uygunsa ve zahmet olmazsa
1-textbox5 ve textbox10 a veri almıyor.döngülerle değiştirmeye çalıştım ancak hata verdi.nasıl yapılabilir .
2-sınıf puanları(textboxlar) bölümü puanlar sayfasından verileri alıyor.bu bölümü de combobox1 olayına dahil edebilir miyiz?
3-eğer mümkünse okul no diye bir alan daha ekledim . olursa onu da dahil edebilir miyiz? yoksa o bölümü kaldıracağım. ama olsa da iyi olacaktı.

dosyalinki

http://s6.dosya.tc/server8/tjy5wk/Okul-Ligi-Takip-2017-excel.web.tr.xls.html

gösterdiğiniz ilgiden dolayı çok teşekkür ederim.
 
Son düzenleme:
Bu şekilde deneyin.

Kod:
Private Sub ComboBox1_Change()

    Dim i As Byte, a As Double, b As Integer, sut As Integer, sat As Long
    Dim Wf As WorksheetFunction, alan As Range, S2 As Worksheet, dizi()
    Dim c As Double, s As Byte, k As Byte, j As Byte, t As Byte, z As Byte
    
    Set Wf = WorksheetFunction
    sut = ComboBox1.ListIndex + 7
    ReDim dizi(1 To 5, 1 To 5)
    
    For i = 1 To 60
        Controls("TextBox" & i) = ""
    Next i
    If ComboBox1.Value = "" Then Exit Sub
    
    sat = 1
    For i = 1 To 10

        Set alan = Range(Cells(sat + 1, sut), Cells(sat + 50, sut))
 
        a = Wf.Max(alan)
        b = sat + 1
        
        If Wf.CountIf(alan, a) > 0 Then
            b = Wf.Match(a, alan, 0) + sat
        End If
    
        dizi(i, 1) = a
        dizi(i, 2) = Cells(b, "E")
        dizi(i, 3) = Cells(b, "C")
        dizi(i, 4) = Cells(b, "B")
        dizi(i, 5) = Cells(b, "D")
        
        sat = sat + 50

        t = 0
        If i = 5 Then
            If z > 0 Then t = 5
    
            For j = 1 To 5
   
                c = Wf.Large(Application.Index(dizi, 0, 1), j)
                Controls("TextBox" & j + t) = c

                s = 0
                For k = 1 To 5
                    If c = dizi(k, 1) Then
                        If Controls("TextBox" & j + 10 + s + t) = "" Then
                            Controls("TextBox" & j + 10 + s + t) = dizi(k, 2)
                            Controls("TextBox" & j + 20 + s + t) = dizi(k, 3)
                            Controls("TextBox" & j + 30 + s + t) = dizi(k, 4)
                            Controls("TextBox" & j + 40 + s + t) = dizi(k, 5)
                            s = s + 1
                        End If
                    End If
                Next k
        
            Next j
            i = 0
            z = z + 1
            Erase dizi
            ReDim dizi(1 To 5, 1 To 5)
            
        End If
        If z > 1 Then Exit For
    
    Next i
    
    Set S2 = Sheets("PUANLAR")
    For i = 1 To 10
        Controls("TextBox" & i + 50) = S2.Cells(3, i + 1).Value
    Next i

End Sub

.
 
Son düzenleme:
ömer çok teşekkür ederim muazzam oldu. şöyle bir soru sorsam ilave yapmaya çalıştığım yerdeki hatam nedir. ya da bu şekilde nasıl revize edilebilir kod.

' dizi(i, 5) = Cells(b, "D") Benim eklemeyi düşündüğüm ama olmayan

' Controls("TextBox" & j + 40 + s + t) = dizi(k, 5) Benim eklemeyi düşündüğüm ama olmayan
 
#26 numaralı mesajı bu doğrultuda yeniden düzenledim. Yeni kodları deneyiniz.
 
iyi akşamlar. ömer bey
'kırmızı bölümün aşağıdaki kodla (textbox1-10 'a göre) hangi sütundan veri alıyorsa bir önceki veya bir sonraki sütundan "aynı satırdan " nasıl veri alması gerekir. düzenleme nasıl olmalı.

Private Sub ComboBox1_Change()

For i = 1 To 50
sutun = ComboBox1.ListIndex + 4
Controls("TextBox" & i) = Cells(i + 3, sutun)

For z = 11 To 20
Controls("TextBox" & z) = Cells(z + 3, sutun)
Next z

For k = 21 To 30
Controls("TextBox" & k) = Cells(k + 3, sutun)
Next k

For t = 31 To 40
Controls("TextBox" & t) = Cells(t + 3, sutun)
Next t

'kırmızı bölümün yukarıdaki kodla hangi sütundan (textbox1-10 'a göre) veri alıyorsa bir önceki veya bir sonraki sütundan "aynı satırdan " nasıl veri alması gerekir. düzenleme nasıl olmalı.

For j = 41 To 50
Controls("TextBox" & j) = Cells(j + 3, sutun)
Next j


Next i



End Sub
 
sutun

yerine;

sutun-1 yada sutun+1 yazarak bir önceki ve bir sonraki sütundan veri alabilirsiniz.
 
sutun

yerine;

sutun-1 yada sutun+1 yazarak bir önceki ve bir sonraki sütundan veri alabilirsiniz.


selamün aleyküm. ömer bey dediğinizi yaptım. ancak
textbox41-50 arası bir sonraki sütunun 14. satırı
textbox51-60 arası bir sonraki sütunun 24. satırı
textbox61-70 arası bir sonraki sütunun 34. satırı
textbox71-80 arası bir sonraki sütunun 44. satırı gösteriyor. yani veriler hep aynı.yanlışım nerde acaba?

Private Sub ComboBox1_Change()

For i = 1 To 10
sutun = ComboBox1.ListIndex + 4
Controls("TextBox" & i) = Cells(i + 3, sutun)
Next i

For z = 11 To 20
Controls("TextBox" & z) = Cells(z + 3, sutun)
Next z

For k = 21 To 30
Controls("TextBox" & k) = Cells(k + 3, sutun)
Next k

For t = 31 To 40
Controls("TextBox" & t) = Cells(t + 3, sutun)
Next t
------------------------------------------------------------
For j = 41 To 50
Controls("TextBox" & j) = Cells(i + 3, sutun + 1)
Next j

For y = 51 To 60
Controls("TextBox" & y) = Cells(z + 3, sutun + 1)
Next y

For n = 61 To 70
Controls("TextBox" & n) = Cells(k + 3, sutun + 1)
Next n

For m = 71 To 80
Controls("TextBox" & m) = Cells(t + 3, sutun + 1)
Next m


End Sub
 
ömer bey nihayet elimden geldiği kadarıyla düzenledim.

Private Sub ComboBox1_Change()

For i = 1 To 10
sutun = ComboBox1.ListIndex + 4
Controls("TextBox" & i) = Cells(i + 3, sutun)

For z = 11 To 20
Controls("TextBox" & z) = Cells(z + 3, sutun)
Next z

For k = 21 To 30
Controls("TextBox" & k) = Cells(k + 3, sutun)
Next k

For t = 31 To 40
Controls("TextBox" & t) = Cells(t + 3, sutun)
Next t

For j = 41 To 50
Controls("TextBox" & j) = Cells(j - 37, sutun + 1)
Next j

For y = 51 To 60
Controls("TextBox" & y) = Cells(y - 37, sutun + 1)
Next y
For n = 61 To 70
Controls("TextBox" & n) = Cells(n - 37, sutun + 1)
Next n
For m = 71 To 80
Controls("TextBox" & m) = Cells(m - 37, sutun + 1)
Next m
Next i
End Sub
 
iyi akşamlar. aşağıda kodla ayrı ayrı verileri bulabiliyorum.ancak kırmızı bölümdeki kodları for p döngüsünün olduğu bölümde ve textboxlarda nasıl birleştirebilirim. yani şöyle yazmasını istiyorum. 1 / A &"-- "&90 ŞEKLİNDE 1 / A -- 90 olacak. for i ile başlayan textboxlarla for p diye başlayan textboxlar for p nin olduğu textboxlarda birleşecek

Private Sub ComboBox1_Change()

For i = 1 To 10
sutun = ComboBox1.ListIndex + 4
Controls("TextBox" & i) = Cells(i + 3, sutun)

For z = 11 To 20
Controls("TextBox" & z) = Cells(z + 3, sutun)
Next z

For k = 21 To 30
ContFor p = 121 To 130
Controlsrols("TextBox" & k) = Cells(k + 3, sutun)
Next k

For t = 31 To 40
Controls("TextBox" & t) = Cells(t + 3, sutun)
Next t

For p = 121 To 130
Controls("TextBox" & p) = Cells(p - 117, sutun - 3)
Next p




'------------------------------------------------
For j = 41 To 50
Controls("TextBox" & j) = Cells(j - 37, sutun - 1)
Next j

For y = 51 To 60
Controls("TextBox" & y) = Cells(y - 37, sutun - 1)
Next y
For n = 61 To 70
Controls("TextBox" & n) = Cells(n - 37, sutun - 1)
Next n
For m = 71 To 80
Controls("TextBox" & m) = Cells(m - 37, sutun - 1)
Next m
'-------------------------------------------------
For c = 81 To 90
Controls("TextBox" & c) = Cells(c - 77, sutun - 2)
Next c

For d = 91 To 100
Controls("TextBox" & d) = Cells(d - 77, sutun - 2)
Next d

For f = 101 To 110
Controls("TextBox" & f) = Cells(f - 77, sutun - 2)
Next f

For g = 111 To 120
Controls("TextBox" & g) = Cells(g - 77, sutun - 2)
Next g
Next i
End Sub
 
Son düzenleme:
P döngüsünün olduğu bölüm aşağıdakiyle değiştirin.

Kod:
For p = 121 To 130
    Controls("TextBox" & p) = Cells(p - 117, sutun - 3) [COLOR="Blue"]& "--" &[/COLOR] [COLOR="Red"]Cells((p - 120) + 3, sutun)[/COLOR]
Next p

Mantığı kırmızı bölümü yani i döngüsünde kullandığınız bölümü istediğiniz birleştirmeyi yapıp, i yerine (p - 120) yazarak yine aynı sayı değerlerini üretiriz.

.
 
P döngüsünün olduğu bölüm aşağıdakiyle değiştirin.

Kod:
For p = 121 To 130
    Controls("TextBox" & p) = Cells(p - 117, sutun - 3) [COLOR="Blue"]& "--" &[/COLOR] [COLOR="Red"]Cells((p - 120) + 3, sutun)[/COLOR]
Next p

Mantığı kırmızı bölümü yani i döngüsünde kullandığınız bölümü istediğiniz birleştirmeyi yapıp, i yerine (p - 120) yazarak yine aynı sayı değerlerini üretiriz.

.
teşekkür ederim. harika oldu.
 
Sorularınızı örnek dosya ile destekleyip detaylı açıklamanızı rica ederim, bu şekilde daha kısa ve net cevaplar alırsınız.

Öncelikle combobox1'e veri alırken kullandığınız kodları change altına değil Initialize altına yazmanızda fayda var. Aşağıdaki örnekte kırmızı satırı eski kod satırından silin ve aşağıdaki kod bloğunu userforma ekleyin.

Kod:
Private Sub UserForm_Initialize()
    [COLOR="Red"]ComboBox1.List = Application.Transpose(Range("F1:CE1"))[/COLOR]
End Sub

Diğer isteğiniz olan seçilen sütuna göre işlem yapmayla ilgili bir örnek ekliyorum. Örnek üzerinden diğer mesajlardaki örnek kodlarda aynı mantıkla ilerleyebilirsiniz.

s değişleniyle sütun indisini bulduktan sonra RANGE("F2:F200") yerlerine Range(Cells(2, s), Cells(200, s)) yazmanız yeterli olur. Aşağıdaki örnek gibi.

Kod:
Private Sub ComboBox1_Change()

 Dim S1 As Worksheet, i As Byte, a As Double, b As Integer, s As Integer
    
 Set S1 = Sheets("1")

[COLOR="Blue"] s = ComboBox1.ListIndex + 6 'seçilen değerin hangi sütunda olduğunu bulur
    
 TextBox1.Value = WorksheetFunction.Large(Range(Cells(2, s), Cells(200, s)), 1)[/COLOR]

End Sub

.


selamün ömer bey dosyayı eklediğim linki verdim. yardım edebilirseniz sevinirim. şimdiden teşekkürler.


http://s6.dosya.tc/server11/rrz23c/Okul-Ligi-Takip-2017-excel.web.tr.xls.html

dosya açılınca 1 nolu sayfada çalışıyorum.
form aç tan user form açılınca (FORM)
listem 50 kişilik gruplardan oluşmaktadır.
2-51 bir şube
52-101 bir şube şeklinde ve 10 şube bulunmaktadır. bunlardan beşi sabahçı beşi öğlencidir. sabahçı ve öğlenciler ayrı ayrı değerlendirilmektedir.
textbox lar sabahçılar(2-251) ve öğlenciler (252-501) satırları arasında ilk dördünü yapmakta ancak beşinci dizeyi yapmamaktadır. kodlar dosyada vardır. ama düzenleyemedim.
ayrıca okul nosu textboxları ilgili satırın d sütunundan
sınıf puanı textboxları ilgili satırın cf sütunundan veri alması lazım.yardım ederseniz sevinirim
 
Son düzenleme:
Geri
Üst