Перейти к содержимому

Фотография

Excelпомощь, консультации...


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 914

#141
Алдар Хосе

Алдар Хосе
  • В доску свой
  • 3 029 сообщений
поделитесь тогда конкретным перечнем книг?
  • 0

#142
DeoN

DeoN
  • Частый гость
  • 77 сообщений


Иксельщики, хочу помочь нашим кредитчикам, создаю в икселе автоматизированную форму заявки на кредит, один момент остался, как задать условие, чтобы некоторые области при определенных значениях ключевых ячеек сворачивались или разворачивались?

День добрый, конкретнее опишите задачу :).


не могу чет в ВБА прописать то, что вы написали((
  • 0

#143
Dmitriy_N

Dmitriy_N
  • Гость
  • 49 сообщений



Иксельщики, хочу помочь нашим кредитчикам, создаю в икселе автоматизированную форму заявки на кредит, один момент остался, как задать условие, чтобы некоторые области при определенных значениях ключевых ячеек сворачивались или разворачивались?

День добрый, конкретнее опишите задачу :).


не могу чет в ВБА прописать то, что вы написали((

давайте по шагам, если ексель 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 управление макросами ищите в вкладке Вид
  • 0

#144
Dmitriy_N

Dmitriy_N
  • Гость
  • 49 сообщений

поделитесь тогда конкретным перечнем книг?

хороших книг много, в основном это книги иностранных авторов, зайдите в академкнигу и попробуйте посмотреть там, сейчас на столе лежит Excel 2003 и VBA авторы Пол Киммел, Джон Грин, Стивен Буллен, Роб Боуви, Роберт Розенберг, Браин Патерсо. Не плохая книга, постарайтесь найти свежие книги эта книга уже устарела и пользуйтесь интернетом в интернете всегда можно найти кучу полезностей :). Ну а так попробуйте понять объектную модель Excel это достаточно важно если Вы будете писать серьезные приложения на ВБА, я дома гляну конкретнее по книжкам, была одна книжка сильно зацепила автор кстати Российский но в ней в основном идут рецепты тоесть примеры кода без объяснений, но примеры очень достойные.
  • 0

#145
DeoN

DeoN
  • Частый гость
  • 77 сообщений


поделитесь тогда конкретным перечнем книг?

хороших книг много, в основном это книги иностранных авторов, зайдите в академкнигу и попробуйте посмотреть там, сейчас на столе лежит Excel 2003 и VBA авторы Пол Киммел, Джон Грин, Стивен Буллен, Роб Боуви, Роберт Розенберг, Браин Патерсо. Не плохая книга, постарайтесь найти свежие книги эта книга уже устарела и пользуйтесь интернетом в интернете всегда можно найти кучу полезностей :). Ну а так попробуйте понять объектную модель Excel это достаточно важно если Вы будете писать серьезные приложения на ВБА, я дома гляну конкретнее по книжкам, была одна книжка сильно зацепила автор кстати Российский но в ней в основном идут рецепты тоесть примеры кода
без объяснений, но примеры очень достойные.


почему многие работают до сих пор в 2003 екселе? 2007 и 2010 же намного удобнее. Даже например 65536 строк это же совсем мизер, у меня иногда и в миллион строк дело не обходится если надо например проанализировать данные за год. неужели всё дело в банальной стоимости лицензии

Сообщение отредактировал DeoN: 16.09.2011, 14:04:27

  • 0

#146
Мэс

Мэс
  • В доску свой
  • 4 926 сообщений
Да, все дело в банальной стоимости лицензии :-) :-).
Во-первых, у многих стоит нелицензионный софт :-). Во-вторых, многие все еще не скачали/ не нашли взломанный 2007/2010.
Ну и лень - "работает, пусть работает". И не всем нужно анализировать миллион строк. Кстати, на миллионе строк Excel конкретно затыкается, если там есть формулы.

Сообщение отредактировал Мэс: 16.09.2011, 14:38:42

  • 0

#147
Dmitriy_N

Dmitriy_N
  • Гость
  • 49 сообщений

почему многие работают до сих пор в 2003 екселе? 2007 и 2010 же намного удобнее. Даже например 65536 строк это же совсем мизер, у меня иногда и в миллион строк дело не обходится если надо например проанализировать данные за год. неужели всё дело в банальной стоимости лицензии

