нужно сделать макрос в екселе
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > нужно сделать макрос в екселе

нужно сделать макрос в екселе

Ответ
Поиск в этой теме
Непрочитано 17.03.2013, 18:19 #1
нужно сделать макрос в екселе
предок
 
Регистрация: 17.03.2013
Сообщений: 4

Подскажите, пожалуйста
Как сделать макрос, который, допустим из списка клиентов банка, отбирает на новые листы информацию о клиентах, имеющих вклад от 100 000 до 200 000, на другой лист 200 001 до 300 000, на третий ... и т.д.
Просмотров: 3969
 
Непрочитано 17.03.2013, 18:30
#2
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Обязательно хочется в гамаке и стоя?
Изучай Access!!!
trir вне форума  
 
Непрочитано 17.03.2013, 20:00
#3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Для старта, допустим суммы в колонке "B",
лист с основными данными "Sheet1":

Код:
[Выделить все]
Sub ExtractSummary()

Dim newSheet As Worksheet
Set newSheet = ThisWorkbook.Sheets.Add
newSheet.Name = "150000"

Sheets("Sheet1").Activate

With ActiveSheet.UsedRange.CurrentRegion

     Dim rw As Long, idx As Long, i As Long
     Dim inv As Currency
    rw = Cells(Rows.Count, "B").End(xlUp).Row
    i = 1
    For idx = rw To 2 Step -1
        inv = Cells(idx, "B").Value
        If inv > 150000 And inv < 250000 Then
        newSheet.Cells(i, 1) = inv
        i = i + 1
        End If
    Next idx
    End With

newSheet.Activate

End Sub
Олег (jr.) вне форума  
 
Непрочитано 17.03.2013, 20:52
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


А мой код короче
Код:
[Выделить все]
select клиенты where вклад between 100 000 and 200 000
trir вне форума  
 
Непрочитано 17.03.2013, 20:54
#5
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


@предок
Определись для себя, какая СУБД тебе более подойдёт, исходя из исходных данных (ОС, объёмы данных, количество одновременно работающих с БД юзеров и т.п.), после чего задавай вопросы здесь. Решения "аля Excel" можешь смело выбрасывать в ведро - такой вариант даже рассматривать не стоит.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 17.03.2013, 21:43
#6
предок


 
Регистрация: 17.03.2013
Сообщений: 4


Олег, спасибо
предок вне форума  
 
Непрочитано 17.03.2013, 22:03
#7
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


На самом деле конкретно эту задач можно решить и просто формулами (комбинацией =если(...) и =впр(...)), но путь этот естественно тупиковый - рано или поздно в упрешся в возможности excel.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 17.03.2013, 22:06
#8
предок


 
Регистрация: 17.03.2013
Сообщений: 4


спасибо
предок вне форума  
 
Непрочитано 17.03.2013, 22:08
#9
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
но путь этот естественно тупиковый - рано или поздно в упрешся в возможности excel.
Offtop: Не сбивай человека с пути, он же через Excel хочет... Ему уже и "код" дали... Похоже, что это не тот случай, когда вопрошающий предпочитает учиться на чужих ошибках. Думать будет после...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 17.03.2013, 22:31 проба пера
#10
предок


 
Регистрация: 17.03.2013
Сообщений: 4


если честно, участвую в форме впервые
есть еще у меня вопрос - в екселе кол-во записей больше миллиона можно сделать?
предок вне форума  
 
Непрочитано 17.03.2013, 22:36
#11
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от предок Посмотреть сообщение
если честно, участвую в форме впервые
есть еще у меня вопрос - в екселе кол-во записей больше миллиона можно сделать?
Есть такая штука - гугл. Им вообще удобней пользоваться (если руки есть), вместо того, чтобы ждать, что это сделает кто-то другой, а то ведь могут и полениться, что тогда?

Ответ находится за секунду:
Цитата:
Начиная с версии Excel 2007, размер сетки увеличен с 65 000 до более чем одного миллиона строк. Это увеличение повлекло за собой ряд проблем с производительностью и отображением при работе с графическими объектами в новых областях расширенной сетки. В Excel 2010 были оптимизированы функции, в которых в качестве источника используются данные левой верхней части сетки, что позволило повысить производительность при работе с графическими элементами в новых областях сетки. По сравнению с Excel 2007 удалось повысить качество и производительность функций отображения.
Лучше это делать в Word'е, чтобы удовольствие было максимальным...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 18.03.2013, 01:37
#12
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от предок Посмотреть сообщение
Олег, спасибо
Я думаю лучше сначала создать копию листа данных
"CopyData") отсортировать его по столбцу сумм,
потом применить что-то вроде

Код:
[Выделить все]
Sub ExtractSummary()

Dim newSheet As Worksheet
Set newSheet = ThisWorkbook.Sheets.Add
newSheet.Name = "150000"

Sheets("CopyData").Activate
Application.CutCopyMode = xlCut
With ActiveSheet.UsedRange.CurrentRegion

     Dim rw As Long, idx As Long, i As Long
     Dim inv As Currency
    rw = Cells(Rows.Count, "B").End(xlUp).Row
    i = 1
    For idx = rw To 2 Step -1
        inv = Cells(idx, "B").Value
        If inv > 150000 And inv < 250000 Then
       newSheet.Cells(i, 1).EntireRow.Value = Cells(idx, "B").EntireRow.Value
        Cells(idx, "B").EntireRow.Delete
        i = i + 1
        End If
    Next idx
    End With

newSheet.Activate

End Sub
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > нужно сделать макрос в екселе



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание дополнительных параметров Visibility Set в динамических блоках. Supermax Программирование 716 22.07.2024 11:04
Нужно сравнить 2 утеплителя для данной стеновой панели. как это сделать? 9594999 Конструкции зданий и сооружений 13 27.03.2012 11:54
Нужно подправить макрос (разрыв линии с заменой) dextron3 Программирование 30 15.07.2007 21:01
Как сделать макрос для файла *.chm Владимир М Программирование 3 16.11.2005 17:56