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

Страницы: 1 2 3 4 След.
Подсветка строки при активной ячейке., Нужна помощь. Задача. Из формулы, входящей в условное форматирование и макроса, создать макрос.
 
Подсветка строки при активной ячейке.

Нужна помощь. Задача. Из формулы, входящей в условное форматирование (=СТРОКА(A1)=ЯЧЕЙКА("строка") + определение заливки) и макроса:

Private Sub WorkSheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
ActiveCell.Calculate
End Sub

который заставляет всё это активно перемещаться:

1. Составить единый макрос;
2. Внести его в созданную мной надстройку («Мои надстройки»).

Цель: использовать данный макрос во всех файлах, которые будут мною определены.

Сообщаю сразу, что в Excel я очень не продвинутый пользователь, но к этому стремлюсь и прошу не быть надменными. Заранее всем благодарен.
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
Точно? Прям вот в таких же условиях: в обычном модуле Module2 и вызовом с кнопки? Что-то мне как-то не верится. Либо код не тот приведен в сообщении.
Условия для этого макроса были другие и запускался макрос обычным способом не через кнопку. А задумка была в следующем. Создать Надстройку в которую внести макросы (как я понимаю в каждом модуле по макросу), которые можно будет запускать в той книге, которая будет под него открыта. Запускать каждый макросы с помощью кнопок. Учитывая, что я далеко не продвинуты пользователь в Excel, видимо, что то не допонимаю. Простым языком всё представлялось так. Открываю файл с определённой таблицей, из списка макросов выбираю нужный под этот файл, запускаю, получаю результат.
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
Можете сохранять свои макросы в файле надстройки, поместить надстройку в папку надстроек(при сохранение в формат надстроек Excel сам предложит именно эту папку) и подключить надстройку к Excel(чтобы запускалась при запуске приложения). Тогда макросы в ней будут доступны так же, как в PERSONAL.XLSB, но не будет таких сюрпризов. Подробнее о том, как создать надстройку:  Как создать свою надстройку? По сути Вам хватит описания в первой части статьи - до того момента, где описано сохранение файла. А далее подключаете:  инструкция по установке надстроек
Надстройка создана, макрос разместил в Module1, кнопка создана, гор.клавиша создана. В Module1 всё работает.  Внёс в Надстройку Module2. По аналогичной процедуре создал Module2. Внёс макрос. Не запускается. Пишет: "Argument not optional". Пытался добавить кнопку на Панель быстрого доступа, во вкладке Макросы, отображается только макрос из Module1.
Где ошибка?
Код
Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    ' Список листов, на которых макрос НЕ должен работать
    Dim исключенныеЛисты As Variant
    Dim i As Integer
    
    исключенныеЛисты = Array("ИТОГ") ' Можно добавить другие: "Лист8", "Лист9"
    
    ' Проверяем, не находится ли текущий лист в списке исключённых
    For i = LBound(исключенныеЛисты) To UBound(исключенныеЛисты)
        If Sh.Name = исключенныеЛисты(i) Then Exit Sub
    Next i
    
    ' Очищаем заливку на всём листе, где произошло изменение
    Sh.Cells.Interior.ColorIndex = xlNone
    
    ' Проверяем, чтобы не выйти за пределы
    If Target.Row > 0 And Target.Column > 0 Then
        ' Задаем цвет строке, НО только для столбцов, где есть значения
        Dim lastCol As Long
        lastCol = Sh.Cells(Target.Row, Sh.Columns.Count).End(xlToLeft).Column
        
        If lastCol >= 1 Then
            Sh.Range(Sh.Cells(Target.Row, 1), Sh.Cells(Target.Row, lastCol)). _
            Interior.Color = RGB(255, 230, 200) 'Тёплый пастельный (персиковый оттенок)
        End If
    End If
