Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Автор Тема: VBA, скрытие строк на основании данных  (Прочитано 1151 раз)

0 Пользователей и 1 Гость просматривают эту тему.

next_q_for_you

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3

Товарищи, добрый день!
Очень нужна ваша помощь в следующем:
Есть макрос, да, криво сделан.
Суть его должна заключаться в том, чтобы на основании выбора значения (Да/Нет) в ячейке I39, I40 и I41, скрывались строки  58-66, 67-76, 77-80.
Поскольку VBA совсем не знаю, то думал что можно будет сделать линк на значения в колонке G - ячейки G39, G40 и G41 и на основании формулы если(I40="Да";1;0), но при наличии формулы в колонке G макрос не работает.
Помогите пожалуйста макрос переобуть на текстовое значение Да/Нет в ячейках I39,40,41.
Сам макрос:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$39" Then
    Rows("58:66").EntireRow.Hidden = [g39] = 0
    Rows(57 - ([g39] = 0) * 9).EntireRow.Hidden = ([g39] = 0)
End If
If Target.Address = "$G$40" Then
    Rows("67:76").EntireRow.Hidden = [g40] = 0
    Rows(66 - ([g40] = 0) * 10).EntireRow.Hidden = ([g40] = 0)
End If
If Target.Address = "$G$41" Then
    Rows("77:80").EntireRow.Hidden = [g41] = 0
    Rows(76 - ([g41] = 0) * 4).EntireRow.Hidden = ([g41] = 0)
End If
End Sub

Прилагаю файл. Надеюсь на вашу помощь.
« Последнее редактирование: 21.10.2021, 14:08:58 от Serge 007 »
Записан

Serge 007

  • Администратор
  • Ветеран
  • *****
  • Уважение: +341/-0
  • Оффлайн Оффлайн
  • Сообщений: 3 038
    • Мир Excel

Здравствуйте

...макрос переобуть на текстовое значение Да/Нет в ячейках I39...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("i39") = "Да" Then Rows("58:66").EntireRow.Hidden = True
End Sub
Записан
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Яндекс-деньги: 41001419691823 | WMR:126292472390

next_q_for_you

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3

Сергей, добрый день.
При выборе ответа Да/Нет (не принципиально), строки скрываются. Но при смене выбора с "нет" на "да", строки не появляются обратно.
Я скорее всего не до конца сформулировал просьбу. Извиняюсь.
« Последнее редактирование: 21.10.2021, 15:19:29 от Serge 007 »
Записан

Serge 007

  • Администратор
  • Ветеран
  • *****
  • Уважение: +341/-0
  • Оффлайн Оффлайн
  • Сообщений: 3 038
    • Мир Excel

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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("i39") = "Да" Then Rows("58:66").EntireRow.Hidden = True
    If Range("i39") = "Нет" Then Rows("58:66").EntireRow.Hidden = False
End Sub
или так (для любых не "Да"):Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("i39") = "Да" Then Rows("58:66").EntireRow.Hidden = True Else Rows("58:66").EntireRow.Hidden = False
End Sub
Записан
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Яндекс-деньги: 41001419691823 | WMR:126292472390

next_q_for_you

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3

Спасибо!
« Последнее редактирование: 21.10.2021, 15:18:55 от Serge 007 »
Записан
 



Темы без ответов

27.05.2022 14:38 конструкция из Shape 68
09.08.2019 14:09 Макрос для заполнения таблиц через форму 5032
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 4443
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 6005
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 3143
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 4939
15.03.2017 15:45 автозамена картинок PowerPoint 3862
11.03.2017 13:43 Изменить нумерацию страниц 3789
07.02.2017 18:43 Блокировка ячеек по наступлению даты 2902
28.08.2016 19:29 Одинаковые заголовки после обновления оглавления 3408





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.104 секунд. Запросов: 101.