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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.07.2008, 14:59   #1
Dorvir
Пользователь
 
Аватар для Dorvir
 
Регистрация: 06.02.2008
Сообщений: 42
По умолчанию Цикл для просмотра диапазона и выбора нужных ячеек.

Привет всем!

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

В файле уже есть макрос который выбирает нужные ячейки, но поскольку их количество все время меняется надо написать цикл, который бы просматривал определенный диапазон.

Циклы у меня не всегда получаются... а сейчас я даже не знаю с чего начать его писать...

Вот даже сейчас не могу понятнее обьяснить, надо смотреть файл, там на 1 листе описание того что должно происходить...

Спасибо всем за помощь!
Вложения
Тип файла: rar Budget.rar (744.6 Кб, 25 просмотров)
Dorvir вне форума
Старый 19.07.2008, 21:36   #2
Dorvir
Пользователь
 
Аватар для Dorvir
 
Регистрация: 06.02.2008
Сообщений: 42
По умолчанию

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

То есть макрос выбирает все нужные значения, но копирует в одно и тоже место, в резульате чего остается только последнее найденное значение.

Помогите это исправить пожалуйста!
Вложения
Тип файла: rar Budget2.rar (797.0 Кб, 21 просмотров)
Dorvir вне форума
Старый 20.07.2008, 02:00   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Dorvir, замените в модуле TotalVolumeSuppliers2
код:
Код:
        Set rgPastTotalVolume = ThisWorkbook.Worksheets("Контейнеры").Range("A2:I2")
на код
Код:
        Dim IMax As Integer, OutAddress As String
        
        IMax = ThisWorkbook.Worksheets("Контейнеры").Cells(ActiveSheet.UsedRange.Rows.Count, "A").End(xlUp).Row
        IMax = IMax + 1
        OutAddress = "A" & Trim(Str(IMax)) & ":" & "I" & Trim(Str(IMax))
        Set rgPastTotalVolume = ThisWorkbook.Worksheets("Контейнеры"). _
          Range(OutAddress)
p.s. возможно в будущем Вам потребуется очистка листа "Контейнеры" - т.е. теперь записи всегда будут добавляться в конец листа
Serge_Bliznykov вне форума
Старый 20.07.2008, 22:48   #4
Dorvir
Пользователь
 
Аватар для Dorvir
 
Регистрация: 06.02.2008
Сообщений: 42
По умолчанию

Спасибо! Очень интересный ход! Мне правда не требуется смещение диапазона вниз, после каждой вставки! Но в будущем наверняка такое нужно будет!
Dorvir вне форума
Старый 20.07.2008, 23:01   #5
Dorvir
Пользователь
 
Аватар для Dorvir
 
Регистрация: 06.02.2008
Сообщений: 42
По умолчанию

В смысле, я имею ввиду, что при запуске макроса он должен искать данные в определенном диапазоне и вставлять их друг под другом. При повторном запуске мне требовалось чтобы данные заменялись, чтобы использовался бы тот же самый диапазон для вставки. А не смещался бы ниже под уже вставленным диапазоном, как получилось в Вашем случае.
Dorvir вне форума
Старый 20.07.2008, 23:10   #6
Dorvir
Пользователь
 
Аватар для Dorvir
 
Регистрация: 06.02.2008
Сообщений: 42
По умолчанию

Но у меня уже это само получилось. Если кому интересно, можете посмотреть файл. На каждой неделе расчета бюджета (лист ПОТРЕБНОСТИ) можно посмотреть объем по каждому поставщику.
Для этого нужно встать на столбец Приход и нажать кнопку Volume2.
В картинке данные по объему обновятся.
Вложения
Тип файла: rar Budget3.rar (790.7 Кб, 34 просмотров)
Dorvir вне форума
Старый 20.07.2008, 23:23   #7
Dorvir
Пользователь
 
Аватар для Dorvir
 
Регистрация: 06.02.2008
Сообщений: 42
По умолчанию

Кстати может кто-нибудь подскажет как сделать так чтобы данные копировались с ссылками.

Сейчас написан такой код:

rgTotalVolume.Copy
rgPastTotalVolume.PasteSpecial Paste:=xlValues

При попытке заменить его на:

rgTotalVolume.Copy
rgPastTotalVolume.Select
Worksheets("Контейнеры").Paste Link:=True

Выдается ошибка:

Run-time error '1004':
Метод Select из класса Range завершен неверно
Dorvir вне форума
Старый 20.07.2008, 23:52   #8
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Dorvir Посмотреть сообщение
при запуске макроса он должен искать данные в определенном диапазоне и вставлять их друг под другом.
Ищет по 13 листам в диапазоне [I31:I36] и вставляет все найденное на отдельный лист в один столбец, устроит?
valerij вне форума
Старый 21.07.2008, 06:33   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А зачем при этом применять специальную вставку? если просто скопировать (все) и вставить, то ссылка также скопируется. Например, пусть в ячейке "A1" имеется ссылка. Выполнив
Код:
[A1].Copy [B1]
в ячейке "B1" получим и значение ячейки "A1" и такую же ссылку.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление не нужных знаков после запятой. Alar Общие вопросы Delphi 4 31.05.2012 19:59
выборка нужных значений, вывод AZaharov Microsoft Office Excel 19 17.10.2008 12:22
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34
Защита просмотра файла Антон Шестаков Безопасность, Шифрование 1 13.05.2007 20:33