End Sub
Не получается направить вам файл, не пропускает, большой.
Код рабочий. В другом файле функционирует. В Надстройке не хочет.
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
Можете сохранять свои макросы в файле надстройки, поместить надстройку в папку надстроек(при сохранение в формат надстроек Excel сам предложит именно эту папку) и подключить надстройку к Excel(чтобы запускалась при запуске приложения). Тогда макросы в ней будут доступны так же, как в PERSONAL.XLSB, но не будет таких сюрпризов. Подробнее о том, как создать надстройку:  Как создать свою надстройку? По сути Вам хватит описания в первой части статьи - до того момента, где описано сохранение файла. А далее подключаете:  инструкция по установке надстроек
Спасибо, данным советом  выручили. Всё работает.
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
что с ней надо сделать? Выполнить приложенный выше код? Или что? опишите порядок действий, чтобы можно было воспроизвести. Но если сохраняете в формат .xlsx - то все верно, макросы будут удалены. Внимательно прочитайте сообщение, которое появляется - там может быть написано, что файл содержит макросы и "если хотите сохранить файл БЕЗ НИХ" - нажмите Сохранить(или Ок). Многие не читая, жмут ОК, предполагая, что файл будет сохранен с макросами, хотя все как раз наоборот. Надо жать Нет - и выбрать формат файла с поддержкой макросов(xlsm или xsb и т.п.).
Алгоритм действий (моя последовательность, может, что то не так?)
1. Открываем выгруженный файл "17.04.2026-export.xlsx";
2. Вставляем в него макрос (VBA -> ЭтаКнига -> Insert -> Module);
3. Alt+F11 -> Макросы -> В окне "Макрос" выбираем макрос -> "Выполнить";
4. Получаем файл "Книга1-Excel";
5. Файл "Книга1-Excel" -> "Сохранить как..." -> 17.04.2026-time-export.xlsm с поддержкой макросов.

Эту последовательность приходится повторять каждый раз при выгрузке файла "17.04.2026-export.xlsx". Ранее после выгрузки файла "17.04.2026-export.xlsx" можно было сразу открыть окно "Макросы" и далее по алгоритму: в окне "Макрос" выбираем макрос -> "Выполнить". Сейчас окно "Макрос" пустое.
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
Возможно выгружаемый файл сразу сохраняется в формате без поддержки макросов.Нужно смотреть в настройках этой ' профессиональной программы '
Это не тот случай.
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
выгруженный файл сохраняется после вставки? Если да - после открытия именно этого файла кода нет внутри VBE или он не отображается в диалоговом окне "Макросы"?Какой формат этого "выгруженного файла"?
Выгрузка:
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
выгруженный файл сохраняется после вставки? Если да - после открытия именно этого файла кода нет внутри VBE или он не отображается в диалоговом окне "Макросы"?Какой формат этого "выгруженного файла"?
Сам макрос:
Скрытый текст
Изменено: Sanja - 17.04.2026 05:01:54 (Код в сообщении оформляйте соответствующим тегом (<...> на панели). Длинный код можно спрятать под спойлер (SP))
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 
Цитата
написал:
выгруженный файл сохраняется после вставки? Если да - после открытия именно этого файла кода нет внутри VBE или он не отображается в диалоговом окне "Макросы"?Какой формат этого "выгруженного файла"?
Формат выгруженного файла xlsx. Ранее он выгружался и сохранялся (и в окне отображались нужные мне макросы, сейчас их нет в окне) После вставки макроса он просил сохранения с поддержкой макрос.Сохраняю с поддержкой макрос, но  даже с поддержкой, в окне, макросы не отображаются. Пробовал и на W10x64 результат тот же. Во вложении файл обработанный макросом.  
Макрос не сохраняется в редакторе VBA., Макрос не сохраняется в редакторе или сохраняется только в той книге в которой создан.
 

Всем здоровья. OS W7 x32, Excel 2016. Ранее, выгружая из модуля профессиональной программы файл Excel, открывал окно «Разработчик» → «Макросы». Там были видны нужные для запуска макросы и другие макросы. Сейчас какие бы действия ни выполнял — макрос после новой загрузки файла не отображается. В сохраненном файле макрос виден, в выгружаемом — отсутствует. Каждый раз при выгрузке приходится заново вставлять нужный макрос. Видимо, дело в настройках. Если кто сталкивался с такой проблемой — подскажите решение. Вариант «Находится в…» проверял.

