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

Страницы: 1
работа макроса при выделенных листах
 
Господа, подсобите, пожалуйста!

Можно ли поправить макрос так, чтобы он срабатывал при выделенных листах книги?
Речь о макросах, навешенных на ячейку A12 первого листа [НП] и A22 второго.
Если листы не выделены, макросы работают. Если выделяешь листы, то не работают...
Заранее спасибо!
замена в нескольких местах одновременно
 
Подскажите, возможно есть решение?..
Нужно поменять большое количество формул в книге.
Стандартное средство "Найти и заменить" прекрасно, но работает только по одной условной "строчке": что находим и на что меняем.
В случае необходимости изменения в формулах Excel ругается на некорректную формулу, и ничего дальше не получается...

Вот пример – в рамках большой количества формул в книге надо поменять:
1. ЕСЛИ(ИЛИ(Сводная!$Q$6="Приложение";Сводная!$Q$6="З/п рабочих"); на ничего (пусто)
2. и в хвосте формулы ;"");"") на ;"")

Как быть?..
VBA - cкрытие строк в нескольких листах по условию
 
Товарищи, поправьте, пожалуйста, код.

В коде листа [Сводная] не срабатывает этот блок:
Код
If [G2] = "" Then
Worksheets(shnm).Unprotect Password:="0858"
Worksheets(shnm).Rows("642:645").Hidden = True
Worksheets(shnm).Protect Password:="0858"
End If
If [G2] <> "" Then
Worksheets(shnm).Unprotect Password:="0858"
Worksheets(shnm).Rows("642:645").Hidden = False
Worksheets(shnm).Protect Password:="0858"
End If

(если в ячейке G2 листа [Сводная] пусто → строки 642:645 в листах книги со 2-го по 15-й скрыты;
если в ячейке G2 листа [Сводная] что-то есть → строки 642:645 в листах книги со 2-го по 15-й открыты).


Заранее спасибо!
порядок листов в VBAProject
 
Неужели нельзя подвигать тут вверх-вниз листы и зафиксировать нужный порядок?
проверка данных: число (либо целое, либо дробное до десятых)
 
Подскажите, пожалуйста, можно ли реализовать следующую "защиту от дурака" –
при вводе в ячейку значения, отличного от целого числа (например: 10), либо нецелого дробного, но строго до десятых (например: 10,1 - можно, 10,11 - нельзя), программа бы ругалась и не давала вводить иные варианты значений?
Изменено: Antag - 17.11.2023 01:58:10
VBA – событие при деактивации листа
 
Помогите, пожалуйста, дописать код.
Нужно чтобы при деактивации листа автоматически срабатывала разгруппировка, вызываемая нажатием на ячейку A14 (т. е. чтобы строки 1-13 становились видны).
Спасибо заранее!
Код
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Me.Unprotect Password:="0858"
    If Target.Address(0, 0) = "A14" Then
        ActiveSheet.Outline.ShowLevels 1 - Rows(2).Hidden
        Cancel = True
    Me.Protect Password:="0858"
        Exit Sub
    End If
    If Target.Address(0, 0) = "A15" Then
  Me.Unprotect Password:="0858"
        If Me.FilterMode Then
            Range("B14:G" & Rows.Count).AutoFilter Field:=1
        Else
            Range("B14:G" & Rows.Count).AutoFilter Field:=1, Criteria1:="<>"
        End If
  Me.Protect Password:="0858"
        Cancel = True
        Exit Sub
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("H9")) Is Nothing Then
       Target.Offset(9, -6).Select
       ActiveSheet.Outline.ShowLevels 1 - Rows(2).Hidden
       End If
End Sub

Private Sub Worksheet_Deactivate ()  

End Sub  
Установка защиты листов в цикле
 
Подскажите, пожалуйста, как это можно вылечить?
При выделенных листах книги при открытии файла вылезает Debug, но если потом убрать выделение листов и сохранить книгу, Debug потом не вылезает.
Если в лоб никак, то возможно ли сделать такой код:
при закрытии книги выделение листов снимается, и при последующем открытии файла активный лист "Сводная"?
Изменено: Юрий М - 31.10.2023 18:08:38
33 формулы в одну
 
Можно ли по маскам или ещё как-то объединить 33 формулы в одну?

