|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
23.04.2008, 11:28 | #1 |
Регистрация: 23.04.2008
Сообщений: 5
|
Операция Ы
исходные данные:
несколько листов с одинаковыми по структуре таблицами из 6 столбцов. Псоледний столбец цена. Нужно сделать макрос чтобы он копировал на отдельный лист все строки со всех листов в которых последняя ячека больше 0. я делал просто записью макроса. получилось очень криво, весит много. все мелькает когда производиться копирование. Подскажите пожайлуста как можно это сделать попроще и в фоновом режиме... Еще один момент: можно ли средствами VBA прикрепить анимацию со строкой индикации выполнения процесса, ну или просто анимацию без инцдикации, пока идет расчет. Земной поклон всем кто поможет.) |
23.04.2008, 14:53 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Здесь N-ное количество листов. Запустите макрос "Start". Он создаст новый лист "Итог" и скопирует в созданный лист все строки всех листов, в 6-м столбце которых (столбце "F") ячейка не пуста и ее значение больше 0. При этом, на экране в созданной форме будет отображаться ход выполнения процесса. Так Вам было нужно?
Чем шире угол зрения, тем он тупее.
|
23.04.2008, 20:27 | #3 | |
Регистрация: 23.04.2008
Сообщений: 5
|
Цитата:
но появились несколько НО: 1)если в таблице сверху есть заголовки то как быть с ними, причем они одинаковые, на всех листах кроме первого. так же при копировании не сохраняет исходную ширину столбцов 2)как сделать чтоюы копировал с определенных листов, например 2,3,4. 3)Если ячека F сама является итогом неких вычислений, то Пишет ссылка как быть. 4)как вместо формы с процессом прикрепить gif анимацию, и возможно ли это 5) выполняется очень быстро, чтобы анимация прокрутилась замедлить секунд на 5. документ прилагаю, только в сокращенном виде на одном листе |
|
24.04.2008, 11:12 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Вроде бы, сделал как Вы просили.
Я просто размножил Ваш лист, сделав (для теста) несколько. В итоговом листе в столбце "H" пишется номер листа, из которого взяты данные. Если это не нужно - уберите. Это просто для наглядности. В коде (там есть комментарий) есть строка, реализующая "торможение" скрипта с помощью WinApi-функции после обработки каждого листа. Установлено 0,3 сек. Если нужно - измените. По поводу gif анимации: можно, конечно, запустить "стороннюю" программу (например, Internet Explorer, ACDSee и т.д.), но это не есть хорошо. А средства Excel все анимированные изображения (готовые, например, gif) покажет как просто картинки (стационарные). Что еще не так?
Чем шире угол зрения, тем он тупее.
|
24.04.2008, 17:21 | #5 | |
Регистрация: 23.04.2008
Сообщений: 5
|
Цитата:
2)Скажите, а если сделать все проще:макрос пусть выполняется в фоновом режиме, без тормажения, и без индикации процесса и возможности выбора листов.Просто нажал-появился итог с результатами. Но я не знаю сколько листов будет. Можно ли дать комментарий, как мне в код внести только те листы с которых нужно счиатать.( например будет лист Электрика, сантехника и тд) 3)скажите пожайлуста, а за счет чего выш последний файл 19мб в разархивированном виде? Простите меня грешника, еще раз спасибо! |
|
24.04.2008, 20:34 | #6 |
Форумчанин
Регистрация: 06.03.2008
Сообщений: 352
|
Элементарно, Ватсон! (с)
|
25.04.2008, 07:27 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Уважаемый дмидми, Вы, наверное, не смотрели предложенный мной вариант. Там в форме задаем параметр ввода листов (по имени, или по номеру, или все). На основании этих данных как раз и формируется массив (As String или As Integer) для обрабатываемых листов, о котором Вы говорите.
Чем шире угол зрения, тем он тупее.
|
25.04.2008, 07:38 | #8 | |
Форумчанин
Регистрация: 06.03.2008
Сообщений: 352
|
На приоритет не претендую
Цитата:
А вот аскер, для которого Вы старались, туда вряд ли заглядывал, коли задал тот дополнительный вопрос, который он задал -- и на который я по склерозу ответил. |
|
25.04.2008, 10:41 | #9 | |
Регистрация: 23.04.2008
Сообщений: 5
|
Цитата:
Операция то простая: по нажатию кнопки со всех листов,которые указаны в коде скопирвать все строки на новый лист, где F ячейка больше 0, сохранив при этом ширину столбцов и форматирование. Сделав это в фоновом режиме. Но я не могу разобраться( Последний раз редактировалось SASHA50; 25.04.2008 в 10:43. |
|
25.04.2008, 11:13 | #10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
А где вопрос? Просто на листах другие данные? Добавляйте (копируйте, изменяйте) листы в рабочей книге и все. Пример во вложении.
Чем шире угол зрения, тем он тупее.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Булевская операция вычитания для зх мерных геометрических полигональных моделей | Frenza | Общие вопросы C/C++ | 2 | 13.09.2008 03:31 |
Операция сдвига? | SkyDreamer | Общие вопросы C/C++ | 3 | 10.10.2007 08:20 |