Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Скрывать/отображать столбцы и ячейки по нескольким условиям (макрос+кнопка), Разработать макрос по условиям с запуском по кнопке.
 
В целом считаю свой вопрос закрытым. Благодарю всех сочувствующих и помогающих. До новых волнующих встреч!  8)  
Скрывать/отображать столбцы и ячейки по нескольким условиям (макрос+кнопка), Разработать макрос по условиям с запуском по кнопке.
 
Цитата
написал:
Дело было вечером, делать было нечего)
Большое спасибо за проделанную работу. Продолжил изучение, разобрал ваш код макроса, и на его основе доработал под свои нужды. Ибо я скидывал упрощённый вариант таблицы. У меня большие массивы данных должны рассчитываться и скопированный код не сработал сразу, начал разбирать на кусочки. Скидываю доработанный код с пояснялками:

Sub Hide_Show()    Dim ws As Worksheet
   Set ws = ThisWorkbook.Worksheets("Данные")
   
   ' Отключаем обновление экрана и автоматический перерасчет формул
   Application.ScreenUpdating = False
   Application.Calculation = xlCalculationManual
   
   With ws
       ' Показываем все скрытые строки и столбцы перед началом работы
       .Cells.EntireColumn.Hidden = False
       .Cells.EntireRow.Hidden = False
       
       ' Определяем рабочий диапазон (таблицу)
       Dim rng As Range
       Set rng = .Range("B39").CurrentRegion
   
       ' Получаем значение из ячеек, определяющих кол-во скрываемых строк и столбцов
       Dim hideColumns As Long, hideRows As Long, hideNecessary As String
       hideColumns = .Range("C2").Value + 3   ' Значение из ячейки C2 плюс смещение
       hideRows = .Range("C3").Value + 3     ' Значение из ячейки C3 плюс смещение
       hideNecessary = .Range("C5").Value    ' Дополнительное условие показа/скрытия
   End With
   
   ' Применяем новые правила скрытия
   With rng
       ' Проверяем, нужно ли скрыть лишние столбцы справа
       If hideColumns < .Columns.Count Then
           Range(.Cells(1, hideColumns), .Cells(1, .Columns.Count)).EntireColumn.Hidden = True
       End If
       
       ' Проверяем, нужно ли скрыть лишние строки снизу
       If hideRows < .Rows.Count Then
           Range(.Cells(hideRows + 1, 1), .Cells(.Rows.Count, 1)).EntireRow.Hidden = True
       End If
       
       ' Дополнительно управляем видимостью столбца АК в зависимости от текста в ячейке C5
       If hideNecessary = "Н/П" Then
           Columns("AK").Hidden = True
       ElseIf hideNecessary = "Ненужное" Then
           Columns("AK").Hidden = False
       End If
   End With
   
   ' Включаем обратно обновления экрана и возвращаемся к автоматическому расчету формул
   Application.ScreenUpdating = True
   Application.Calculation = xlCalculationAutomatic
End Sub
Изменено: Uncle_Cyrus - 11.11.2025 08:47:40
Скрывать/отображать столбцы и ячейки по нескольким условиям (макрос+кнопка), Разработать макрос по условиям с запуском по кнопке.
 
Здравствуйте, форумчане!
Позвольте подкинуть задачу для ума.

Есть таблица, в ячейках сверху есть условия:
1) Допустим, в "Кол-во столбцов" (C2) указано число 5. Нужно скрыть столбцы от 6 до 33 (I:AJ). Чтобы остались столбцы от A до H. И соответственно, если в C2 стоит 1, то должны скрыться столбцы E:AJ.
2) Далее, "Кол-во строк" = 1, то должны скрыться строки от 37 по 41. И соответственно, если C3=4, то скрываются строки 40:41.
3) Ещё, "Скрыть ненужное" (C4), если значение "пустое", то скрыть столбец AK, если значение установлено "Ненужное", то столбец АК не скрыт.

Строки или столбцы не удалять, скрывать/отображать по условиям выше.

После установки условий завязать запуск макроса на одну кнопку, допустим - "Расчёт". И при установке других значений, соответственно перерасчёт и открытие/скрытие столбцов и строк.

