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

Страницы: 1
Как внести изменения в файл xlsm если он закрывается автоматически после открытия
 
Код
Private Sub Workbook_Open()
If Format(Now, "hh") = "08" Then Call MyMacro
ActiveWindow.Close
End Sub
Как нибудь можно открыть файл чтобы успеть прервать исполнение макроса и удалить  в нем последнюю строку?)
P.S. завтра с 8 до 9 я конечно удалю последнюю строку)  но сам факт) время на ПК не сменить т.к. нужны права админа)
Изменено: venom51 - 13.02.2019 17:25:47
Оптимизировать макрос
 
Доброго времени суток, необходима помощь специалиста в оптимизации макроса (400 строк с комментариями + ссылка на запуск двух других макросов при его выполнении - один достает данные из закрытой книги, второй по этим данным удаляет определенные строки в таблице).
Макрос написан изначально с помощью макрорекордера и собран с миру по нитке - из других макросов. Макросы сохранены в книге PERSONAL.XLSB т.к. файлы каждый день обрабатываются новые, поэтому проще просто откртыть файл и запустить макрос.

Что необходимо:
уменьшить количество строк макроса без потери функционала.
увеличить скорость работы макроса

По срокам - месяц (мне не к спеху)

Стоимость - 500 руб. Возможно обсуждение цены.

Как по мне макрос не сложный, не смотря на количество строк, много места занимает форматирование таблицы.

Изначальный файл в формате dbf ~ 80 Мб (сжатый архиваторами от 1,40 Мб до 441 кб) поэтому вышлю его в архиве.
На выходе (после работы макроса) получается файл xlsx размером от 5,5 мб
Изменено: venom51 - 24.01.2019 09:14:59
Макрос создания сводной таблицы. Ошибка run time error 424
 
Скачал файл с макросом создания сводной таблицы (прикреплен к сообщению)
открываю файл все работает как надо
Переношу его в свой файл, на строке:
Код
Set objTable = Sheet1.PivotTableWizard
Возникает ошибка run time error 424 object required
Искал в интернете в т.ч. на этом сайте нашел что возможно нужно подключить некие библиотеки в Tools - References - так у меня не активно это меню я не могу зайти в него... Но блин в файле примере то все работает, почему в моем тогда не работает.
Удаление строк по условию
 
Добрый день, возникла идея уменьшить кол-во строк в таблице. (ежедневная выгрузка из базы данных - переделать выгрузку нет возможности)
Нашел простой макрос и чуточку доработал чтобы он искал только значения в одном столбце.
Но потребовалась еще 1 доработка.
если в D5 стоит ноль то строка удаляется.
Но мне необходимо еще одно условие прописать, чтобы D5 не удалялась т.к. в ячейке справа Е5 стоит значение больше нуля.
В принципе получается нужно удалять только те строки в которых значения D#+E#=0 (додумался пока писал пост)
Как прописать это условие в макрос? и можно ли его оптимизировать, ему приходится удалять примерно 1 700 строк из 15 000 и как я понял он их все в оперативку сначала собирает и когда соберет удаляет, Excel при этом зависает минут на 3-5.
Код
Sub УдалениеСтрокПоУсловию()
    Dim ra As Range, delra As Range, ТекстДляПоиска As String
    Application.ScreenUpdating = False    ' отключаем обновление экрана

    ТекстДляПоиска = "0"    ' удаляем строки с таким текстом

    ' перебираем все строки в используемом диапазоне листа
    For Each ra In Range("D2:D20").Cells
        ' если в строке найден искомый текст
        If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
            ' добавляем строку в диапазон для удаления
            If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
        End If
    Next
    ' если подходящие строки найдены - удаляем их
    If Not delra Is Nothing Then delra.EntireRow.Delete
End Sub
ВПР максимального значения с 2-3 условиями и выводом значения из смежной ячейки, а не макс.значения.
 
Добрый день, подскажите в каком направлении двигаться, придумал сам себе задачку.
Решение вижу в формулах массива, но совершенно с ними не знаком.

Необходимо в столбце J выводить Наименование ЛПУ (из столбца А) у которого на остатке (столбец i) максимальное количество уп. препарата с кодом (из ячейки Е) и по льготе из ячейки В)
Наименование выводить только если на Остаток по этой строке меньше или равен нулю, если больше нуля то выводить текст "не требуется"

