|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - Microsoft Excel - общие вопросы |
|
|
Технолог Сообщения: 819
|
Профиль | Отправить PM | Цитировать iam_alex, решение на VBA см. в приложенном файле. Выполнение макросов - разрешить в настройках безопасности. Вкратце: в модуль рабочего листа добавить следующий код:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 15 And Target.Column = 3 Then Select Case Cells(15, 3).Value Case "Период1" Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 4), Cells(9, 4)), xlAscending Case "Период2" Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 5), Cells(9, 5)), xlAscending Case "Период3" Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 6), Cells(9, 6)), xlAscending End Select Range(Cells(5, 3), Cells(9, 3)).Copy Range(Cells(16, 3), Cells(20, 3)).PasteSpecial xlPasteValues Range(Cells(5, 3), Cells(9, 6)).Sort Range(Cells(5, 3), Cells(9, 3)), xlAscending Target.Activate End If End Sub |
Отправлено: 16:24, 21-08-2009 | #21 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Добрый день. Есть документик в эксель, в нем некоторое множество листов. Нужно, чтобы на первом листе (допустим) в ячейке А1 отображалось содержимое ячейки А1 с одного из листов (второго, третьего и т.д.). Подразумевается что при наличии заполненной ячейки А1 на одном из листов, эту же ячейку на другом листе заполнять не будут!!!
Единственный вариант который пришел в голову это функция "или", но пока не получается ничего, подскажите кто что может?! PS: в идеале, после создания формулы, первый лист надо вообще запретить редактировать (но при этом данные при редактировании других листов все равно автоматом должны отображаться на первой странице) |
Отправлено: 17:03, 04-09-2009 | #22 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветер Сообщения: 588
|
Профиль | Отправить PM | Цитировать =Лист1!A1 Вместо Лист1 подставляете любой лист с ячейкой-источником данных
|
------- Отправлено: 17:16, 04-09-2009 | #23 |
Технолог Сообщения: 819
|
Профиль | Отправить PM | Цитировать Цитата Sionnain:
Я бы решил задачу так: В редакторе VBA в модуль рабочей книги записал следующую процедуру: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Sheets("Лист1").Cells(Target.Row, Target.Column).Value = Target.Value End Sub P.S. Формул на первом листе не будет, только значения. |
|
Отправлено: 17:44, 04-09-2009 | #24 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Pliomera Огромное спасибо за помощь, данная штука работает.
можно попросить помочь чуток усовершенствовать? 1) Сделать так чтобы первый лист был заблокирован, но при этом на него могла производиться запись с остальных листов. На данный момент при блокировке листа при заполнении другого листа выскакивает ошибка о том что запись невозможна. может быть можно как то в код забить подстановку пароля? 2) Организовать какую нибудь проверочку на предмет того что определенная ячейка на первом листе заполнена, чтобы эксель выдавал сообщение и просил записать в другую ячейку? поясню, например я заполнил ячейку А1 на втором листе, она автоматом откопировалась на первый лист, после чего я заполняю ячейку А1 на третьем листе, а эксель говорит мне что ячейка уже занята и предлагает перенести на другую ячейку. что нибудь в этом роде. А то на данный момент он переносит в эту ячейку то что я набираю на следующем листе, с заменой того что там было... это так сказать защита от дурака. ![]() |
Отправлено: 11:30, 07-09-2009 | #25 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать Цитата anatoly_neo:
После записи, соответственно Только учтите, лист, с которого снимается защита, должен быть активным. Если вас это не устраивает, замените ActiveSheet на Worksheets("Название листа") |
|
------- Отправлено: 11:49, 07-09-2009 | #26 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать спасибо местным гуру за огромную помощь. осталось только второй пунктик про проверку забацать и усе
![]() |
Отправлено: 15:59, 07-09-2009 | #27 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 16:17, 07-09-2009 | #28 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Microsoft .NET Framework .:[ общие вопросы ]:. | Captain Nemo | Microsoft Windows 2000/XP | 518 | 01-02-2018 10:46 | |
Общие вопросы по коду | Prisoner | Вебмастеру | 439 | 12-06-2015 16:22 | |
Интернет - ICQ .:[ все вопросы ]:. | Evil | Программное обеспечение Windows | 712 | 06-09-2012 17:32 | |
Прочее - Сервер общие вопросы | амброзий | Сетевые технологии | 7 | 15-07-2008 11:33 |
|