То есть:
вводишь один из вариантов написания номера телефона в ячейку → Excel понимает, что за маску надо использовать → выводит требуемое вычисление в формуле.

См. файл. Заранее спасибо откликнувшимся!  
Вычисления в книге: автоматически, Application.Calculation = xlAutomatic
 
Как я понимаю, есть такой глюк: если открывать файл в разных версиях Excel, в старой версии программы может "Вычисления в книге: автоматически" слететь на "Вычисления в книге: вручную". А растяп меньше не становится...

Правильно ли я понимаю, что если в книгу вставить Application.Calculation = xlAutomatic, то проблема решится раз и навсегда?
Если это так, то подскажите, пожалуйста, куда именно вставить этот макрос? В раздел книги или на каждый лист книги? И в какое именно место?
Спасибо заранее!
просклонять проценты
 
Помогите, пожалуйста, формулой просклонять проценты.
Спасибо заранее!
VBA автофильтр
 
Помогите, пожалуйста.
Можно ли сделать автоматический фильтр в листе?
И он может срабатывать на событие активация этого листа?

Нужно, чтобы ставился автофильтр на значение "1" в ячейках A26:A55, но чтобы оставалась возможность вручную убрать этот фильтр (через A25 либо A26).
Заранее спасибо!
убрать пустые листы при печати
 