Действия при сохранении:

  1. На вкладке Разработчик нажимаю Visual Basic (либо Alt+F11).

  2. В окне проекта слева выбираю файл (или PERSONAL.XLSB).

  3. Щелкаю правой кнопкой мыши по проекту → Вставить → Модуль. Открывается чистый лист для ввода кода.

  4. Вставляю скопированный код и закрываю редактор.

Где допущена ошибка?

Сравнение двух таблиц., Какую применить функцию?
 
Цитата
написал:
=СУММЕСЛИ(Таблица1[Наименованиет материала];[@Столбец1];Таблица1[Количество])
Что то не так.
Сравнение двух таблиц., Какую применить функцию?
 
Цитата
написал:
=ВПР(A25;$A$2:$B$20;2;0)
Что то не работает
Сравнение двух таблиц., Какую применить функцию?
 
Лист «Расходы». Две таблицы (верхняя и нижняя) с одинаковыми наименованиями, но в каждой таблице разное количество позиций. Не могу сообразить, какую необходимо применить формулу в столбце «B» нижней таблицы, чтобы в ней напротив каждого наименования проставить соответствующее значение из первой таблицы.
Изменено: Алексей Панов - 09.04.2026 16:57:09
Поиск данных по выпадающему списку., Два выпадающих списка.
 