Очень много условий, я даже сам путаюсь в описании того что надо. Ищется это всегда вручную просматривая таблицу с помощью фильтров.  
Изменено: venom51 - 22.09.2016 15:55:39 (прикрепил файл снова)
Передать значение переменной в формулу VBA
 
Добрый день,
Столкнулся с проблемой
Имеется простой макрос который вставляет формулу в одну ячейку
Код
Range("G1").Select
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[1]C:R[23]C)"

Как видим по формуле последнюю ячейку которую он захватывает это 23 строка таблицы R[23]C
Если строк в таблице станет больше то формула не охватит весь диапазон.
Как мне 23 заменить на посчитанной количество строк? (как посчитать еще тоже не знаю))

Нашел формулу которая делает аналогичное действие но там промеж.итоги стоят внизу столбца, а мне принципиально надо сверху(((
Код
.Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).FormulaR1C1 = "=SUBTOTAL(9, R4C:R[-1]C)"
Выделение от активной ячейки до последней смежная слева которой заполнена
 
Добрый день, начал делать макрос на отработку ежедневно выгружаемого файла, в нем возникла необходимость преобразовать  "числа-как-текст" в нормальное число
пробовал макрос из нового  приема работы
Код
Sub Convert_Text_to_Numbers()
    Selection.NumberFormat = "General"
    Selection.Value = Selection.Value
End Sub
но значения с запятыми не преобразует.

Сделал собственными силами такое "могучее творение":
Код
Range("H2").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]*1"
    Range("H2").Select
    Selection.AutoFill Destination:=Range("H2:H24")
    Range("H2:H24").Select
и теперь не знаю как добиться в этой строке указать не конкретно Н24, а последнюю ячейку рядом с которой есть заполненная ячейка.
Код
Selection.AutoFill Destination:=Range("H2:H24")
Пример прилагаю
Подсчет уникальных значений (без счета дубликатов таких значений)
 
Добрый день, задачка которая у меня возникла описана довольно подробно в файле.
Необходимо построчно посчитать повторяющиеся ФИО только 1 раз при определенном условии из смежной ячейки.  
Заполнить пустые ячейки данными из ячеек сверху (по условию)
 
Навеяно темой (перехожу к тому что я сводную копирую на другой лист как значения)
И теперь необходимо заполнить пустые ячейки значениями расположенными в ячейке сверху.
В примере довольно подробно описано что есть и что надо.  
Заполнить пустые ячейки в сводной таблице
 
Люди добрые, всегда мучался с этой проблемой, может есть все же какое то простое решение?
Необходимо чтобы "абакавир" например был прописан 3 раза. А не отображались пустые ячейки.  
Знак надчеркивания над буквой в ячейке Excel
 
Добрый день, возможно ли в Excel сделать над буквой З верхнее подчеркивание встроенными ресурсами. Без установки новых шрифтов.
И не рисунком. В файле примере сделано рисунком (копировали из ворда, в ворде делали с помощью вставки сложных формул)
Я полагаю все же придется просматривать все шрифты стандартные на наличие данного символа ?
Автоматическое создание сводной таблицы макросом
 
Делаю макрос для автоматического создания сводной таблице, на данной строке выходит ошибка  Run-time error 424
Set objTable = Sheet1.PivotTableWizard
Подскажите как этот объект подключить .... что ему не хватает. в VBA не силен, если можно по пунктам. Офис 2007 если что.  
Рассчет кол-ва человек по периоду времени
 
Добрый день, попробую объяснить задачу:
Есть некий список с ФИО и датами включения и исключения в регистр.
Необходимо рассчитать по годам, был ли человек в 2015 году в этом регистре или нет. например если у него дата включения 01.09.2014 и дата окончания 20.02.2015 то его надо отнести к 2014 и к 2015 году.
В тоже время если он был включен в 2014 году по другой записи с 01.01.2014 по 30.08.2014 тогда его посчитает второй раз в 2014 год.
Т.е. фамилии могут повторятся, периоды только разные.
пробовал через сводную, не получается.
Всего записей порядка 30 тыс. Пример урезан.  
Вычисление остатков из информации о "поставках"
 
Допустим есть 3 учреждения (для примера достаточно)
ООО   Альпы
ООО Хибины
ООО Эльбрус
И одно из учреждений является складом/перевалочным пунктом и т.п. в нашем случае это ООО Хибины.
Ведется некая таблица о доставке в ООО Хибины товаров из ООО Альпы и ООО Эльбрус и в той же таблице о выбытии из ООО Хибины товара в другие учреждения.
Необходимо на основании данных о поставках и выбытии из ООО Хибины товара на отдельный лист выводить информацию об остатках товара в ООО Хибины.
Смотрим файл, станет ясней) на первом листе таблица для заполнения, на 2-ом для рассветов остатков.

