Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макросы. Скрыть столбцы по заданному условию. Скрыть строки по заданному условию., 2 макроса.
 
Для комфортной работы с большой таблицей (и по вертикали, и по горизонтали) следует придать ей компактный вид. Лучший вариант - это макросы: Скрыть/Показать. Причем, отдельный макрос на скрыть по столбцам и отдельный - на скрыть по строкам. Фильтром пользоваться крайне неудобно, т.к. данные меняются и запомнить в каких строках они есть крайне сложно, а постоянно прокручивать 4 тыс. строк утомительно.
Пример максимально сжат, условие - нулевое значение (если ноль - скрываем). В примере подробно расписано.
Собственно интересуют макросы на Скрыть, поэтому в описании указано - 2 макроса.
Суммирование и распределение по критериям, не получается учесть фактор частичного финансирования и частичной оплаты
 
Прошу помочь собрать данные на втором листе, не получается учесть фактор частичного финансирования и частичной оплаты.
Нужно перенести данные из таблицы на первом листе в таблицу на втором листе. Критерии расписаны в примере и для удобства выделены цветом (в обеих таблицах). Если критериям выбора соответствует несколько вариантов (в примере именно этот случай), то данные суммируются.

Решение нужно формулами

Закрыто. Переделано под новую тему.
Изменено: presentt - 21 окт 2019 13:45:07
Выбор данных на одном листе и перенос их на другой лист с соблюдением заданных критериев выбора, решение формулами, а не макросами
 
Прошу подсказать решение, если оно вообще есть. Пример максимально упростил, дальше некуда. В примере прокомментировал, что хотел бы видеть в результате. Данные по которым задаются критерии обвёл, значения по которым нужны формулы - выделил красным шрифтом.
Открыть книгу макросом на нужном листе, заданном в другой книге, Работа с двумя файлами
 

Пусть, книга, которую надо открыть размещена по адресу:

C:\Users\name\Documents\Пример. Книга которую надо открыть

В  книге с макросом (Пример), на листе «Ввод» в ячейке А1 задан нужный месяц (в  примере – Март, но может быть любой), а сам макрос будет расположен на  листе «Отчет».

Подскажите,  как открыть и сделать активным файл «Пример. Книга которую надо  открыть» на нужном листе макросом из файла «Пример. Книга с макросом».

Формула первого рабочего дня месяца, от произвольной даты, заданной в ячейке А1
 
Пример не вставляю, т.к. всего 2 ячейки. В ячейке А1 произвольная дата, например, 15 мая 2019 года. В ячейке А2 - формула.
Формула просто первого дня месяца известна, есть разные варианты, например,
=ДАТА(ГОД(А1); МЕСЯЦ (А1);1)
А можно рассчитать первый РАБОЧИЙ день месяца, т.к. для того же мая первый календарный день не равен первому рабочему дню.
Составление имени ячейки из частей заданных в других ячейках
 
Условно, уравнение    =А1+А2
Можно ли составить А2 из частей его имени, заданных в других ячейках?
Допустим "А" задано в ячейке В1, а "2" задано в ячейке В2.
Т.е. на выходе что-то типа. =А1+(В1+В2), понятно, что не так, но есть какая-нибудь возможность?
Поиск второго, третьего и т.д. ненулевого значения в столбце, каждое значение в отдельной ячейке
 
Подскажите формулу для последующих ненулевых значений в столбце. Для каждого своя ячейка. Пример прикладываю.
Сводная таблица. Как сдвинуть данные под сводной таблицей
 
Собственно на одном листе находятся и СТ и другие данные - графики и таблицы, причем СТ находится вверху листа (надо чтоб было вверху, я понимаю, что размещение СТ внизу листа снимает проблему). Количество строк в СТ меняется при каждом актуальном обновлении, отчего возникает нахлест на графики размещенные под СТ. Можно как-то настроить динамическое смещение объектов расположенных под СТ по мере изменения размеров самой СТ?
Макрос для обновления данных с помощью фильтра, обновление данных макросом для последующего корректного отображения диаграмм
 
Вот простой макрос созданный макрайтером
Код
Sub Ìàêðîñ6()

'

' Ìàêðîñ6 Ìàêðîñ

'

 

