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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 14:25   #1
gavrylyuk
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 55
По умолчанию Поиск листов

Всем добрый день.

Возникла проблема: имеется на одном листе список в столбик с именами всех листов книги. Напротив каждого наименования листа (в соседнем столбике) стоит какое-то значение (постоянно меняется). Подскажите пожалуйста как перенести на нужный лист рядом стоящее значение.

Спасибо
gavrylyuk вне форума Ответить с цитированием
Старый 25.06.2009, 14:44   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Private Sub Worksheet_Change(ByVal Target as Range)
Sheets(Target.offset(-1)).cells(r,c) = Target
End Sub

вместо (r,c) напишете в какой ряд какую колонку вписать значение на нужный лист.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.06.2009, 15:01   #3
gavrylyuk
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 55
По умолчанию

А если нужно вписать в первый непустой ряд? как тогда этот макрос изменится???
Спасибо
gavrylyuk вне форума Ответить с цитированием
Старый 25.06.2009, 15:04   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а по какой колонке будем определять ряд пустой или занятый?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.06.2009, 15:16   #5
gavrylyuk
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 55
По умолчанию

Я приложил пример, так наверное легче будет посмотреть. Колонки A,B,C,E,F вставляются в колонки A,B,C,E,F на других листах с первого листа (одно и то же по всем листам), а в колонку D вставляется значение из колонки H (в соответствии с названием листа в колонке І)

Спасибо
Вложения
Тип файла: zip пример.zip (16.5 Кб, 12 просмотров)
gavrylyuk вне форума Ответить с цитированием
Старый 25.06.2009, 15:33   #6
gavrylyuk
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 55
По умолчанию

А вообще определять будем по колонке B
gavrylyuk вне форума Ответить с цитированием
Старый 25.06.2009, 17:44   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

суть происходящего - непонятна, поэтому решение приведено не вашей задачи, а моего ее понимания.
Итак, как только в колонке Н на листе1 что-то изменится, на лист обозначенный в колонке І, в первый пустой ряд переносятся данные с 4-го ряда листа1, в колонку Д попадает изменившееся значение.
Вложения
Тип файла: rar Книга105.rar (20.7 Кб, 20 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 25.06.2009 в 18:10.
IgorGO вне форума Ответить с цитированием
Старый 26.06.2009, 15:58   #8
gavrylyuk
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 55
По умолчанию

Да,да, да именно так. Спасибо большое!!!
gavrylyuk вне форума Ответить с цитированием
Старый 26.06.2009, 15:59   #9
gavrylyuk
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 55
По умолчанию

А как еще можно сделать проверку листа. Если такого листа нет то відавать ошибку и не переносить никакие данные!
gavrylyuk вне форума Ответить с цитированием
Старый 26.06.2009, 16:23   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

собстенно, это сделано, строка
If Err.Number <> 0 Then Exit Sub
заканчивает работу этой процедуры, если попытка доступится до нужного листа закончилась неудачей (т.е. нет такого листа).
а всю работу по переносу данных выполняют два следующих за приведенной выше строкой оператора.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка листов cheshiki1 Microsoft Office Excel 2 29.05.2009 17:48
Cравнения 2 листов anju Microsoft Office Excel 8 08.09.2008 14:46
Сортировка листов книги RUBEY Microsoft Office Excel 1 17.07.2008 10:57
выделение листов по условию Bronyk Microsoft Office Excel 5 11.03.2008 19:40
печать нескольких листов checkbox Microsoft Office Excel 2 16.01.2008 00:50