Цитата
написал:
или так=ВПР(M2;B:F;ПОИСКПОЗ(M3;B1:F1;);)или=ГПР(M3;C:F;ПОИСКПОЗ(M2;B:B;)
Спасибо, работает.
Поиск данных по выпадающему списку., Два выпадающих списка.
 
Цитата
написал:
=ФИЛЬТР(ФИЛЬТР(C2:F7;B2:B7=M2);C1:F1=M3)
Спасибо, работает.
Поиск данных по выпадающему списку., Два выпадающих списка.
 

Всем доброго.

Нужна помощь.

Две ячейки (M2; M3), в каждой — выпадающий список. Задача такая: при выставлении данных в ячейках с выпадающим списком получать результат в ячейке (M4) в соответствии с цифровыми данными, расположенными в таблице (C2:F7).

Заранее всем благодар

Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное, Windows 7x32.Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное.
 
Цитата
написал:
на лист установлена защита. Чтобы преобразовать таблицу - надо снять защиту с листа. Да и с остальными листами такая же ситуация. Так что ничего необычного.
Огромное спасибо, надоумили. Поставил защиту и запамятовал. Как говорится "... а ларчик просто открывался". Все спасибо, за участие!!!
Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное, Windows 7x32.Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное.
 
Соединений с внешними данными, нет, Файл большой, очень не хочется копировать и создавать заново. В "Лист1" внёс скопированные данные (всё нормально функционирует).
Если кто поможет решить проблему, заранее благодарен.
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Кроме строки с созданием умной таблицы, в любом.
Подскажите, где можно посмотреть сборник макросов (возможно опубликованных, как самые популярные)?
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Промежуточные итоги могут не вставляться, например, по следующим причинам:- нет столбцов "Статус" или "Изменена"- таблица занимает все строки 1048576 на листе , для промежуточных итогов не осталось места
Заново скопировал макрос, всё заработало.
Для форматирования прописал:

Sub ЗдигСтолбцов()
'
' ЗдвигСтолбцов Макрос
'

'
   ActiveWindow.ScrollColumn = 2
   ActiveWindow.ScrollColumn = 3
   Columns("D:D").ColumnWidth = 45
   ActiveWindow.ScrollColumn = 2
   ActiveWindow.ScrollColumn = 1
   Columns("C:C").ColumnWidth = 50.86      'устанавливаем ширину столбца "С"'
   Columns("D:D").ColumnWidth = 14.86      'устанавливаем ширину столбца "D"'
   Columns("B:B").ColumnWidth = 10.86      'устанавливаем ширину столбца "B"'
   Columns("E:E").ColumnWidth = 14.86      'устанавливаем ширину столбца "E"'
   Range("B4055").Select
   ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$F$4056"), , xlYes).Name = _
       "Таблица1"
   Range("Таблица1[#All]").Select
End Sub

Подскажите, в каком месте можно пристроить, что бы не запускать отдельно?
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Option Explicit Sub Таблица_поумничай()    CloseEmptyWb    ActiveSheet.Copy         Dim xx As Long, colName As Variant    For xx = ActiveSheet.UsedRange.Columns.Count To ActiveSheet.UsedRange.Column Step -1        For Each colName In Array("Приоритет", "Осталось на выполнение", "Категории")            If Cells(1, xx).Value = colName Then                Columns(xx).EntireColumn.Delete            End If        Next    Next    ActiveSheet.Shapes(1).Delete    ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.UsedRange, , xlYes).Name = "Таблица1"    ActiveSheet.ListObjects(1).TableStyle = "TableStyleLight13"    ActiveSheet.ListObjects(1).ShowTotals = True    ActiveSheet.ListObjects(1).ListColumns("Статус").TotalsCalculation = xlTotalsCalculationCount    ActiveSheet.ListObjects(1).ListColumns("Изменена").TotalsCalculation = xlTotalsCalculationNone    ActiveSheet.ListObjects(1).Range.SelectEnd Sub Private Sub CloseEmptyWb()    Dim wb As Workbook    For Each wb In Application.Workbooks        If wb.Path = "" Then wb.Close False    NextEnd Sub
Не могу понять по какой причине перестала работать функция в макросе: "Создание умной таблицы" "Расчёт промежуточного итога". Скажите, куда можно направить файль (не проходит из-за большого объёма) .
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
For Each colName In Array("Приоритет", "Осталось на выполнение", "Категории")
это?
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Напишите, нашли ли, куда внести изменения, интересно всё-таки.
Не нашёл...
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Option Explicit Sub Таблица_поумничай()    CloseEmptyWb    ActiveSheet.Copy         Dim xx As Long, colName As Variant    For xx = ActiveSheet.UsedRange.Columns.Count To ActiveSheet.UsedRange.Column Step -1        For Each colName In Array("Приоритет", "Осталось на выполнение", "Категории")            If Cells(1, xx).Value = colName Then                Columns(xx).EntireColumn.Delete            End If        Next    Next    ActiveSheet.Shapes(1).Delete    ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.UsedRange, , xlYes).Name = "Таблица1"    ActiveSheet.ListObjects(1).TableStyle = "TableStyleLight13"    ActiveSheet.ListObjects(1).ShowTotals = True    ActiveSheet.ListObjects(1).ListColumns("Статус").TotalsCalculation = xlTotalsCalculationCount    ActiveSheet.ListObjects(1).ListColumns("Изменена").TotalsCalculation = xlTotalsCalculationNone    ActiveSheet.ListObjects(1).Range.SelectEnd Sub Private Sub CloseEmptyWb()    Dim wb As Workbook    For Each wb In Application.Workbooks        If wb.Path = "" Then wb.Close False    NextEnd Sub
Можно вас попросить прокомментировать все действия. Я хотел бы добавить ещё действие, что бы убрать столбец "Исполнители". В Excel слаб, поэтому прошу, возможно по делитански. Спасибо.

Например:
Next    ActiveSheet.Shapes(1).Delete       "удаляет ....................."
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Нет, не путаю.  
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Option Explicit Sub Таблица_поумничай()    CloseEmptyWb    ActiveSheet.Copy         Dim xx As Long, colName As Variant    For xx = ActiveSheet.UsedRange.Columns.Count To ActiveSheet.UsedRange.Column Step -1        For Each colName In Array("Приоритет", "Осталось на выполнение", "Категории")            If Cells(1, xx).Value = colName Then                Columns(xx).EntireColumn.Delete            End If        Next    Next    ActiveSheet.Shapes(1).Delete    ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.UsedRange, , xlYes).Name = "Таблица1"    ActiveSheet.ListObjects(1).TableStyle = "TableStyleLight13"    ActiveSheet.ListObjects(1).ShowTotals = True    ActiveSheet.ListObjects(1).ListColumns("Статус").TotalsCalculation = xlTotalsCalculationCount    ActiveSheet.ListObjects(1).ListColumns("Изменена").TotalsCalculation = xlTotalsCalculationNone    ActiveSheet.ListObjects(1).Range.SelectEnd Sub Private Sub CloseEmptyWb()    Dim wb As Workbook    For Each wb In Application.Workbooks        If wb.Path = "" Then wb.Close False    NextEnd Sub
Так же не форматируется в умную таблицу.
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Option Explicit