'

   
ActiveSheet.Range("$B$1:$B$64").AutoFilter Field:=1

   
ActiveSheet.Range("$B$1:$B$64").AutoFilter Field:=1,
Criteria1:=Array("10", _  "12", "13",
"17", "3", "32", "4", "40",
"5", "57", "6", "82", "="),
Operator:= _

       
xlFilterValues

End Sub


Идея простая, сначала в выпадающем фильтре нажимаем "Выделить всё" и ОК, а следом снимаем выделение с нуля (всё остальное остается) и ОК.
Локально всё прекрасно работает, но при изменении данных в исходной таблице В1:В64 (а данные периодически меняются, какие-то уходят, другие добавляются) обновление происходит некорректно. По идее, надо заменить строчку макроса
Код
Array("10", _  "12", "13",
"17", "3", "32", "4", "40",
"5", "57", "6", "82", "="), 

 
на какое-то обобщение, по смыслу - оставить всё кроме нуля. Подскажите, как подправить макрос.














Суммирование из разных вкладок по критериям выбора
 
Есть 12 вкладок (по числу месяцев) + вкладка для сбора итогов. На вкладке итогов надо получить сумму из предыдущих вкладок, но не по всем месяцам, а по заданным, в примере с 3-го по 7-й. Подскажите, как это сделать
Макрос. Скрыть частично заполненные строки в одной из таблиц на листе
 
В примере 2 таблицы. Верхняя - это сбор данных, с ней ничего делать не надо. Нижняя - Отчёт, в котором автоматически заполняются лишь отдельные строки, но так как строк много (вообще, сотни), хотелось бы привести отчёт к читабельному виду.
Собственно, требуется скрыть частично заполненные строки (частично, потому что всегда присутствует название статьи и сумма 0,0), а при необходимости снова их открыть. Пример прилагается.
Суммирование по условию внутри заданного диапазона
 
На вкладке "Данные" представлена таблица с данными, где в графе "Обороты за год" проводится суммирование по условию стандартной функцией СУММЕСЛИ, однако выборка осуществляется за весь календарный период (с 01.01.17 по 31.12.17).
На вкладке "Отчёт" нужно из представленных данных рассчитать обороты за заданный период внутри года. Подскажите, как это сделать.
Макрос. Вставить часть данных из заданной строки в новую строку.
 
Есть макрос, который вставляет новую строку, после строки указанной в ячейке J2, после чего копирует данные из строки, указанной в ячейке J2 в созданную строку. Вот код:

Код
Sub ПлюсСтрока()
    Rows(Range("J2") + 1).Insert Shift:=xlDown
    Rows(Range("J2")).Select
    Selection.Copy
    Rows(Range("J2") + 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

Нужно, чтобы копировались (точнее, вставлялись) не все данные, а только те, которые относятся с столбцам А, K, L, M. Т.е. вместо

Код
ActiveSheet.Paste 

должно быть что-то вроде

Код
ActiveSheet.PasteColumn (“A, K, L, M”) 

Понятно, что так не работает. Возможно надо как-то иначе, подскажите.
Макрос. Добавить строку по номеру заданному в ячейке
 
Нужно чтобы макрос вставлял строку после строки, номер которой указан ячейке. Допустим, такой стандартный код:
Код
Rows ("6:6").Select
Selection.Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove

Собственно, вместо 6:6 надо брать номер строки из ячейки А300.
Макрос. Закрыть файл с переменным именем в коде макроса
 
Вот макрос:

Код
Sub Сверка_данных ()
'
' Сверка_данных
'

'
    Workbooks.Open Filename:= _
        "C:\ Documents\Контроль\2016год\Отчет клиента" & ThisWorkbook.Sheets("Лист1").Range("I2").Value & ".xlsx" _
        , UpdateLinks:=0
        Range("A1:F124").Select
    Selection.Copy
    Windows("Сводный отчет.xlsm").Activate
    Sheets("Лист3").Select
    Range("A1:F124").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    End Sub

Открываемый файл с переменным именем (Отчет клиента" & ThisWorkbook.Sheets("Лист1").Range("I2").Value & ".xlsx") хотелось бы закрыть перед окончанием макроса, но что-то не получается, а закрывать вручную, после выполнения макроса как-то неправильно  :oops:
Скрыть/показать столбцы по условию, заданному в ячейках
 
Для создания отчета необходимо оставить только значимые столбцы в большой таблице организованной по горизонтали (задача - скрыть), после просмотра отчета таблицу надо привести в прежний вид (задача - показать).
Столбцы сгруппированы в группы по 3 столбца в каждой группе, всего 500 групп.
Условие задается в ячейках под каждой группой (у каждой группы своя пара ячеек, т.е. 500 пар ячеек).
Наверно это решается макросом, хотя не знаю, может какой-нибудь другой функцонал получится прикрутить.
Во вложении все более понятно.
Массовое копирование со смещением номера ячейки с одного листа на другой
 
В Примере, на Листе1 введены некоторые значения в столбцах, расположенных через 2 столбца.
На Листе2 эти данные должны быть повторены тоже в столбцах, но расположенных через 1 столбец.
При стандартном копировании значения берутся не из тех столбцов из которых нужно, а вручную ввести порядка 500 формул (пусть и коротких) как-то неправильно.
Можно ли это решить без ввода пустых столбцов (с последующим их сокрытием) на Листе2?
Выборка с суммированием по нескольким параметрам
 
Пытался решить функцией СУММЕСЛИМН, но выдает ошибку, может что-то не так делаю или надо другую функцию применить... подскажите
Файл прикладываю, красным шрифтом выделена неудачная попытка решения.
Цель, посчитать сумму во всех колонках с названием "Оплачено" с тем ограничением, чтобы считались только те значения, которые относятся к заданному номеру заявки.
Макрос выбирающий и открывающий файл по заданному параметру, выбор файла по названию, согласно заданного параметра
 
Идея автоматизации процесса создания нового отчёта из уже имеющихся отчётов.
Скажем в директории С/Отчёты лежит много отчётов с такими именами:
Отчёт по 2016.01.20.xlsx
Отчёт по 2016.01.27.xlsx
Отчёт по 2016.01.31.xlsx
Отчёт по 2016.02.09.xlsx
Отчёт по 2016.02.17.xlsx
Отчёт по 2016.02.26.xlsx
Отчёт по 2016.03.05.xlsx
Данные в этих отчётах представлены нарастающим итогом, начиная с 01.01.2016 по дату, указанную в названии файла.
Задача в новом файле, например, "Отчёт за февраль 2016.xlsx" автоматически создать отчёт за февраль. Выбор месяца задаётся в ячейке "С4" (данного файла).
Очевидно, что для построения отчёта сначала надо открыть файл "Отчёт по 2016.01.31.xlsx"(1), взять оттуда данные, потом открыть файл "Отчёт по 2016.02.26.xlsx"(2) и взять оттуда данные.
Собственно нужно 2 строчки кода, выбирающие и открывающие именно те файлы, которые соответствуют критерию, заданному в ячейке "С4", т.е. месяцу.
Это решаемо?
Вставка даты (из ячейки книги) в название файла при его сохранении макросом
 
Есть книга1 excel с кучей закладок, в одной из которых собираются данные для регулярных отчётов.
Делается макрос (макрорекордером), который создаёт книгу2 excel только с отчётом (для отправки в хэд-офис).
При сохранении файла (с включённой записью макроса) вводится название файла, например, "Отчёт по ...", а дальше нужно автоматически вставить дату, присутствующую в одной из ячеек книги1.
Это возможно как-то реализовать?
Скопировать ячейку с формулой и вставить её, но уже без формулы
 
Чтобы отсечь лишнее, выделю главную проблему, где идёт сбой.

Задача – скопировать ячейку с формулой и вставить её в некоторое соседнее поле, но уже без формулы, а с результатом вычисления.
Если делать вручную (без макроса), то проблем не возникает, т.к. после копирования вставляем не командой «Вставить», а через буфер обмена. Всё прекрасно, копируется не формула, а результат вычисления.

Включаем запись макроса и проделываем ту же самую процедуру, вот код:
Код
Sub Макрос()
    Range("E30").Select
    Selection.Copy
    Range("H30").Select
    Application.CutCopyMode = False
    ActiveSheet.Paste
End Sub

Однако при выполнении макроса выскакивает ошибка:
Код
Run-time error ‘1004’
Метод  Paste из класса Worksheet завершен неверно
Что я делаю не так? Можно как-то решить исходную задачу при помощи макроса?
Страницы: 1
Наверх