Если будет еще и сумма остатков считаться - будет совсем замечательно)  
Изменено: venom51 - 28.05.2015 09:36:16
Сумма произведений с исключением позиций
 
Описание в файле.
СУММЕСЛИ не подходит т.к. много наименований = длинная формула + возможны новые наименования.
Необходимо исключить именно одно определенное наименования из подсчета суммы произведений.
Желательно формулой, а не макросом. Доп.столбцы возможны для расчетов, которые можно скрыть.
// В одной строке не может 2 раза повторятся "Наименование 1" т.е. никогда не будет Донором и Акцептором одновременно.  
Изменено: venom51 - 19.05.2015 12:08:58
Случайное (рандомное) уменьшение числа на процент от этого числа
 
Добрый день, прошу помочь разобраться как можно сделать формулу которая будет случайным образом уменьшать список чисел на 5-9%  процент может быть и дробным (5,3%)  По файлу думаю задача станет яснее.  
Подтянуть цены с других листов, ВПР не работает
 
Помогите разобраться почему формула ВПР выводит ошибку Н/Д файл не крепился выложил на ЯД файл (архив 1 мб, сам файл 5 мб)
Необходимо подтянуть цены из листов НМС, СЗ, ФАРМАЦИЯ на листы Расчет цены ФЛ и Расчет цены РЛ
сделал для листов НМС именованный диапазон НМС и т.д. все авно ошибка вылазит, непонимаю

Поиск в ВПР желательно бы конечно делать по двум столбцам, а не только техническим характеристикам, но еще и по МНН. Это возможно?

Файл не в какую не лепился к форуму При сохранении файла произошла ошибка. (видимо большеват даже в архиве 500 кб)
Распределение количества товара по учреждениям с общим лимитом.
 
Условия: имеются N-учреждений с заявками на товар(ы), закуплено определенное количество товара для всех учреждений (лимиты)
сумма заявок от учреждений всегда больше чем фактически закуплено товара. т.е. Лимиты меньше чем заявленное кол-во.

Как распределить товар между учреждениями пропорционально? Может как то вычислять коэффициент для уменьшения на каждый товар? или процентным соотношением? Под конец рабочего дня я уже придумать не могу как это должно выглядеть.

надеюсь в файлике все понятно и наглядно. синим выделена область куда должна вставляться формула и тоже некоторые пояснения.  
Макрос для подсветки текущей даты в таблице
 
Имеется: столбец с датами
Задача: выделять мерцанием ячейки с текущей датой (изменением цвета например)

Условное форматирование не подходит так как таблица и так разукрашена всевозможными цветами.
На просторах интернета нашел такой макрос
Мерцающая ячейка в Excel:
Код
Sub BlinkingCell()
    Static intCalls As Integer
    If intCalls < 10 Then
     intCalls = intCalls + 1
     If Range("A1").Interior.Color <> RGB(255, 0, 0) Then
      Range("A1").Interior.Color = RGB(255, 0, 0)
     Else
      Range("A1").Interior.Color = RGB(0, 255, 0)
     End If
     Application.OnTime Now + TimeValue("00:00:01"), "BlinkingCell"
    Else
     Range("A1").Interior.ColorIndex = xlNone
     intCalls = 0
    End If
End Sub 
Пытался сам подредактировать, но вставить условия так и не смог, не понимаю как сделать чтобы мерцала именно нужная ячейка с датой (сегодня)

Помогите сделать. Макрос должен автоматически выполнятся при запуске, если это возможно, или по кнопке впринципе можно. и ячейки должны всегда мерцать.
Страницы: 1
Наверх