Sub Таблица_поумничай()
   CloseEmptyWb
   ActiveSheet.Copy
   
   Dim xx As Long, colName As Variant
   For xx = ActiveSheet.UsedRange.Columns.Count To ActiveSheet.UsedRange.Column Step -1
       For Each colName In Array("Приоритет", "Осталось на выполнение", "Категории")
           If Cells(1, xx).Value = colName Then
               Columns(xx).EntireColumn.Delete
           End If
       Next
   Next
   ActiveSheet.Shapes(1).Delete
   ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.UsedRange, , xlYes).Name = "Таблица1"
   ActiveSheet.ListObjects(1).TableStyle = "TableStyleLight13"
   ActiveSheet.ListObjects(1).ShowTotals = True
   ActiveSheet.ListObjects(1).ListColumns("Статус").TotalsCalculation = xlTotalsCalculationCount
   ActiveSheet.ListObjects(1).ListColumns("Изменена").TotalsCalculation = xlTotalsCalculationNone
   ActiveSheet.ListObjects(1).Range.Select
End Sub

Private Sub CloseEmptyWb()
   Dim wb As Workbook
   For Each wb In Application.Workbooks
       If wb.Path = "" Then wb.Close False
   Next
End Sub
Код ваш рабочий, но при выгрузке большего объёма данных (этот файл из-за ограничений сайта по объёмам данных не смог направить) пропадает подитог в столбце "B"
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
Цитата
написал:
Option Explicit Sub Таблица_поумничай()    CloseEmptyWb    ActiveSheet.Copy         Dim xx As Long, colName As Variant    For xx = ActiveSheet.UsedRange.Columns.Count To ActiveSheet.UsedRange.Column Step -1        For Each colName In Array("Приоритет", "Осталось на выполнение", "Категории")            If Cells(1, xx).Value = colName Then                Columns(xx).EntireColumn.Delete            End If        Next    Next    ActiveSheet.Shapes(1).Delete    ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.UsedRange, , xlYes).Name = "Таблица1"    ActiveSheet.ListObjects(1).TableStyle = "TableStyleLight13"    ActiveSheet.ListObjects(1).ShowTotals = True    ActiveSheet.ListObjects(1).ListColumns("Статус").TotalsCalculation = xlTotalsCalculationCount    ActiveSheet.ListObjects(1).ListColumns("Изменена").TotalsCalculation = xlTotalsCalculationNone    ActiveSheet.ListObjects(1).Range.SelectEnd Sub Private Sub CloseEmptyWb()    Dim wb As Workbook    For Each wb In Application.Workbooks        If wb.Path = "" Then wb.Close False    NextEnd Sub
Спасибо. В данном макросе не отформатировано под дату колонка "F" и "J"
Выгрузка Excel(2016) по заданным параметрам., Выгрузка Excel(2016) по заданным параметрам, тем который задаём по потребность.
 
При выгрузке в Excel (2016) необходимо, в автоматическом режиме форматировать в умную таблицу, убрать ненужные столбцы и внести формулу на один столбец. Приходится часто выгружать таблицу и ручками убирать лишние столбцы форматировать в умную таблицу и вносить формулу с подитогом.Красным выделено, что убрать. Жёлтым, что необходимо добавить. Каким образом можно автоматизировать данную выгрузку? Заранее всем участвующим в данном вопросе благодарен.
Промежуточный итог., Промежуточный итог не просчитывает все столбцы.
 
Цитата
написал:
Доработайте объединения и будет считать.
Спасибо, с вашей помощью разобрался.
Страницы: 1 2 3 4 След.
Наверх