Страницы: 1
RSS
Макрос для сортировки от А до Я, после добавления новых элементов в выпадающий список
 
Добрый вечер друзья.
Есть файл с выпадающими списками с добавлением новых элементов. Нужно вписать код в макрос, чтобы после добавления новых элементов в список сразу же и сортировался список по алфавиту от А до Я.
Вот макрос. Файл тоже добавлен.
Код
Private Sub Worksheet_Change(ByVal Target As Range)

Dim lReply As Long

    If Target.Cells.Count > 1 Then Exit Sub 'B2 xanasina mallarin adini daxil etmak ucun
        If Not Intersect(Target, Range("B2:B2")) Is Nothing Then
            If IsEmpty(Target) Then Exit Sub
                If WorksheetFunction.CountIf(Sheets("CADVALLAR").Range("MALLAR"), Target) = 0 Then
                    lReply = MsgBox("Daxil edilmis """ & Target & """ sozu siyahiya alava edilsin?", vbYesNo + vbQuestion)
                        If lReply = vbYes Then
                            Sheets("CADVALLAR").Range("MALLAR").Cells(Sheets("CADVALLAR").Range("MALLAR").Rows.Count + 1, 1) = Target
                        End If
                End If
        End If
        
    If Target.Cells.Count > 1 Then Exit Sub 'B9 xanasina Malsatanlarin adini daxil etmak ucun
        If Not Intersect(Target, Range("B9:B9")) Is Nothing Then
            If IsEmpty(Target) Then Exit Sub
                If WorksheetFunction.CountIf(Sheets("CADVALLAR").Range("MALSATANLAR"), Target) = 0 Then
                    lReply = MsgBox("Daxil edilmis """ & Target & """ sozu siyahiya alava edilsin?", vbYesNo + vbQuestion)
                        If lReply = vbYes Then
                            Sheets("CADVALLAR").Range("MALSATANLAR").Cells(Sheets("CADVALLAR").Range("MALSATANLAR").Rows.Count + 1, 1) = Target
                        End If
                End If
        End If
        
End Sub
 
Записал макрорекордером, проверяйте
 
Процедуру "MySort" поместите в один модуль с событием "Worksheet_Change".
Макрос
 
Не идёт)
До Вас я пробовал этот вариант, компютер долго думает - мучается.
Думаю есть какой то более удобный вариант.
 
Karataev спасибо Вам, Ваш вариант более подходит, но тоже мучается. Буду ждать других вариантов. Если друзья не найдут другого варианта буду пользоваться Вашим.
 
На файле из поста 1 макрос из поста 3 у меня быстро срабатывает. Задержка видна, но это секунды 2.
У Вас долго работает макрос в файле из поста 1 или на другом файле? Какая у Вас версия Excel'я?
 
Excel 2010

1) Да, Ваш макрос работает на много быстрее. но помоему 2 секунды - это больше, потому, что в дальнейшем в файле будет много информации и наверно эти 2 секунды перерастают на минуты.
2) Иногда при операции сортировки как будто листе появляется столбец с другого листа(красным помеченный) и исчезает только если закрыть и отрыть файл.

3) В другой теме (http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=87646&TITLE_SEO=8764...) мне оставили файл где сортировка проходила формулой, но к сожалению модераторы удалили последние ответы вместе с этим файлом. Я думаю в конечном итоге мне понадобиться этот файл, если задача не решится макросом.
Изменено: elnur_quba - 20.02.2017 09:29:46
 
Цитата
elnur_quba написал:
Иногда при операции сортировки как будто листе появляется столбец с другого листа(красным помеченный) и исчезает только если закрыть и отрыть файл.
Наверное это как-то связано с обновлением экрана, после возвращения на лист ALIS остается пятно, тоже заметил, поэтому в своем примере в #2 после выполнения основного кода применил вот такое рабоче-крестьянское средство:
Код
ActiveWindow.SmallScroll Down:=144
    Range("B9").Select
При прокрутке экран обновляется и пятно исчезает  :)
 
Цитата
elnur_quba написал:
в дальнейшем в файле будет много информации и наверно эти 2 секунды перерастают на минуты
Сейчас торможение происходит из-за кнопок, которые находятся на листе (столбцы F, J). Если эти кнопки удалить, то сортировка станет моментальной.
Я для теста заполнил на листе "CADVALLAR" диапазон A1:A100000 и скорость сортировки осталась та же.

По поводу пункта 2 (пост 7). Используйте эту процедуру (старую удалите):
Процедура
Изменено: Karataev - 20.02.2017 10:05:14
 
пользуйтесь.
модераторы, Вам, что, помощи жалко? с какой целью тему, упомянутую в #7, чистили?
 
copper-top, наверное это все проделки нового анти-спама. Ваш файл немного не тот, не доделан до конца, я помню эту тему. Вот окончательный вариант:
 
Цитата
Karataev написал:
По поводу пункта 2 (пост 7). Используйте эту процедуру (старую удалите):
Этим решены проблемы "2 секунды" и появления чужого столбца.
Кажется всё.
Спасибо Всем :) !
Страницы: 1
Наверх