на столе книга лежит про 2003 Excel а пишу в Visual studio на C# да еще командный проект под TFS :), мне эта книга нравится там очень толково описана объектная модель и ловушки для отладки косяков в макросах. Но прежде чем покупать ее пролистайте не ленитесь возможна она Вам не подойдет или скачайте в интернете безплатно
. В 2003 уже не работают, а пол года переходили, так как бухгалтерия верещала что ниче не понимает в интерфейсе риббон :) и пришлось ставить чета вроде office old menu
  • 0

#148
DeoN

DeoN
  • Частый гость
  • 77 сообщений

Да, все дело в банальной стоимости лицензии :-) :-).
Во-первых, у многих стоит нелицензионный софт :-). Во-вторых, многие все еще не скачали/ не нашли взломанный 2007/2010.
Ну и лень - "работает, пусть работает". И не всем нужно анализировать миллион строк. Кстати, на миллионе строк Excel конкретно затыкается, если там есть формулы.


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

#149
DeoN

DeoN
  • Частый гость
  • 77 сообщений

. В 2003 уже не работают, а пол года переходили, так как бухгалтерия верещала что ниче не понимает в интерфейсе риббон :) и пришлось ставить чета вроде office old menu


гыыы, а у нас бухгалтера до сих пор на калькуляторах считают)))
  • 0

#150
DeoN

DeoN
  • Частый гость
  • 77 сообщений
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, как можно поменять макрос чтобы он по результату формулы скрывал и раскрывал области.
  • 0

#151
Dmitriy_N

Dmitriy_N
  • Гость
  • 49 сообщений

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, как можно поменять макрос чтобы он по результату формулы скрывал и раскрывал области.

Добрый день, DeoN в обед постараюсь глянуть на работе жуткий аврал, очень постараюсь сегодня отписаться, дико извиняюсь просто совсем нет времени :).
  • 0

#152
Мэс

Мэс
  • В доску свой
  • 4 926 сообщений

в 2007 и 2010 ескеле для перехода в редактор ВБА я сначала запускаю запись макроса потом останавливаю ее и нажимаю кнопку изменить ексель выкидывает в редактор ВБА. На интерфейсе Ribbon управление макросами ищите в вкладке Вид

В 2007\2010 офисах надо включить в меню Риббон вкладку "Разработчик". Делается тут (у меня 2010, привожу пример для него):
- ФАЙЛ - ПАРАМЕТРЫ - НАСТРОЙКА ЛЕНТЫ
тут ставим галочку в настройках напротив "Разработчик". И у вас появится новая вкладка в Риббоне.
  • 0

#153
Мэс

Мэс
  • В доску свой
  • 4 926 сообщений
Deon - вышли весь макрос полностью, весь код.
У меня время есть :-)
  • 0

#154
DeoN

DeoN
  • Частый гость
  • 77 сообщений

Deon - вышли весь макрос полностью, весь код.
У меня время есть


заранее спасибо))

ключевая ячейка отмечена красным ,если там стоит знначение "отсутсвует" строки выделенные серым должны скрываться.

Прикрепленные файлы


  • 0

#155
Мэс

Мэс
  • В доску свой
  • 4 926 сообщений
Так посмотрел, не очень понял, что ты хотел сделать со своим кодом.
Задача твоя - скрывать строки в зависимости от значения в ячейке: РЕЗЮМЕ!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

  • 0

#156
DeoN

DeoN
  • Частый гость
  • 77 сообщений

Так посмотрел, не очень понял, что ты хотел сделать со своим кодом.


спасибо огромное, работает.
  • 0

#157
Dmitriy_N

Dmitriy_N
  • Гость
  • 49 сообщений
DeoN не буду зря писать, но если интересно ошибка в строке Columns("m:m").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = True, вба не может найти строку какую нужно скрыть/отобразить 0 строку скрыть нельзя. для прикола можно поставить в столбец м в любую строку циферку 2 и макрос заработает, просто в данном случае идет попытка скрытия 0 строки.
  • 0

#158
Dmitriy_N

Dmitriy_N
  • Гость
  • 49 сообщений
Мэс огромное спасибо за подсказку как можно включить меню разработчика в екселе 2007-2010. Честно не знал :).
  • 0

#159
DeoN

DeoN
  • Частый гость
  • 77 сообщений

Код макроса на листе 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


Мэс а как твой макрос соединить с таким же еще, мне нужно несколько областей аналогичных скрывать по условию?
  • 0

#160
Мэс

Мэс
  • В доску свой
  • 4 926 сообщений

Код макроса на листе 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, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.