Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.04.2008, 11:28   #1
SASHA50
 
Регистрация: 23.04.2008
Сообщений: 5
По умолчанию Операция Ы

исходные данные:
несколько листов с одинаковыми по структуре таблицами из 6 столбцов.
Псоледний столбец цена. Нужно сделать макрос чтобы он копировал на отдельный лист все строки со всех листов в которых последняя ячека больше 0.
я делал просто записью макроса. получилось очень криво, весит много.
все мелькает когда производиться копирование.
Подскажите пожайлуста как можно это сделать попроще и в фоновом режиме...
Еще один момент: можно ли средствами VBA прикрепить анимацию со строкой индикации выполнения процесса, ну или просто анимацию без инцдикации, пока идет расчет.
Земной поклон всем кто поможет.)
SASHA50 вне форума
Старый 23.04.2008, 14:53   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Здесь N-ное количество листов. Запустите макрос "Start". Он создаст новый лист "Итог" и скопирует в созданный лист все строки всех листов, в 6-м столбце которых (столбце "F") ячейка не пуста и ее значение больше 0. При этом, на экране в созданной форме будет отображаться ход выполнения процесса. Так Вам было нужно?
Вложения
Тип файла: rar Progress.rar (23.6 Кб, 50 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 23.04.2008, 20:27   #3
SASHA50
 
Регистрация: 23.04.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение. Здесь N-ное количество листов. Запустите макрос "Start". Он создаст новый лист "Итог" и скопирует в созданный лист все строки всех листов, в 6-м столбце которых (столбце "F") ячейка не пуста и ее значение больше 0. При этом, на экране в созданной форме будет отображаться ход выполнения процесса. Так Вам было нужно?
Большое спасибо!))))то что у меня было, занимало 300килобайт кода)))
но появились несколько НО:
1)если в таблице сверху есть заголовки то как быть с ними, причем они одинаковые, на всех листах кроме первого. так же при копировании не сохраняет исходную ширину столбцов
2)как сделать чтоюы копировал с определенных листов, например 2,3,4.
3)Если ячека F сама является итогом неких вычислений, то Пишет ссылка
как быть.
4)как вместо формы с процессом прикрепить gif анимацию, и возможно ли это
5) выполняется очень быстро, чтобы анимация прокрутилась замедлить секунд на 5.
документ прилагаю, только в сокращенном виде на одном листе
Вложения
Тип файла: zip Книга1.zip (4.4 Кб, 20 просмотров)
SASHA50 вне форума
Старый 24.04.2008, 11:12   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Вроде бы, сделал как Вы просили.
Я просто размножил Ваш лист, сделав (для теста) несколько. В итоговом листе в столбце "H" пишется номер листа, из которого взяты данные. Если это не нужно - уберите. Это просто для наглядности. В коде (там есть комментарий) есть строка, реализующая "торможение" скрипта с помощью WinApi-функции после обработки каждого листа. Установлено 0,3 сек. Если нужно - измените. По поводу gif анимации: можно, конечно, запустить "стороннюю" программу (например, Internet Explorer, ACDSee и т.д.), но это не есть хорошо. А средства Excel все анимированные изображения (готовые, например, gif) покажет как просто картинки (стационарные). Что еще не так?
Вложения
Тип файла: rar Progress_2.rar (704.6 Кб, 45 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 24.04.2008, 17:21   #5
SASHA50
 
Регистрация: 23.04.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение. Вроде бы, сделал как Вы просили.
Я просто размножил Ваш лист, сделав (для теста) несколько. В итоговом листе в столбце "H" пишется номер листа, из которого взяты данные. Если это не нужно - уберите. Это просто для наглядности. В коде (там есть комментарий) есть строка, реализующая "торможение" скрипта с помощью WinApi-функции после обработки каждого листа. Установлено 0,3 сек. Если нужно - измените. По поводу gif анимации: можно, конечно, запустить "стороннюю" программу (например, Internet Explorer, ACDSee и т.д.), но это не есть хорошо. А средства Excel все анимированные изображения (готовые, например, gif) покажет как просто картинки (стационарные). Что еще не так?
1)на первом листе планируется разместить прочую информацию и 2 кнопочки( рассчитать и обнулить) соотвественно при обнулении все f ячеки= 0 , при расчет запускается макрос. Думаю, это я сам сделаю.
2)Скажите, а если сделать все проще:макрос пусть выполняется в фоновом режиме, без тормажения, и без индикации процесса и возможности выбора листов.Просто нажал-появился итог с результатами.
Но я не знаю сколько листов будет. Можно ли дать комментарий, как мне в код внести только те листы с которых нужно счиатать.( например будет лист Электрика, сантехника и тд)
3)скажите пожайлуста, а за счет чего выш последний файл 19мб в разархивированном виде?
Простите меня грешника, еще раз спасибо!
SASHA50 вне форума
Старый 24.04.2008, 20:34   #6
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Лампочка Элементарно, Ватсон! (с)

Цитата:
Сообщение от SASHA50 Посмотреть сообщение
2)как мне в код внести только те листы с которых нужно счиатать.( например будет лист Электрика, сантехника и тд)
Код:
    Dim vStr as Variant 'Именно Variant
'...
    For Each vStr In Array("Электрика", "сантехника", "тд")
        Sheets(vStr).Select
        '...
    Next
дмидми вне форума
Старый 25.04.2008, 07:27   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Уважаемый дмидми, Вы, наверное, не смотрели предложенный мной вариант. Там в форме задаем параметр ввода листов (по имени, или по номеру, или все). На основании этих данных как раз и формируется массив (As String или As Integer) для обрабатываемых листов, о котором Вы говорите.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 25.04.2008, 07:38   #8
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Злость На приоритет не претендую

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Уважаемый дмидми, Вы, наверное, не смотрели предложенный мной вариант. Там...
Я-то посмотрел - и, конечно, сразу забыл об этом. Поскольку приём азбучный и внимания на себя не обращает.

А вот аскер, для которого Вы старались, туда вряд ли заглядывал, коли задал тот дополнительный вопрос, который он задал -- и на который я по склерозу ответил.
дмидми вне форума
Старый 25.04.2008, 10:41   #9
SASHA50
 
Регистрация: 23.04.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от дмидми Посмотреть сообщение
А вот аскер, для которого Вы старались, туда вряд ли заглядывал, коли задал тот дополнительный вопрос, который он задал -- и на который я по склерозу ответил.
Тот аскер туда заглядывал, но к сожалению ничего не поянл. Я понимаю, что для вас VB как букварь, но для меня это дремучий лес.
Операция то простая: по нажатию кнопки со всех листов,которые указаны в коде скопирвать все строки на новый лист, где F ячейка больше 0, сохранив при этом ширину столбцов и форматирование. Сделав это в фоновом режиме. Но я не могу разобраться(
Вложения
Тип файла: zip Книга1111.zip (10.5 Кб, 20 просмотров)

Последний раз редактировалось SASHA50; 25.04.2008 в 10:43.
SASHA50 вне форума
Старый 25.04.2008, 11:13   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А где вопрос? Просто на листах другие данные? Добавляйте (копируйте, изменяйте) листы в рабочей книге и все. Пример во вложении.
Вложения
Тип файла: rar Progress_3.rar (23.8 Кб, 33 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Булевская операция вычитания для зх мерных геометрических полигональных моделей Frenza Общие вопросы C/C++ 2 13.09.2008 03:31
Операция сдвига? SkyDreamer Общие вопросы C/C++ 3 10.10.2007 08:20