Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
Excel

Определение показателей успеваемости учащихся

17.02.2023, 11:37. Показов 3088. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я зам декан. Мне надо определить успеваемость студентов и назначить стипендию на ее основе. Было бы здорово, если бы вы помогли мне определить их с помощью макросов. Данном файле пример по одной группи таких групп много и добавляеться в других листах. По этому макрос надо работать для всех листов в книге.
Успеваемость студентов определяются следующим образом:
Оценка 5 = от 90 - 100 баллов
Оценка 4 = от 70 – до 90 баллов
Оценка 3 = от 60 – до 70 баллов
Оценка 2 = от 1 – до 60 баллов может быть пустой
По данной таблице необходимо сделать следующее:
1. Удалить число в квадратных скобках.
2. Определить успеваемость студентов по предметом начиная с стобец D (количество предметов меняеться) оценки были разними цветами
3. Сортироват оценки по убиванию сначала по “Davlat granti”, а затем по “To‘lov-shartnoma”
Вложения
Тип файла: xlsx до.xlsx (11.6 Кб, 17 просмотров)
Тип файла: xlsx после.xlsx (12.8 Кб, 19 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.02.2023, 11:37
Ответы с готовыми решениями:

Составьте программу, считывающую с клавиатуры данные об успеваемости учащихся класса
Опишите, используя структуру записи, школьный журнал. Предусмотрите в записи поля для хранения информации о фамилии учащегося, предмете,...

Определение успеваемости учащихся
определения успеваемости учащихся

Определение успеваемости учащихся
определения успеваемости учащихся

30
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
06.03.2023, 15:00  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
Добрый вечер. Narimanych, можете еще раз помоч написанный макрос вами не удаляеть все квадратные скобки.
Добрый день. Это можно решать с заменой.

Добавлено через 12 минут
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
Вложения
Narimanych, Помогите пожалуйста глянте в лист O'rtacha ball (4) там студента IBROHIMOV AMAL ASHURALIYEVICH успеваемость должен быт 2 (двойка) а макрос считает 3 (Stipendiya berilmaydi) ту у него неуспеваемость с предмета "Turizm va mehmonxona xo'jaligi iqtisodiyoti". 3 (Stipendiya berilmaydi) надо быть только в условиях когда студент учащийся в "Davlat granti" (Грант) сдал все экзамени (не должник из экзаменов) и он 30% и более процентов от общего количества сданных экзаменов набирает оценка 3 (равно от 60 – до 69,9 баллов).
Пожалуйста чужих кодов другие не хочет исправить. Спасибо.

Добавлено через 41 минуту
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
Добрый вечер. Narimanych, можете еще раз помоч написанный макрос вами не удаляеть все квадратные скобки.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Sub NNN()
Application.ScreenUpdating = False
clrs = Array(vbBlack, vbBlack, vbYellow, vbGreen, vbBlue, vbRed)
    For Each sh In ThisWorkbook.Sheets
        With sh
            LR = .Cells(Rows.Count, 1).End(xlUp).row
            LC = .Cells(6, Columns.Count).End(xlToLeft).Column
            If .Cells(6, LC).Value = "Izohlar" Then GoTo M1
                With .Sort
                    .SortFields.Clear
                    .SortFields.Add2 Key:=Range(sh.Cells(7, 3), sh.Cells(LR, 3)), _
                     SortOn:=xlSortOnValues, Order:=xlAscending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(LR, LC))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
      
            Set Dr = CreateObject("VBScript.RegExp")
            Dr.Pattern = "\[\d+\]"
            ExCty = LC - 3
            .Cells(6, LC + 1).Value = "O‘zlashtirish"
            .Cells(6, LC + 1).Font.Bold = True
            .Columns(LC + 1).ColumnWidth = 12
            .Cells(6, LC + 2).Value = "Izohlar"
            .Cells(6, LC + 2).Font.Bold = True
            .Columns(LC + 2).ColumnWidth = 45
         
            For i = 7 To LR
                flag1 = False
                ptscount = 0
                
                If .Cells(i, 3).Value = "Davlat granti" Then
                    EdgeRow = i
                    counter1 = 0
                    flag1 = True
                End If
               
                ptMin = 5
                For j = 4 To LC
                    If Dr.Test(.Cells(i, j).Value) Then .Cells(i, j).Value = Dr.Replace(.Cells(i, j).Value, "")
                     pts = 0
                     
                    Select Case .Cells(i, j).Value
                        Case 0 To 59.9
                            pts = 2
                        Case 60 To 69.9
                            pts = 3
                         Case 70 To 89.9
                            pts = 4
                         Case 90 To 100
                            pts = 5
                    End Select
                    If pts < ptMin Then ptMin = pts
                    If flag1 = True Then
                        If pts = 3 Then counter1 = counter1 + 1
                             If (counter1 / ExCty) * 100 >= 30 Then
                                    .Cells(i, LC + 1).Value = 3
                                    .Cells(i, LC + 2).Value = "Stipendiya berilmaydi"
                                    Exit For
                             End If
                    End If
                Next j
                If .Cells(i, LC + 1).Value = 0 Then .Cells(i, LC + 1).Value = ptMin
            Next i
          
            With .Sort
                    .SortFields.Add2 Key:=Range( _
                     sh.Cells(7, LC + 1), sh.Cells(EdgeRow, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(EdgeRow, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
            End With
            With .Sort
                    .SortFields.Add2 Key:=Range( _
                     sh.Cells(EdgeRow, LC + 1), sh.Cells(LR, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(EdgeRow, 2), sh.Cells(LR, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
            End With
                
            For Each cl In Range(.Cells(7, LC + 1), .Cells(LR, LC + 1))
                cl.Font.Color = clrs(cl.Value)
            Next
           Range(.Columns(4), .Columns(LC + 1)).HorizontalAlignment = xlCenter
       End With
M1:
    Next
    Application.ScreenUpdating = True
    MsgBox "Yakunlandi"
End Sub
Где надо вводить исправление
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
06.03.2023, 15:06
Лучший ответ Сообщение было отмечено АЕ как решение

Решение

ulugbek tulakov,
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
написанный макрос вами не удаляеть все квадратные скобки
В файле , который я вам переслал 19 (permalink) все работало...

Добавлено через 3 минуты
Вы добавляете в кастрюлю капусту и картошку, а потом говорите-- плов не получается...
0
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
06.03.2023, 15:40  [ТС]
Цитата Сообщение от Narimanych Посмотреть сообщение
Вы добавляете в кастрюлю капусту и картошку, а потом говорите-- плов не получается...
Я добавиль оргиналный файл сами посмотрите
Вложения
Тип файла: xlsx 05_03_2023_05_31_26.xlsx (7.9 Кб, 5 просмотров)
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
07.03.2023, 14:48
ulugbek tulakov,
Это последний раз. Больше переделывать не буду.

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Sub MMM()
clrs = Array(vbBlack, vbBlack, vbYellow, vbGreen, vbBlue, vbRed)
  For Each sh In ThisWorkbook.Sheets
        With sh
        'catch last row and column
            LR = .Cells(Rows.Count, 1).End(xlUp).Row
            LC = .Cells(6, Columns.Count).End(xlToLeft).Column
         '___________________________
           Range(.Cells(7, 4), .Cells(LR, LC)).Replace What:="[*]", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    
                For i = 7 To LR
                     flag1 = False
                     ptscount = 0
                          
                           If .Cells(6, LC).Value = "Izohlar" Then GoTo M1
                           
                              .Cells(6, LC + 1).Value = "O‘zlashtirish"
                              .Cells(6, LC + 1).Font.Bold = True
                              .Columns(LC + 1).ColumnWidth = 12
                              .Cells(6, LC + 2).Value = "Izohlar"
                              .Cells(6, LC + 2).Font.Bold = True
                              .Columns(LC + 2).ColumnWidth = 45
                               ExCty = LC - 3
                              
                     
                              ptMin = 5
                              If .Cells(i, 3).Value = "Davlat granti" Then
                                  counter1 = 0
                                  flag1 = True
                              End If
                              For j = 4 To LC
                                        Select Case .Cells(i, j).Value
                                              Case 0 To 59.9
                                                  pts = 2
                                              Case 60 To 69.9
                                                  pts = 3
                                               Case 70 To 89.9
                                                  pts = 4
                                               Case 90 To 100
                                                  pts = 5
                                          End Select
                                             If pts < ptMin Then ptMin = pts
                                              If flag1 = True Then
                                              If pts = 3 Then counter1 = counter1 + 1
                                                   If (counter1 / ExCty) * 100 >= 30 Then
                                                          .Cells(i, LC + 1).Value = 3
                                                          .Cells(i, LC + 2).Value = "Stipendiya berilmaydi"
                                                          Exit For
                                                   End If
                                          End If
                    
                              Next
                              If .Cells(i, LC + 1).Value = 0 Then .Cells(i, LC + 1).Value = ptMin
                          Next
                        
           With .Sort
                    .SortFields.Clear
                    .SortFields.Add Key:=Range(sh.Cells(7, 3), sh.Cells(LR, 3)), _
                     SortOn:=xlSortOnValues, Order:=xlAscending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(LR, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
            For x = 7 To LR
            If .Cells(x, 3).Value = "Davlat granti" Then edge = x
            Next
                           
              With .Sort
                    .SortFields.Clear
                    .SortFields.Add Key:=Range(sh.Cells(7, LC + 1), sh.Cells(edge, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(edge, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
              
               With .Sort
                    .SortFields.Clear
                    .SortFields.Add Key:=Range(sh.Cells(edge + 1, LC + 1), sh.Cells(LR, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(edge + 1, 2), sh.Cells(LR, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
              
 
       For Each cl In Range(.Cells(7, LC + 1), .Cells(LR, LC + 1))
                cl.Font.Color = clrs(cl.Value)
            Next
           Range(.Columns(4), .Columns(LC + 1)).HorizontalAlignment = xlCenter
    End With
M1:
    Next
End Sub
0
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
07.03.2023, 15:46  [ТС]
Цитата Сообщение от Narimanych Посмотреть сообщение
Это последний раз. Больше переделывать не буду.
Спасибо. И так можно

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Sub Uzlashtirish()
Application.ScreenUpdating = False
clrs = Array(vbBlack, vbBlack, vbYellow, vbGreen, vbBlue, vbRed)
    For Each sh In ThisWorkbook.Sheets
        With sh
            LR = .Cells(Rows.Count, 1).End(xlUp).row
            LC = .Cells(6, Columns.Count).End(xlToLeft).Column
            If .Cells(6, LC).Value = "Izohlar" Then GoTo M1
                With .Sort
                    .SortFields.Clear
                    .SortFields.Add2 Key:=Range(sh.Cells(7, 3), sh.Cells(LR, 3)), _
                     SortOn:=xlSortOnValues, Order:=xlAscending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(LR, LC))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
      
            Set Dr = CreateObject("VBScript.RegExp")
            Dr.Pattern = "\[\d+\]"
            ExCty = LC - 3
            .Cells(6, LC + 1).Value = "O‘zlashtirish"
            .Cells(6, LC + 1).Font.Bold = True
            .Columns(LC + 1).ColumnWidth = 12
            .Cells(6, LC + 2).Value = "Izohlar"
            .Cells(6, LC + 2).Font.Bold = True
            .Columns(LC + 2).ColumnWidth = 45
         
            For i = 7 To LR
                flag1 = False
                ptscount = 0
                
                If .Cells(i, 3).Value = "Davlat granti" Then
                    EdgeRow = i
                    counter1 = 0
                    flag1 = True
                End If
               
                ptMin = 5
                For j = 4 To LC
                    If IsEmpty(.Cells(i, j).Value) Or .Cells(i, j).Value = "" Then
                        .Cells(i, LC + 1).Value = 2
                        Exit For
                    End If
                    If Dr.Test(.Cells(i, j).Value) Then .Cells(i, j).Value = Dr.Replace(.Cells(i, j).Value, "")
                     pts = 0
                     
                    Select Case .Cells(i, j).Value
                        Case 0 To 59.9
                            pts = 2
                        Case 60 To 69.9
                            pts = 3
                         Case 70 To 89.9
                            pts = 4
                         Case 90 To 100
                            pts = 5
                    End Select
                    If pts < ptMin Then ptMin = pts
                    If flag1 = True Then
                        If pts = 3 Then counter1 = counter1 + 1
                             If (counter1 / ExCty) * 100 >= 30 Then
                                    .Cells(i, LC + 1).Value = 3
                                    .Cells(i, LC + 2).Value = "Stipendiya berilmaydi"
                                    Exit For
                             End If
                    End If
                Next j
                'if no score - write it to cell
                If .Cells(i, LC + 1).Value <> 2 And .Cells(i, LC + 2).Value <> "Stipendiya berilmaydi" Then
                    If .Cells(i, LC + 1).Value = 0 Then .Cells(i, LC + 1).Value = ptMin
                End If
 
            Next i
          
            With .Sort
                    .SortFields.Add2 Key:=Range( _
                     sh.Cells(7, LC + 1), sh.Cells(EdgeRow, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(EdgeRow, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
            End With
            With .Sort
                    .SortFields.Add2 Key:=Range( _
                     sh.Cells(EdgeRow, LC + 1), sh.Cells(LR, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(EdgeRow, 2), sh.Cells(LR, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
            End With
                
            For Each cl In Range(.Cells(7, LC + 1), .Cells(LR, LC + 1))
                cl.Font.Color = clrs(cl.Value)
            Next
           Range(.Columns(4), .Columns(LC + 1)).HorizontalAlignment = xlCenter
       End With
M1:
    Next
    Application.ScreenUpdating = True
    MsgBox "Yakunlandi"
End Sub


Добавлено через 7 минут
Narimanych,
Цитата Сообщение от Narimanych Посмотреть сообщение
Это последний раз. Больше переделывать не буду.
Спасибо что посторались для меня. Задача решено. Результат вашу последного кода тоже как преждний.
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
07.03.2023, 15:50
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
Результат вашу последного кода тоже как преждний
No comments.....
1
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
07.03.2023, 16:02
Можете посмотреть...
Вложения
Тип файла: rar FF.rar (4.78 Мб, 5 просмотров)
1
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
07.03.2023, 16:07
ulugbek tulakov,

Цитата Сообщение от Narimanych Посмотреть сообщение
написанный макрос вами не удаляеть все квадратные скобки
У вас в коде ничего насчет этого не и переправлено....

Пы.Сы. Куда мне с замдеканами состязаться....
0
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
07.03.2023, 16:57  [ТС]
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
Narimanych, Помогите пожалуйста глянте в лист O'rtacha ball (4) там студента IBROHIMOV AMAL ASHURALIYEVICH успеваемость должен быт 2 (двойка)
Я имел ввиду это. На счет удаление все квадратные скобки я написал макрос с макрорекордером.

Добавлено через 17 минут
Цитата Сообщение от Narimanych Посмотреть сообщение
Range(.Cells(7, 4), .Cells(LR, LC)).Replace What:="[*]", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Наверно этот част удаляеть все квадратные скобки. Где можно добавить этот часть в макросе который я помещаль
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
07.03.2023, 17:35
Цитата Сообщение от ulugbek tulakov Посмотреть сообщение
Где можно добавить этот часть в макросе который я помещаль
понятия не имею....
0
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
07.03.2023, 17:53  [ТС]
Я правилно сделаль?

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Sub Uzlashtirish()
Application.ScreenUpdating = False
clrs = Array(vbBlack, vbBlack, vbYellow, vbGreen, vbBlue, vbRed)
    For Each sh In ThisWorkbook.Sheets
        With sh
            LR = .Cells(Rows.Count, 1).End(xlUp).row
            LC = .Cells(6, Columns.Count).End(xlToLeft).Column
            If .Cells(6, LC).Value = "Izohlar" Then GoTo M1
            '___________________________
           Range(.Cells(7, 4), .Cells(LR, LC)).Replace What:="[*]", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
                With .Sort
                    .SortFields.Clear
                    .SortFields.Add2 Key:=Range(sh.Cells(7, 3), sh.Cells(LR, 3)), _
                     SortOn:=xlSortOnValues, Order:=xlAscending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(LR, LC))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
      
            Set Dr = CreateObject("VBScript.RegExp")
            Dr.Pattern = "\[\d+\]"
            ExCty = LC - 3
            .Cells(6, LC + 1).Value = "O‘zlashtirish"
            .Cells(6, LC + 1).Font.Bold = True
            .Columns(LC + 1).ColumnWidth = 12
            .Cells(6, LC + 2).Value = "Izohlar"
            .Cells(6, LC + 2).Font.Bold = True
            .Columns(LC + 2).ColumnWidth = 45
         
            For i = 7 To LR
                flag1 = False
                ptscount = 0
                
                If .Cells(i, 3).Value = "Davlat granti" Then
                    EdgeRow = i
                    counter1 = 0
                    flag1 = True
                End If
               
                ptMin = 5
                For j = 4 To LC
                    If IsEmpty(.Cells(i, j).Value) Or .Cells(i, j).Value = "" Then
                        .Cells(i, LC + 1).Value = 2
                        Exit For
                    End If
                    If Dr.Test(.Cells(i, j).Value) Then .Cells(i, j).Value = Dr.Replace(.Cells(i, j).Value, "")
                     pts = 0
                     
                    Select Case .Cells(i, j).Value
                        Case 0 To 59.9
                            pts = 2
                        Case 60 To 69.9
                            pts = 3
                         Case 70 To 89.9
                            pts = 4
                         Case 90 To 100
                            pts = 5
                    End Select
                    If pts < ptMin Then ptMin = pts
                    If flag1 = True Then
                        If pts = 3 Then counter1 = counter1 + 1
                             If (counter1 / ExCty) * 100 >= 30 Then
                                    .Cells(i, LC + 1).Value = 3
                                    .Cells(i, LC + 2).Value = "Stipendiya berilmaydi"
                                    Exit For
                             End If
                    End If
                Next j
                'if no score - write it to cell
                If .Cells(i, LC + 1).Value <> 2 And .Cells(i, LC + 2).Value <> "Stipendiya berilmaydi" Then
                    If .Cells(i, LC + 1).Value = 0 Then .Cells(i, LC + 1).Value = ptMin
                End If
 
            Next i
          
            With .Sort
                    .SortFields.Add2 Key:=Range( _
                     sh.Cells(7, LC + 1), sh.Cells(EdgeRow, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(7, 2), sh.Cells(EdgeRow, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
            End With
            With .Sort
                    .SortFields.Add2 Key:=Range( _
                     sh.Cells(EdgeRow, LC + 1), sh.Cells(LR, LC + 1)), _
                     SortOn:=xlSortOnValues, Order:=xlDescending, _
                     DataOption:=xlSortNormal
                    .SetRange Range(sh.Cells(EdgeRow, 2), sh.Cells(LR, LC + 2))
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
            End With
                
            For Each cl In Range(.Cells(7, LC + 1), .Cells(LR, LC + 1))
                cl.Font.Color = clrs(cl.Value)
            Next
           Range(.Columns(4), .Columns(LC + 1)).HorizontalAlignment = xlCenter
       End With
M1:
    Next
    Application.ScreenUpdating = True
    MsgBox "Yakunlandi"
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2023, 17:53

Программа успеваемости учащихся
Напишите программу которая отслеживает успеваемость учащихся Она должна иметь следующие особенности 1.Меню с опциями добавления данных...

Как проверить сайт БД об успеваемости учащихся на уязвимость
Вопрос у меня довольно серьезный . Как проверить сайт Базы Данных об успеваемости учащихся ? Чем можно проверить ?

Программа для ведения статистического учета успеваемости учащихся
Программа учета успеваемости учащихся. Помогите написать простенькую базу данных или скиньте ,если есть у кого заготовку (шаблон) можно на...

Для описания успеваемости учащихся класса целесообразно представить данные
Для описания успеваемости учащихся класса целесообразно представить данные так (таблица): и определить следующие типы данных: * ...

Дан текст содержащий сведения об успеваемости учащихся. Определить средний балл каждого ученика
Задача:Дан текст содержащий сведения об успеваемости учащихся, разделенное запятой.Каждое сведение содержит фамилию, имя ученика и оценки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru