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

Страницы: 1
Построение диаграммы Ганта, Через гистограммы условного форматирования
 
Перепробовав все варианты по моему мнению с использованием условного форматирования, приходится признать что в Excel 2016 данную задачу не реализовать таким способом. Прикладываю способ на котором я решил остановиться.
Построение диаграммы Ганта, Через гистограммы условного форматирования
 
Доброго дня!
Прошу дать совет и сторону в которую думать.
Есть идея сделать автоматическую форму построения диаграммы Ганта от введенных дат, с использованием гистограмм условного форматирования.

Что имеем:
Определенную форму с разбивкой по месяцам (каждый столбец отдельный месяц).
Формулу определяющую от даты начала/окончания столбец который будет заполнен.

Сложность возникает в следующем: если "мероприятие" выполняется 3 месяца и начинается с 15 числа, то отрисовка гистограммы начинается с левой стороны ячейки до середины, остальные два месяца заполняются корректно. В "изменения правила форматирования", в настройке "Направление столбца" есть параметр от контекста, но у меня не получилось найти информацию как влиять на этот контекст. Для того, что бы прорисовывать сейчас адекватно, необходимо вручную проставлять "справа-налево" в ячейках начала.

Вопрос в том, как сделать автоматически? (В идеале без использования макросов).

Пример прикладываю.

P.s. №1
С альтернативными вариантами построения которые описаны в приёмах ("Проектная диаграмма Ганта с помощью условного форматирования", "Диаграмма Ганта в Power Query", "Проектная диаграмма Ганта (Gantt Chart) в Excel 2007/2010" и т.д.) ознакомился и готов их использовать, но очень интересно реализовать эту задачу именно через гистограммы условного форматирования. Если это невозможно, буду признателен за объяснение почему.

P.s. №2
В формуле есть допущения (30 дней в месяце), но полная точность там не нужна.
Защита выполнения макроса от пользователей, VBA
 
Цитата
написал:
Соелать окно PP невидимым на время выполнения макрос
Подскажите пожалуйста, каким образом это реализовать?
Защита выполнения макроса от пользователей, VBA
 
Добрый день!

Собрал корявый макрос (как умею), который с задачей справляется - "формирует" презентацию из данных с листа (файл пример).
Но после создания файла Power Point, пользователи зачем-то используют колесико и макрос прерывается с ошибкой (скриншот).
Отключение обновления экрана не помогает, таймаут тоже. Как можно защитить? Отключить колесо или есть ещё варианты?


P.s. Код корявый, зато почти свой.
Группировка строк по условию. Выполнение цикла до конца документа
 
БМВ, Спасибо за советы, приму на вооружение.  
Группировка строк по условию. Выполнение цикла до конца документа
 
Андрей_26, Спасибо!
Группировка строк по условию. Выполнение цикла до конца документа
 
Доброго времени суток.
Написал макрос для группировки строк по условию: отсутствия цвета(от условного форматирования).
Код
Sub Sort()
' Сочетание клавиш: Ctrl+M(ь)

Application.ScreenUpdating = False
Dim a, b As Variant
b = 1

    Do Until IsEmpty(Cells(b, 1))
    a = Cells(b, 1).DisplayFormat.Interior.Color
    If a = "16777215" Then
    Rows(b).Select
    Selection.Rows.Group
    b = b + 1
    Else
    b = b + 1
    End If
    Loop
    
Cells(1, 1).Select
ActiveSheet.Outline.ShowLevels RowLevels:=1
Application.ScreenUpdating = True
End Sub
Но столкнулся с проблемой: столбцы в документе могут идти друг под другом(см. файл пример) и соответственно, макрос прерывается при пустой строке.
Кол-во строк между столбцами(выделено желтым) могут быть разными.

Пробывал добавить:
Код
Selection.End(xlDown).Select
И повторить цикл, однако не работает.

Есть ли какой-либо путь, без перебора всего рабочего листа?
Буду благодарен за любые советы и рекомендации.  
VBA. Не работает внешний цикл в вложенном цикле
 
Цитата
БМВ написал: А вот это надj записывать так
Спасибо, учту на будущие!

Цитата
БМВ написал: но еще лучше просто так
Тогда если переместят файл, путь надо будет переписывать заново. Но запомню, пригодится.

Евгений Смирнов, Да, всё работает! А не могли в ЛС в двух словах объяснить что было не так? Спасибо!
VBA. Не работает внешний цикл в вложенном цикле
 
Евгений Смирнов, в таком случае он после выполнения первого цикла в Папке 1, переходит в Папку 2.
Т.е. Он берёт первый файл в первой папке, второй файл в второй папке и т.д.
Код
Sub OpenSpis2()
Application.ScreenUpdating = False
Dim s, r, v, a, q As Variant
r = 3
Do While Not IsEmpty(Cells(r, 1))
a = Cells(r, 1)
v = Cells(r, 1).Value
Cells(3, 3).Value = v
    q = Cells(r, 2)
    s = Evaluate("=CONCATENATE(MID(CELL(""имяфайла""),1,-2+FIND(""["",CELL(""имяфайла""))),""\"")")
    pt = s & a & "\" & q & ".xlsx"
    MsgBox a
      
