Прошу помочь с макросом VBA... Имеется книга Excel, в которой 7 листов, у последнего имя "MacrosTurningOn".
Задача: 1. При закрытии книги, макрос должен СКРЫВАТЬ (как можно лучше прятать) все листы, кроме последнего - "MacrosTurningOn". А лист "MacrosTurningOn", наоборот, раскрывать. нарыл в гугле код... Но он требует доработки в части раскрытия листа "MacrosTurningOn"...
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim wsheet As Worksheet
For Each wsheet In ActiveWorkbook.Sheets
If wsheet.Name <> "MacrosTurningOn" Then wsheet.Visible = xlVeryHidden
Next
Application.ScreenUpdating = True
End Sub
2. При открытии книги, пользователь видит, соответственно только 1 лист - "MacrosTurningOn", на котором должна быть кнопка, например, "Готов к работе с книгой". 2.1. При нажатии на эту кнопку происходит следующее: 2.1.1. Раскрываются все скрытые листы (№№ 1-6) 2.1.2. Скрывается 7-ой лист "MacrosTurningOn".
При этом у меня в этой же книге имеется макрос, защищающий листы паролем:
Код
Private Sub Workbook_Open()
Const MyPassword = "***********"
With Sheets(1)
.Unprotect Password:=MyPassword
.EnableOutlining = True
.Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFiltering:=True, UserInterfaceOnly:=True
End With
With Sheets(3)
.Unprotect Password:=MyPassword
.EnableOutlining = True
.Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFiltering:=True, UserInterfaceOnly:=True
End With
With Sheets(4)
.Unprotect Password:=MyPassword
.EnableOutlining = True
.Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFiltering:=True, UserInterfaceOnly:=True
End With
With Sheets(5)
.Unprotect Password:=MyPassword
.EnableOutlining = True
.Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFiltering:=True, UserInterfaceOnly:=True
End With
With Sheets(6)
.Unprotect Password:=MyPassword
.EnableOutlining = True
.Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFiltering:=True, UserInterfaceOnly:=True
End With
End Sub
Соответственно, нужно сделать: а) макрос на раскрытие листа "MacrosTurningOn" и скрытие других листов при закрытии книги; б) макрос на кнопку с вышеописанными функциями (пункт 2.1.)
Прошу помочь с написанием макроса, который бы работал следующим образом:
0. На листе создается кнопка "Группировка", которая активирует макрос, при нажатии на нее; кнопка "Сгруппировать", которая группирует все существующие связи; "Разгруппировать", которая разгруппирует их, соответственно.
При нажатии на кнопку "Группировка", происходят следующие процессы: 1. Сбрасываются (удаляются) все действующие группировки на листе; 2. Определяется диапазон работы макроса - со строки № 6 листа (включительно), до строки, в столбце В которой значение "Общий итог" (номер строки не определен!!); 3. Группируются строки, в столбце А которых стоит значение "-", разумеется каждый набор последовательно идущих строк, удовлетворяющих условие, группируется отдельно, "не задевая" те строки, которые условие не удовлетворяют.
ПС. Если есть вариант решения задачи не макросом, а иным способом - то будет вообще супер!
Имеется таблица с данными (пример прилагаю), второй столбец которой включает в себя информацию о клиентах и номерах их договоров. Первый столбец представляет собой нумерацию исключительно клиентов (напротив номеров договоров всегда и обязательно стоит "-").
Прошу Вас оказать помощь в следующем: 1. Необходимо выделять курсивом целиком строки с номерами договоров. При этом, номера договоров могут начинаться на "1","2","3","4","5","6","7","8","9","0","Овер", а в столбце нумерации возле них всегда стоит "-". 2. Необходимо определить границы таблицы и нарисовать сетку. При этом известно, что верхняя левая крайняя ячейка таблицы - A3, а верхняя правая - D3. Нижние крайние ячейки таблицы неизвестны, но принято считать, что таблица не может быть длиннее строки 300. Однако сетку надо рисовать не до трехсотой строки, а до первой пустой. Также известно, что пустот "внутри" таблицы быть не может. Первая пустота в столбце В означает конец таблицы (именно столбце В, а ни в коем случае не А - см. пример).
Желательно решить задачу, не прибегая к VBA (там я совсем ноль и не смогу в будущем что-нибудь подправить...).
Добрый день, друзья! Снова потребовалась Ваша помощь. Задача не сложная, но мне не хватает знаний для ее решения. Итак, к делу... Имеется таблица с перечнем Клиентов и Номеров договоров, указанными в одном столбце. При этом, "номера договоров" могут иметь следующий вид: "1"&"*";"2"&"*";"3"&"*";"4"&"*";"5"&"*";"6"&"*";"7"&"*";"8"&"*";"9"&"*";"0"&"*";"Овер"&"*". Остальные столбцы для целей нашей задачи не важны, будем считать, что в них "прочая информация".
Необходимо провести нумерацию строк таким образом, чтобы считались только Наименования клиентов. При этом напротив номеров договоров должно вместо номер строки стоять "-", а в пустых строках не должно быть ничего.
Пример прилагаю. У меня хватило мозгов вот на такую формулу:
Доброго дня, уважаемые форумчане! Пишу Вам с просьбой о помощи. Пытаюсь второй день автоматизировать достаточно большой отчет, и застрял в самом конце... Мне необходимо сделать суммирование суммы в случае, когда совпадает наименование клиента или номер договора, а также товар относится к категории "отличный" или "хороший". Пример таблиц сделал и выкладываю...
Идеально было бы написать формулу, которая бы не требовала создания вспомогательных столбцов. Изменять вид таблицы тоже не очень бы хотелось, так как отчет большой, и для целей реализации автоматизации более ранних его стадий приходилось делать многое - большие формулы, сводная таблица и прочее. Последний этап (т.е. сейчас) - это копия сводной таблицы на отдельный лист в виде обычной таблицы и добавление дополнительного столбца.