Excelпомощь, консультации...
#142
Отправлено 16.09.2011, 12:13:52
День добрый, конкретнее опишите задачу .
Иксельщики, хочу помочь нашим кредитчикам, создаю в икселе автоматизированную форму заявки на кредит, один момент остался, как задать условие, чтобы некоторые области при определенных значениях ключевых ячеек сворачивались или разворачивались?
не могу чет в ВБА прописать то, что вы написали((
#143
Отправлено 16.09.2011, 13:07:17
давайте по шагам, если ексель 2003 заходим в пункт меню Сервис - Макрос - Редактор Visual Basic далее нажмите Ctrl + R с лева появится панелька в этой панельки находим Вашу рабочую книгу что то типа VBA Project (Книга1.xla) далее в ней открываем вкладку Microsoft Excel Objects шелкаем на нужном листе, теперь в верху под панелью инструментов есть комбо бокс там стоит (general) заменяем general на worksheet ексель родит ненужный код, рядом с worksheet во втором комбо боксе появится SelectionChange заменяем его на Change и теперь в
День добрый, конкретнее опишите задачу .
Иксельщики, хочу помочь нашим кредитчикам, создаю в икселе автоматизированную форму заявки на кредит, один момент остался, как задать условие, чтобы некоторые области при определенных значениях ключевых ячеек сворачивались или разворачивались?
не могу чет в ВБА прописать то, что вы написали((
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
процедуре обработки событий встав те следующие
If Worksheets(1).Cells(1, 1) = "q" Then ' пишем условие
Worksheets(1).Cells(1, 2) = "2" ' Пишем что делать, в примере если на листе 1 в ячейки А1 поставить q ексель в ячейки В1 поставит 2 и скроет 3 строку
' так написал только для наглядности
ActiveSheet.Rows(3).Hidden = True ' Rows(х).Hidden = True скрыть строку х
End If
теперь перейдите в ексель и в ячейке А1 поставте q.
в 2007 и 2010 ескеле для перехода в редактор ВБА я сначала запускаю запись макроса потом останавливаю ее и нажимаю кнопку изменить ексель выкидывает в редактор ВБА. На интерфейсе Ribbon управление макросами ищите в вкладке Вид
#144
Отправлено 16.09.2011, 13:30:58
хороших книг много, в основном это книги иностранных авторов, зайдите в академкнигу и попробуйте посмотреть там, сейчас на столе лежит Excel 2003 и VBA авторы Пол Киммел, Джон Грин, Стивен Буллен, Роб Боуви, Роберт Розенберг, Браин Патерсо. Не плохая книга, постарайтесь найти свежие книги эта книга уже устарела и пользуйтесь интернетом в интернете всегда можно найти кучу полезностей . Ну а так попробуйте понять объектную модель Excel это достаточно важно если Вы будете писать серьезные приложения на ВБА, я дома гляну конкретнее по книжкам, была одна книжка сильно зацепила автор кстати Российский но в ней в основном идут рецепты тоесть примеры кода без объяснений, но примеры очень достойные.поделитесь тогда конкретным перечнем книг?
#145
Отправлено 16.09.2011, 14:03:55
хороших книг много, в основном это книги иностранных авторов, зайдите в академкнигу и попробуйте посмотреть там, сейчас на столе лежит Excel 2003 и VBA авторы Пол Киммел, Джон Грин, Стивен Буллен, Роб Боуви, Роберт Розенберг, Браин Патерсо. Не плохая книга, постарайтесь найти свежие книги эта книга уже устарела и пользуйтесь интернетом в интернете всегда можно найти кучу полезностей . Ну а так попробуйте понять объектную модель Excel это достаточно важно если Вы будете писать серьезные приложения на ВБА, я дома гляну конкретнее по книжкам, была одна книжка сильно зацепила автор кстати Российский но в ней в основном идут рецепты тоесть примеры кода
поделитесь тогда конкретным перечнем книг?
без объяснений, но примеры очень достойные.
почему многие работают до сих пор в 2003 екселе? 2007 и 2010 же намного удобнее. Даже например 65536 строк это же совсем мизер, у меня иногда и в миллион строк дело не обходится если надо например проанализировать данные за год. неужели всё дело в банальной стоимости лицензии
Сообщение отредактировал DeoN: 16.09.2011, 14:04:27
#146
Отправлено 16.09.2011, 14:38:23
Во-первых, у многих стоит нелицензионный софт . Во-вторых, многие все еще не скачали/ не нашли взломанный 2007/2010.
Ну и лень - "работает, пусть работает". И не всем нужно анализировать миллион строк. Кстати, на миллионе строк Excel конкретно затыкается, если там есть формулы.
Сообщение отредактировал Мэс: 16.09.2011, 14:38:42
#147
Отправлено 16.09.2011, 14:43:33
на столе книга лежит про 2003 Excel а пишу в Visual studio на C# да еще командный проект под TFS , мне эта книга нравится там очень толково описана объектная модель и ловушки для отладки косяков в макросах. Но прежде чем покупать ее пролистайте не ленитесь возможна она Вам не подойдет или скачайте в интернете безплатнопочему многие работают до сих пор в 2003 екселе? 2007 и 2010 же намного удобнее. Даже например 65536 строк это же совсем мизер, у меня иногда и в миллион строк дело не обходится если надо например проанализировать данные за год. неужели всё дело в банальной стоимости лицензии
. В 2003 уже не работают, а пол года переходили, так как бухгалтерия верещала что ниче не понимает в интерфейсе риббон и пришлось ставить чета вроде office old menu
#148
Отправлено 16.09.2011, 14:55:23
Да, все дело в банальной стоимости лицензии .
Во-первых, у многих стоит нелицензионный софт . Во-вторых, многие все еще не скачали/ не нашли взломанный 2007/2010.
Ну и лень - "работает, пусть работает". И не всем нужно анализировать миллион строк. Кстати, на миллионе строк Excel конкретно затыкается, если там есть формулы.
я обычно в миллиониках на отдельном листе создаю табличку для вывода статистика с общего массива, отключаю автообновление формул, прописываю всю таблицу формулами. нажимаю F9 и ухожу чай пить, минут на 5 зависает, мне уж и комп купили попроизводительнее)))
#150
Отправлено 22.09.2011, 10:53:32
Rows("1:1").SpecialCells(xlCellTypeConstants, 23).EntireColumn.Hidden = True
Columns("m:m").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = True
End Sub
Sub Show()
Rows("1:1").SpecialCells(xlCellTypeConstants, 23).EntireColumn.Hidden = False
Columns("m:m").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = False
End Sub
помогите, пожалуйста, прописал вот такие макросы и когда вставляю в столбец m значения он скрывает мне отмеченные строки, но когда вставляю формулу тудаже (=если(f27="отсутсвует";"х";"") ), то он мне выдает оишбку 400, как можно поменять макрос чтобы он по результату формулы скрывал и раскрывал области.
#151
Отправлено 22.09.2011, 11:01:22
Добрый день, DeoN в обед постараюсь глянуть на работе жуткий аврал, очень постараюсь сегодня отписаться, дико извиняюсь просто совсем нет времени .Sub Hide()
Rows("1:1").SpecialCells(xlCellTypeConstants, 23).EntireColumn.Hidden = True
Columns("m:m").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = True
End Sub
Sub Show()
Rows("1:1").SpecialCells(xlCellTypeConstants, 23).EntireColumn.Hidden = False
Columns("m:m").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = False
End Sub
помогите, пожалуйста, прописал вот такие макросы и когда вставляю в столбец m значения он скрывает мне отмеченные строки, но когда вставляю формулу тудаже (=если(f27="отсутсвует";"х";"") ), то он мне выдает оишбку 400, как можно поменять макрос чтобы он по результату формулы скрывал и раскрывал области.
#152
Отправлено 22.09.2011, 11:05:56
В 2007\2010 офисах надо включить в меню Риббон вкладку "Разработчик". Делается тут (у меня 2010, привожу пример для него):в 2007 и 2010 ескеле для перехода в редактор ВБА я сначала запускаю запись макроса потом останавливаю ее и нажимаю кнопку изменить ексель выкидывает в редактор ВБА. На интерфейсе Ribbon управление макросами ищите в вкладке Вид
- ФАЙЛ - ПАРАМЕТРЫ - НАСТРОЙКА ЛЕНТЫ
тут ставим галочку в настройках напротив "Разработчик". И у вас появится новая вкладка в Риббоне.
#155
Отправлено 22.09.2011, 12:49:05
Задача твоя - скрывать строки в зависимости от значения в ячейке: РЕЗЮМЕ!F27 ("Кредитная история"), которая зависит от другого листа?
В другом листе я добавил маленький макрос, вроде он решает твою задачу.
Код макроса на листе DATA.
Private Sub Worksheet_Change(ByVal Target As Range) CreditStory = Cells(21, 2).Value If (Target = Range("B21")) Then If (CreditStory = "Отсутствует") Then Worksheets("РЕЗЮМЕ").Rows("29:36").EntireRow.Hidden = True Else Worksheets("РЕЗЮМЕ").Rows("29:36").EntireRow.Hidden = False End If End If End Sub
Файл приложил.
Прикрепленные файлы
Сообщение отредактировал Мэс: 22.09.2011, 12:50:28
#157
Отправлено 22.09.2011, 13:53:19
#159
Отправлено 22.09.2011, 15:12:42
Код макроса на листе DATA.
Private Sub Worksheet_Change(ByVal Target As Range) CreditStory = Cells(21, 2).Value If (Target = Range("B21")) Then If (CreditStory = "Отсутствует") Then Worksheets("РЕЗЮМЕ").Rows("29:36").EntireRow.Hidden = True Else Worksheets("РЕЗЮМЕ").Rows("29:36").EntireRow.Hidden = False End If End If End Sub
Мэс а как твой макрос соединить с таким же еще, мне нужно несколько областей аналогичных скрывать по условию?
#160
Отправлено 22.09.2011, 15:38:47
Код макроса на листе DATA.
Private Sub Worksheet_Change(ByVal Target As Range) -- это предопределенная процедура, срабатывает при изменении содержимого листа. то есть при изменении данных в ячейке или диапазоне, при этом адрес ячейки попадает в переменную Terget CreditStory = Cells(21, 2).Value -- здесь я получил значение изменяемой ячейки If (Target = Range("B21")) Then -- так как нам не нужно, чтобы процедура отрабатывала ПРИ ЛЮБЫХ ИЗМЕНЕНИЯХ НА ЛИСТЕ, то я проверяю, что измененная ячейка является целевой, нужной мне If (CreditStory = "Отсутствует") Then -- думаю, понятно все Worksheets("РЕЗЮМЕ").Rows("29:36").EntireRow.Hidden = True -- то же думаю понятно Else Worksheets("РЕЗЮМЕ").Rows("29:36").EntireRow.Hidden = False End If End If End Sub
объяснения в коде
то есть добавите новые условия If (Target = .... и так далее
Количество пользователей, читающих эту тему: 0
пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0