Application.Workbooks.Open pt
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges:=False
r = r + 1
Loop
Application.ScreenUpdating = True
End Sub

Изменено: Dez089 - 27.04.2021 07:30:18
VBA. Не работает внешний цикл в вложенном цикле
 
Доброго времени суток!
Написал макрос для открытия файла в папке, удаления формул и сохранения файла.
Но не получается сделать чтоб он открывал другие папки кроме первой.
Код
Sub OpenSpis2()
Application.ScreenUpdating = False
Dim b, s, r, v, z, a, q As Variant

z = 3
r = 3
b = 3
Do While Not IsEmpty(Cells(z, 1))
a = Cells(z, 1)
Do While Not IsEmpty(Cells(r, 1))
v = Cells(r, 1).Value
Cells(3, 3).Value = v
    q = Cells(b, 2)
    s = Evaluate("=CONCATENATE(MID(CELL(""имяфайла""),1,-2+FIND(""["",CELL(""имяфайла""))),""\"")")
    pt = s & a & "\" & q & ".xlsx"
    MsgBox a
    
Application.Workbooks.Open pt
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges:=False
r = r + 1
b = b + 1
Loop
z = z + 1
Loop


Application.ScreenUpdating = True
End Sub

Файл пример прилагаю.
VBA только учусь, буду благодарен любым советам с объяснениями.

P.s. MsgBox для демонстрации папки(забыл удалить).
Изменено: Dez089 - 27.04.2021 06:48:35
VBA. Замена формул на значения при использование умных таблиц.
 
Kuzmich, потрясающие. Низкий поклон и море благодарности!
VBA. Замена формул на значения при использование умных таблиц.
 
Kuzmich,
Код
If ws.Name <> "Лист1" And ws.Name <> "Лист2" Then
Таким образом всё равно необходимо преобразовать таблицу на листе 3 в умную.

В книге множество листов разных форм и нет возможности отредактировать каждый файл под умную таблицу.

Отредактировал пример(см. Лист 3).
VBA. Замена формул на значения при использование умных таблиц.
 
Kuzmich,
Да, Ваш макрос работает при условии, что на 3 листе умная таблица.
Однако, я видимо неправильно сформировал ситуацию.

Умная таблица в книге одна и довольно большая, с неё тянуться данные в другие листы. В не табличные формы, в которых происходят различные вычисления.
Вот результаты этих вычислений после выполнения макроса(который в шапке) получаются некорректные(как в файле примере).

К сожалению нет возможности преобразовать каждый не табличный лист в умную таблицу для выполнения Вашего макроса.  
VBA. Замена формул на значения при использование умных таблиц.
 

Доброго времени суток.
Столкнулся с такой проблемой, при использования макроса:
https://www.planetaexcel.ru/techniques/11/215/
Код
Sub Formulas_To_Values_Book()
'преобразование формул в значения во всей книге
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Value = ws.UsedRange.Value
    Next ws
End Sub

Некорректно отображаются результаты вычислений с умной таблицы.

Так же попробовал прописать каждый лист в ручную:

Код
Sheets("Лист1").UsedRange.Value = ActiveSheet.UsedRange.Value
Sheets("Лист3").UsedRange.Value = ActiveSheet.UsedRange.Value

Но при таком раскладе вообще получается не пойми что(значения формул выводит туда, где их даже нет)

Кто-нибудь сталкивался с подобным? Есть ли возможность добавить лист с умной таблицей в "исключения"?

Пример прикрепил.

P.s. Excel 2019 Pro, лицензия.

Автоматическое добавление строк с копированием данных и группировкой
 
Sanja, великолепно, то что надо! Спасибо за знания и потраченное время.
Автоматическое добавление строк с копированием данных и группировкой
 
Sanja, огромное Вам спасибо, в примере работает как надо, однако при экспортировании в полноценную таблицу происходит следующее:
Строки добавляются, группировка происходит(с добавлением первой строки), но не происходит копирование данных. В макросе, после отключения монитора, указал значение I = 12(для начала с 12 строки) и кажется сделал это зря. Подскажите в какую сторону смотреть. Важно ли кол-во столбцов и строк для кода? Пример прикладываю.  
Изменено: Dez089 - 11.07.2019 12:25:51
Автоматическое добавление строк с копированием данных и группировкой
 
Sanja, Хм..  Как вариант: последний символ должен быть цифрой. Подойдёт?  
Автоматическое добавление строк с копированием данных и группировкой
 
Цитата
Sanja написал:
Возможно Вам помогут на форуме по фотошоп
Справедливо, прикладываю пример.
Автоматическое добавление строк с копированием данных и группировкой
 
Доброго времени суток. Помогите разобраться:
Имеем таблицу на 2500+ строк, после определенных наименований требуется добавить снизу по 10 строк после каждой ячейки без цвета, с копированием данных из строки которая выше и их последующей группировкой.
Или другими словами: автоматически добавить строки, заполнить их информацией которая выше добавленных и сгруппировать это всё.
Побывал огромное кол-во различных макрасов по добавлению строк, но все либо добавляют подряд, либо работают ,без копирования данных и группировки.
Как эти три условия собрать вместе, ума не приложу.
Заранее спасибо за советы!

P.S. Таблица весит слишком много, добавить не могу(
Страницы: 1
Наверх