Помогите аутисту, пожалуйстааа.  :D  
Найти дату в тексте и вынести в ячейку., Найти дату в тексте ячейки и вынести дату в другую ячейку при помощи формулы.
 
БМВ, тоже хороший вариант формулы. Большое спасибо за участие.
Протестировал. Хорошо извлекает даты. Для меня уже не актуально, но другим поможет.
Найти дату в тексте и вынести в ячейку., Найти дату в тексте ячейки и вынести дату в другую ячейку при помощи формулы.
 
Цитата
написал:
Возможно понятнее стало бы если увидеть этот текст из которого извлекается неправильно дата.
Пример: "07.2030 (тепл.сезон)"

Поэкспериментировал по первой формуле, видимо эта формула округляет любые десятые года, будь то 2020, 2010, по неким причинам она обрезается до 07.20 или 07.202. Проверил, чтобы форматирование было разное или чтобы в этой ячейке были цифры, а не текст буквы "О". Чтобы запятые были или точки, итог тот же. Исправление формулы:
Цитата
написал:
Попробуйте в формуле заменить число 10 на 99.
тоже результатов не дал.

По второй формуле:
Цитата
написал:
Добавьте после даты запятую и всё отобразится без дополнительного текста.
Всё так, запятая спасает дело. Тот же пример с "07.2030 (тепл.сезон)", без запятой формула подхватывает лишнее, типа "07.2030 (теп"

Третья формула отрабатывает как надо, возвращает из года 2025 полную дату в формате 01.01.2025, то что мне нужно (так же подошло и для другого проекта). Но я так же применил эту формулу в данной задаче. Корректно отрабатывает, но даты с тире не подбирает, только первую дату, всё как Вы и сказали.

В целом, моя задача решена. Мелочи подправлю. Продолжу изучение и эксперименты. Большая благодарность gling, за уделённое время.  
Найти дату в тексте и вынести в ячейку., Найти дату в тексте ячейки и вынести дату в другую ячейку при помощи формулы.
 
Большое спасибо всех участников за участие в решении поставленной задачи.

gling, Ваш вариант подошёл мне больше. Использовал формулы, отлично работают. НО... есть небольшое "но":

Первая формула иногда округляет итоговый результат (Например, есть дата 07.2030, но итог 07.203).

Вторая формула иногда дописывает лишнее (Например, если только год "2025", а подхватывает ещё дополнительный текст после даты "2025 и текс").

Третья формула (из таблицы) не подхватывает диапазон, однако мне бы пригодилась эта формула в другом проекте. Можно оставить эту формулу с подхватыванием даты, но чтобы из простого года (2025) так же делалась полная (01.01.2025)?

Так или иначе, gling, Ваш вариант решает мою задачу на 90 %, что более чем приемлемо.
Найти дату в тексте и вынести в ячейку., Найти дату в тексте ячейки и вынести дату в другую ячейку при помощи формулы.
 
Ладно, переформулирую и дополню. С макросами никогда не работал, да. Еще и компьютер рабочий на работе, где программисты пристрелят, если что-то поверх устанавливать буду. Точнее система не даст. Типа того... Извините за мои установленные рамки. Иначе никак.
Найти дату в тексте и вынести в ячейку., Найти дату в тексте ячейки и вынести дату в другую ячейку при помощи формулы.
 
День бодрый, форумчане!
Периодически изобретаю таблицы для работы и возникла такая загогулина...
Мне нужна дата из текста в ячейке. Эта дата может стоять, как в начале, середине, так и в конце предложения. И так же может быть разных форматов "ДД.ММ.ГГГГ" или "ММ.ГГГГ" или просто "ГГГГ", кое-где даже через тире пишут, типа 2010-2011, но тире-момент можно не учитывать, пока...
Важно сделать это при помощи формул, макросы не умею...
Заранее благодарю.

Пример прилагаю ˅˅˅
Изменено: Uncle_Cyrus - 24.10.2025 14:22:04 (Забыл добавить таблицу с примером.)
Страницы: 1
Наверх