Уважаемые товарищи-профессионалы!
Не нахожу решения "в лоб", слёзно прошу помочь!
Финальный документ формируется с помощью использования фильтра, т. е. точное количество строк в документе каждый раз разное.
И частенько при печати (= конвертации в pdf) остаются полностью пустые страницы :(
Это можно излечить без ручного удаления этих страниц?
Область печати задана с учётом максимальных необходимых границ документа, в параметрах страницы поля указаны корректно, в настройках печати - "разместить не более чем на 1 страницу в ширину (показывает 84%).  
VBA – группировка/разгруппировка и фильтр
 
Добрый день!

Надоумьте, пожалуйста.
При нажатии в A12 нужно, чтобы просто работала только группировка/разгруппировка строк 1-11.
При нажатии в A13 нужно, чтобы срабатывал только фильтр на единицы в столбце B.
Можно это совместить?

Сейчас при нажатии как на A12, так и на A13 срабатывает и группировка, и фильтр...
совместная работа 2-х макросов на одном листе
 
Подскажите, пожалуйста, как нужно поправить код листа , чтобы 2 макроса могли работать на одном листе?
Сейчас на первом листе работает макрос, привязанный к ячейке A14, на втором – макрос, привязанный к ячейке A13.
Заранее спасибо!
Изменено: Antag - 05.06.2023 23:25:14
VBA - запрет печати. Сделать красиво
 
Код
Private Sub workbook_BeforePrint(Cancel As Boolean)
    Cancel = True
    MsgBox "Распечатать этот тест не получится. Пожалуйста, внесите ответы на вопросы на компьютере и отправьте сохранённый файл с ответами обратно. Спасибо.", vbInformation
End Sub

Человек раскатывает губу в окне предварительного просмотра печати и выбора принтера, и только потом обламывается. Жестоко.
Можно сделать, чтобы запрет появлялся вместо окна предварительного просмотра?




,
VBA – скрытие/раскрытие столбцов – Нельзя установить свойство Hidden класса Range
 
На что ругается зелёный?...

В коде листа –
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Unprotect Password:="xxxx"
If Intersect(Target, Range("H10,R6")) Is Nothing Then Exit Sub
Dim shnm
For Each shnm In Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
Worksheets(shnm).Columns(9).Hidden = [H10] = 0
If [R6] = "З/п рабочих" Then
Worksheets(shnm).Range("G:I").EntireColumn.Hidden = True
Worksheets(shnm).Range("J:K").EntireColumn.Hidden = False
End If
Next
Me.Protect Password:="xxxx"
End Sub

Run-time error '1004':
Нельзя установить свойство Hidden класса Range
Жёлтым строчка  
Worksheets(shnm).Columns(9).Hidden = [H10] = 0

Смысл макроса:
в листах книги с 2-го по 15-й
если ячейка H10 на листе, где макрос > 0, то 9-й столбец на листах с 2-го по 15-й становится видимым,
а также,
если ячейка H10 на листе, где макрос = "З/п рабочих", то
столбцы G:I на листах с 2-го по 15-й становятся скрытыми,
а столбцы J:K – открытыми.


Если убрать второе условие, и оставить только
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Unprotect Password:="xxxx"
    If Intersect(Target, Range("H10,R6")) Is Nothing Then Exit Sub
  Dim shnm
  For Each shnm In Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
    Worksheets(shnm).Columns(9).Hidden = [H10] = 0
  Next
  Me.Protect Password:="xxxx"
End Sub
то всё равно ругается... :(
VBA - Excel не запрашивает сохранение книги после выполнения макроса
 
Как дополнить?

1. Чтобы после MsgBox и нажатия OK переходил в ячейку C2
2. Перед закрытием книги запрашивал её сохраниение.

В макросах книги сейчас:
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Тест").Range("C2").Value = "" Then
Cancel = True
MsgBox "Заполните, пожалуйста, ваши Ф.И.О. вверху таблицы"
Else
ActiveWorkbook.Close SaveChanges = True
End If
End Sub
При закрытии книги не появляется стандартное окно "Вы хотите сохранить изменения в файле?"
VBA – удаление значений из ячеек по двойному клику
 
Добрый день!

Можно ли сделать так? –
по двойному клику в ячейке
1. удаляются все значения из ячеек в диапазоне и
2. раскрывается фильтр?

Ячейка на двойной клик – A5
Диапазон для удаления значений из ячеек – A8:A48
Раскрывается фильтр – A7
Вывод приветствия в зависимости от времени суток, Доброе утро! / Добрый день! Добрый вечер!
 
Подскажите, пожалуйста, как решить задачу.

В зависимости от текущего времени суток выводится разный текст в ячейке.
1. Если время 07:00-10:59 → Доброе утро! [и дальше обращение по имени, например, "Доброе утро, Сергей!"]
2. Время 11:00-17:59 → Добрый день!
3. Время 18:00-23:59 → Добрый вечер!

Это можно сделать формулой?..
Изменено: БМВ - 13.02.2023 19:39:57
Диалоговое окно, если ячейка пустая (появляется при попытке перехода на другой лист книги)
 
Добрый день!

Подскажите, пожалуйста, что должно быть в первой строчке макроса?

Private Sub ...
If IsEmpty(Range("H6")) = True Then MsgBox "Как зовут заказчика? Внеси имя в ячейку H6!", vbOKOnly
End Sub

Если в ячейке H6 определённого листа в книге пусто, при попытке переключиться на другой лист книги появляется диалоговое окно с одной кнопкой OK.
VBA – скрытие/раскрытие столбцов
 
Добрый день!
Подскажите, пожалуйста, можно так сделать?

Если G2=H2 → столбец H скрыт,
если G2 не равно H2 → столбец H не скрыт.

См. вложение, спасибо заранее за ответ!
фильтр VBA, фильтр VBA
 
Добрый день!
Можно макросом (кнопкой) ставить/снимать фильтр?
И может это быть на одной кнопке на листе завязано, или две кнопки нужно выводить на лист?
Фильтр – на ячейке B15, задача фильтра - фильтровать по всем заполненным ячейкам либо не фильтровать.
Вот лист для примера, заранее спасибо за помощь!
макрос скрытия столбца
 
Добрый день!

Помогите, пожалуйста, с макросом.
Если сумма в ячейках F4:F564=0, тогда столбец скрывается.
И так для каждого столбца в диапазоне с F до S.
Нужно для одного листа в книге.
Спасибо заранее!
Изменено: Antag - 11.12.2022 21:53:49
Смещение области печати
 
Уважаемые гуру!

Прошу помочь в решении задачи. Очень хочется обойтись формулой, без макросов.
Предполагаю, что для решения может подойти функция СМЕЩ.
Помогите, пожалуйста, разобраться в задаче.

Если ячейка Сводная!Q6="З/п рабочих", то область печати в листе Комната1!=С15:K594 (малая область печати);
при любых других значениях ячейки Сводная!Q6 область печати в листе Комната1!=C1:K606 (большая область печати).

Заранее благодарю Вас за помощь!
Изменено: Antag - 07.08.2022 00:03:50
области
 
гуру!
Изменено: Antag - 06.08.2022 21:08:38 (ошибка)
Страницы: 1
Наверх