Добрый день многоуважаемые форумчане!!! не могли бы помочь с решением: Задача состояла вскрытии ряда определенных строк по условию - по сути само решение я нашел в данной теме My WebPage
[vba]
Код
Application.EnableEvents = 0 'Отключаем обновление экрана во время выполнения макроса Dim i& 'Объявляем переменную
For i = 32 To 41 'Указываем диапазон цикла, в данном случае по номерам строк If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые Call Макрос1 Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены End If 'Закрываем конструкцию проверки указанных условий Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
For i = 59 To 65 'Указываем диапазон цикла, в данном случае по номерам строк If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые Call Макрос2 Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены End If 'Закрываем конструкцию проверки указанных условий Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
For i = 71 To 74 'Указываем диапазон цикла, в данном случае по номерам строк If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые Call Макрос2 Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены End If 'Закрываем конструкцию проверки указанных условий Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
'For i = 83 To 87 'Указываем диапазон цикла, в данном случае по номерам строк 'If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") 'Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые 'Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены 'End If 'Закрываем конструкцию проверки указанных условий 'Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
Application.EnableEvents = 1
[/vba]
По сути все отлично работает (пришлось формулой в столбце "А" указанных диапазонов (определенных) задать параметр выполнения данного макроса)
1. проблема - это небольшое зависание каждый раз при изменениях значений в любой ячейке (ну это и понятно Private Sub Worksheet_Change(ByVal Target As Range) 'любые изменения на листе 2. Также при скрывании строки - та информация которая должна быть на втором листе при распечатывании залазивает на первый лист. Пришлось заранее на две строчки информацию на втором листе опустить ниже ((((( - - можно было бы как то исправить 2. Долго не мог дополнить в код удаление значений в определенных ячейках которые будут скрываться (но вроде как справился) - приметивненько но как смог
Помогите решить подобную же задачу но для диапазона А83:А89 - но тут задача завязать ее с выпадающем списком в ячейке L5 - если НЕ указан "ГОСТ 26633" то соответственно данный диапазон скрывается - если же указан "ГОСТ 26633" то (также разом еще одна задача - в столбце D86:D89 если не указан параметр от до - данные строки должны скрываться)!!! My WebPage
Добрый день многоуважаемые форумчане!!! не могли бы помочь с решением: Задача состояла вскрытии ряда определенных строк по условию - по сути само решение я нашел в данной теме My WebPage
[vba]
Код
Application.EnableEvents = 0 'Отключаем обновление экрана во время выполнения макроса Dim i& 'Объявляем переменную
For i = 32 To 41 'Указываем диапазон цикла, в данном случае по номерам строк If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые Call Макрос1 Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены End If 'Закрываем конструкцию проверки указанных условий Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
For i = 59 To 65 'Указываем диапазон цикла, в данном случае по номерам строк If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые Call Макрос2 Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены End If 'Закрываем конструкцию проверки указанных условий Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
For i = 71 To 74 'Указываем диапазон цикла, в данном случае по номерам строк If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые Call Макрос2 Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены End If 'Закрываем конструкцию проверки указанных условий Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
'For i = 83 To 87 'Указываем диапазон цикла, в данном случае по номерам строк 'If Range("A" & i).Value = "" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("A") 'Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые 'Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены 'End If 'Закрываем конструкцию проверки указанных условий 'Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
Application.EnableEvents = 1
[/vba]
По сути все отлично работает (пришлось формулой в столбце "А" указанных диапазонов (определенных) задать параметр выполнения данного макроса)
1. проблема - это небольшое зависание каждый раз при изменениях значений в любой ячейке (ну это и понятно Private Sub Worksheet_Change(ByVal Target As Range) 'любые изменения на листе 2. Также при скрывании строки - та информация которая должна быть на втором листе при распечатывании залазивает на первый лист. Пришлось заранее на две строчки информацию на втором листе опустить ниже ((((( - - можно было бы как то исправить 2. Долго не мог дополнить в код удаление значений в определенных ячейках которые будут скрываться (но вроде как справился) - приметивненько но как смог
Помогите решить подобную же задачу но для диапазона А83:А89 - но тут задача завязать ее с выпадающем списком в ячейке L5 - если НЕ указан "ГОСТ 26633" то соответственно данный диапазон скрывается - если же указан "ГОСТ 26633" то (также разом еще одна задача - в столбце D86:D89 если не указан параметр от до - данные строки должны скрываться)!!! My WebPageanisimovaleksandr32
Сообщение отредактировал Serge_007 - Среда, 04.10.2023, 13:45
видать задача реализуемая но цена не приемлема!? Народ хоть бы озвучили свое - я могу но ценз такой! Просмотры есть - ответов нет ((((((
видать задача реализуемая но цена не приемлема!? Народ хоть бы озвучили свое - я могу но ценз такой! Просмотры есть - ответов нет ((((((anisimovaleksandr32