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

Страницы: 1
Обработчик файлов: определить диапазон вставки и вставить формулу VBA
 
Доброго времени суток

долго очень собирал обработчик файлов (к сожалению могу только пытаться использовать найденные макросы и править их для собственных нужд). Так и сейчас. В примере файл "Обработка файлов Excel", который перебирает все файлы в папке "Остаток" и вставляет туда модуль с пользовательской функцией для определения уровня строки в обрабатываемых файлах (для примера вложил файл "Файл для обработки" (а так их много, но они однотипные). Проблема в следующем: нужно чтобы пользовательская функция вставлялась в столбец А с ячейки А4 до последней не пустой строки которая определяется по столбцу В (то есть если функцию вставить в А4 , то формула должна быть  в ней =УРОВЕНЬСТРОКИ(В4) и так до последней строки в столбце B.)

Помогите пожалуйста.
Код
'//Процедура обрабатывает одинаковым способом все файлы Excel в каталоге
Sub TestProc()
    Dim FSO As FileSystemObject
    Dim sourceFolder As Folder
    Dim fileItem As File
    
    Dim objVBProj As Object, objVBComp As Object, objCodeMod As Object
    Dim sModuleName As String, sFullName As String
    Dim sProcLines As String
    Dim lLineNum As Long
    
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set sourceFolder = FSO.GetFolder("C:\Users\Admin\Desktop\Остатки")
    
    For Each fileItem In sourceFolder.Files
        Dim currentBook As Workbook
        Dim source As Worksheet
        
        Set currentBook = Workbooks.Open(fileItem.Path, False, False)
        
        'добавляем новый стандартный модуль в активную книгу
    Set objVBComp = ActiveWorkbook.VBProject.VBComponents.Add(1)
    'получаем ссылку на коды модуля
    Set objCodeMod = objVBComp.CodeModule
    'узнаем количество строк в модуле
    '(т.к. VBA в зависимости от настроек может добавлять строки деклараций)
    lLineNum = objCodeMod.CountOfLines + 1
    'текст всставляемой процедуры
    sProcLines = "Function УРОВЕНЬСТРОКИ(ЯЧЕЙКА As Range) As Long" & vbCrLf & _
        "УРОВЕНЬСТРОКИ = ЯЧЕЙКА.Rows(1).OutlineLevel" & vbCrLf & _
        "End Function"
    'вставляем текст процедуры в тело нового модуля
    objCodeMod.InsertLines lLineNum, sProcLines
        
        
        Set source = currentBook.Sheets(1)
        Range("A4").FormulaR1C1 = "=УРОВЕНЬСТРОКИ()"

        
        'Columns("A:A").Select
   'Selection.Copy
  '  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
        Application.DisplayAlerts = False
        currentBook.Close True
        Application.DisplayAlerts = True
        
        Set source = Nothing
        Set currentBook = Nothing
    Next
    
End Sub
Корректно вычислить % отклонения в общих итогах сводной, Корректно вычислить % отклонения в общих итогах сводной
 
Доброго времени суток, подскажите пож-та в сводной таблице два вычисляемых объекта это ОТКЛОНЕНИЕ и % ОТКЛОНЕНИЯ, но в ИТОГАХ % отклонения суммируется и выходит некорректный результат - 0,88% , хотя он должен считаться как -5 / 510 = - 0,98% . Подскажите пожалуйста как корректно вычислить % отклонения в общих итогах сводной. Спасибо. Пример приложил.
Добавить вычисляемое поле в сводную таблицу созданную посредство PQ, Добавление поля отклонения кол-ва и % в сводную таблицу
 
Добрый день, во вложений файл с таблицей обработанной через PQ и созданной сводной. Подскажите пож-та как добавить вычисляемые поля с количественным отклонением (Кол.откл. = Утв.- План) и процентным по след. формуле Откл.%. =ЕСЛИ(Кол.откл.=0;ЕСЛИОШИБКА(Кол.откл./Утв.;0);ЕСЛИОШИБКА(Кол.откл./Утв.;1)) Как на листе как нужно (сохранив структуру сводной). Спасибо.
Построение "сводной" через Power Query план/факт с правильным порядком месяцев при 5 летнем планировании, Как выставить правильный порядок месяцев в сводной созданной через PQ
 
Доброго времени суток.

Подскажите как быть в следующей ситуаций:
Есть Файл с примером во вложений в котором есть Листы: Приобретение_план_факт - это изначальный лист из которого мне нужно было сделать базу данных для сводной. Но так как там прописаны название месяцев (янв, фев, .......), а сверху годы, ничего лучше не придумал как разделить на два листа (Приобретение_план и приобретение_факт) и потом уже через PQ собрал Базу_данных_свод (При этом поставил не названия месяцев, а даты 01.01.2020 вместо янв 2020 года и т.д., чтобы месяца встали в ряд в сводной.
Но вся соль в том что у меня Факт дан только по годам без месяцев (нужно обязательно показать месяцы в сводной). А при изменений типа данных на Даты в редакторе PQ он факт 2020 года воспринял как 01.01.2020 и в сводной поставил на январь.
Возможно ли как нибудь на прямую из изначального листа собрать базу данных. Или все ж если идти по моему (весьма прискорбному пути), как сделать так чтобы факт 2020 не вставал на январь.

Спасибо заранее.
(Наверное можно макросами, но хотелось бы через PQ)
Извлечь Дату из текста в соседнюю ячейку в Power Query, Извлечь Дату из текста в соседнюю ячейку в Power Query
 
Добрый день, подскажите пож-та как извлечь Дату из ячейки с текстом. Во вложений пример. (страница есть - это исходник, а страница как должно быть - то что нужно получить). Спасибо.
Импорт данных из Word в Excel через Power Query, Импорт данных из Word в Excel через Power Query
 
Добрый день пытался импортировать из word в эксель посредством PQ, но он выдает ошибку. Подскажите возможно ли выгрузить информацию через PQ!? Допустим такой простенький файл (для примера).
1.docx (11.42 КБ)  
Power query выдает ошибку при динамическом названий столбца, Power query выдает ошибку при динамическом названий столбца
 
Добрый день, подскажите пож-та как быть если в файле "склад" в ячейке F3 всегда динамически меняется дата (прописана формула: ="Остаток"&ТЕКСТ(СЕГОДНЯ();"ДД.ММ.ГГГГ.")) и из этого файла через PQ вытягивается информация в файл "свод", но при изменений даты и соответственно значений в столбце, PQ не находит этот столбец (т.к. он ищет 09.10.2019, а завтра допустим будет уже стоять 10.10.2019) Спасибо.Свод.xlsx (19.56 КБ) Свод.xlsx (19.56 КБ)  
Изменено: Ov198 - 09.10.2019 14:40:48
Путь к папке без названия книги, Путь к папке без названия книги
 
Доброго времени суток. Подскажите как получить путь к активной книге без названия самой книги.

Public Function РАСПОЛОЖЕНИЕКНИГИ() As String
   РАСПОЛОЖЕНИЕКНИГИ = ActiveWorkbook.FullName
End Function

выдает с именем файла: Y:\Заявки\2019\Юг\Оплата.xlsm (нужно убрать Оплата.xlsm)

Спасибо.
Закрепление заголовка (шапки) в Listbox, Закрепление шапки в Listbox
 
Добрый день, помогите пож-та закрепить заголовок в Listbox в файле. Спасибо.
Умножить через каждые N дней, умножение
 
Добрый день, подскажите пож-та как умножить "остаток" на тариф через каждые три дня от заданного числа. Допустим если первый день 01.01.2019 то следующее день которое надо умножить на тариф (то есть не день, а кол-во в этот день) 04.01.2019 и затем 07.01.2019. Вообщем через каждые три дня от первого дня. Спасибо большое за участие заранее. Демо таблицу накидал в примере.
Подбор суммы из чисел, Подбор суммы из чисел
 
Добрый день, во вложений файл с возможностью подбора желаемой суммы из чисел в столбце А, критерий указываются в столбце D, подскажите возможно ли подправить макрос так чтобы он работал без критерия "Кол-во чисел выборки", т.е. убрать его.  Спасибо.
Чтобы не было двух "x" в столбце, Чтобы не было двух "x" в столбце
 
Добрый день, подскажите пож-та как переписать макрос так чтобы в столбце B проставлять значение "x" как и в столбце А (столбцы должны быть независимые) Спасибо. Пример во вложении.
Изначально пример нашел тут: https://www.planetaexcel.ru/techniques/22/93/

сам макрос:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Long
Dim str As String

If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Then
    str = Target.Value
    Application.EnableEvents = False
    r = Cells(Rows.Count, 2).End(xlUp).Row
     Range("A2:A" & r).ClearContents
    Target.Value = str
End If
  Application.EnableEvents = True
End Sub


Фиксация размера фильтра
 
Добрый день, подскажите возможно ли настроить размер окна фильтра (т.е. фильтр можно растягивать по своему усмотрению, но после выбора любо пункта он сбрасывается на дефолтные размеры). Как его зафиксировать? Спасибо.

P.s. подобный вопрос был, но ответа там не было. https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=29118
Имя листа как "переменная" в коде макроса по условию if ..... then
 
Добрый день, если возможно подскажите пож-та. Ниже приведен макрос в котором нужно сделать так чтобы в строке    With Sheets("Лист1") название листа было переменное. По формуле If ....... Then ... Не знаю как правильно прописать, но думаю примерно так. Правда пробовал не выходит. Спасибо.

Допустим так:
Код
Dim x as  Sheets

If нужное условие 1 Then x = "Лист1"
If нужное условие 2 Then x = "Лист2"

дальше код
With Sheets(x)
дальше код
End If
End If

  If Flag = False Then Me.Label19 = "Не найдено"
End Sub


Код
Sub Finder()
Dim i As Long, LastRow As Long, Flag As Boolean
    If Basis = "" Then Exit Sub
    With Sheets("Лист1")
        LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To LastRow
            Debug.Print .Cells(i, 1)
            If .Cells(i, 1) = Basis1 Then
                
                    Me.Label19 = .Cells(i, 2)
                    iRow = i
                    Flag = True
                    Exit For
                End If
        Next
    End With
    If Flag = False Then Me.Label19 = "Не найдено"
End Sub
Корректное удаление выбранной строки на листе через listbox
 
Добрый день, в примере во вложений файл с возможностью удаления строк через ListBOx проблема в том что сейчас макрос удаляет не выбранные элемент в listbox, а первое совпадение по первому столбцу. Спасибо заранее. Часть кого прилагаю (весь файл во вложений):
Код
Private Sub CommandButton3_Click()
'   ---------------------------------
    Dim i%, rng As Range
'   ---------------------------------
    For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) Then
            Set rng = Range("a1:a" & wbSht.Rows.Count).Find(Me.ListBox1.List(i))
            Rows(rng.Row).Delete
        End If
    Next i
    Me.ListBox1.Clear
    With wbSht
        i = .Range("a" & .Rows.Count).End(xlUp).Row
        If i > 2 Then
            Me.ListBox1.List = .Range(.[b2], .Range("a" & i)).Value
        Else: If Not IsEmpty(.[a2].Value) Then Me.ListBox1.AddItem .[a2]
        End If
    End With
End Sub
Изменено: Ov198 - 07.10.2018 07:26:56
Как отобразить 2 столбца в Listbox без использования RowSource?, Отображение двух столбцов в listbox
 
Добрый день, подскажите пож-та как изменить код макроса в вложенном файле, чтобы отобразить два столбца в ListBox при сохранении всего  функционала диалогового окна.  Через Properties - columncount не сработало. Спасибо.  
Изменение списка Listbox с удалением строк таблицы-источника
 
Доброго времени суток, уважаемые форумчане. Не смог воплотить идею с удалением значений в Listbox с мультивыбором (знаний не хватает). Во вложений файл "Пример1" где есть мультивыбор значений для дальнейшего выделения через UserForm (нажав кнопку "Ок"), столкнулся с двумя проблемами для меня:

1. Как сделать чтобы вместо "выделения" значений, можно было их удалить.
2. Как сделать чтобы список в Listbox подтягивался всегда с определенного листа (Как в примере2 вложил для примера.) Сейчас он подтягивает с активного листа. То есть надо чтобы он файле "Пример1" подтягивал с Листа1 при вызове формы на Листе2.

Спасибо за участие. Файлы прилагаю.  
форма Ввода / Редактирования / Удаления данных, редактирование и удаление данных из базы данных
 
Доброго времени суток. Предположим есть форма ввода данных для листа "БД" в приложенном файле для которой сделана форма ввода данных на листе "Таблица", т.к. Лист "БД" будет защищен и скрыт, возникла необходимость редактировать данные и удалять их при помощи вызова формы "ввода", но без отображения Листа "БД" (Все данные с листа будут при помощи формул перетаскиваться в Лист "Таблица"). То есть если в форме "ввода" ввести выбрать допустим Склад №3 и Молоко и Ввести количество 500., затем при необходимости удалить или редактировать число (такой же комбинаций) также выбрать  Склад №3 и Молоко и корректировать кол-во) . Заранее спасибо.
Изменено: Ov198 - 19.09.2018 15:11:27
Зависимый выпадающий список ComboBox в UserForm VBA, Зависимый выпадающий список ComboBox в UserForm VBA
 
Доброго времени суток, подскажите пож-та как можно сделать такую же форму ввода как в примере, но без справочного листа (суть в том чтобы значения ComboBox2 зависели от выбранного в ComboBox1. Например в  ComboBox1 выбрана одежда то в ComboBox2 будет доступен выбор из списка одежда). Все делал через именование диапазонов (думал что поможет создание именованных констант, но почему т не работает). Подскажите как быть. Заранее спасибо. Файл во вложений сделал как пример.
Преобразовать формулы в значения во всей книге
 
Доброго времени суток, подскажите макрос для преобразования формул в значения во всей книге. Нашел пример, где есть подсказка но к сожалению надо имена каждой страницы в макрос вводить (https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=11832). Подскажите как можно одним кодом преобразовать всю книгу. Спасибо.
НЕ удается открыть исходный файл сводной таблицы для обновления
 
Доброго времени суток, возникла проблема при "обновлений сводных таблиц" после отправки по почте. Выходит следующий текст "НЕ удается открыть исходный файл сводной таблицы ......... " (далее путь и название файла) . Как можно исправить читал разное на форумах, но мало что помогло или может я и не понял. Прочел на будущее что возможен вариант с тем чтобы пройти в параметры сводной таблицы далее в данные и убрать сохранять исходные данные вместе с файлом (но только не знаю будет ли это влиять на корректность работы сводных, если да то на что) Подскажите пож-та. Спасибо.
Изменено: Ov198 - 03.09.2018 09:59:04
Вставка надписи с повторением цвета значения ячейки, Вставка надписи с повторением цвета значения ячейки
 
Доброго времени суток, подскажите возможно ли сделать так чтобы текст из ячейки и цвет текста, который зависит от условного форматирования (например из столбца A как в примере) повторялся в вставке надписи (вставка - надпись ) как в примере. Спасибо.
Добавление данных в сводную с фильтром, Добавление данных в сводную с фильтром
 
Добрый день, во вложений файл с примером: на основе "умной таблицы" сделана сводная таблица с добавлением в область "фильтры" значения "на конец" и отфильтрованный по этому полю (убраны пустые ячейки по столбцу "на конец"), проблема в том что если добавить еще один "регион - восток" а затем обновить сводную таблицу, то в сводной не добавляется новое значение (это происходит из-за фильтра). Как можно это обойти, фильтр нужен обязательно или же нужно чтобы пустые значения не показывались (в оригинале много строк). Спасибо.  
Отобразить связанный рисунок через элемент управление "Флажок", Отобразить связанный рисунок через элемент управление "Флажок"
 
Добрый день, во вложений файл, подскажите макрос: нужно чтобы именованный диапазон   "экран" отображался на листе 1 как связанный рисунок по флажку (или Checkbox) по макросу. Спасибо.
Power bi free экспорт файла и просмотр на другом компьютере, Power bi free экспорт файла и просмотр на другом компьютере
 
Добрый день, подскажите если не покупать полные платные версий power bi, а использовать бесплатную возможно ли как то делиться отчетом с другими людьми?! Есть ли возможность выгрузки и импорта другому пользователю (поискал информацию, везде пишут что делиться можно, но только с платными версиями)?! Спасибо.
Фильтрация сводной по гиперссылке из списка, Фильтрация сводной по гиперссылке из списка
 
Добрый день. Подскажите возможно ли по имени из списка (стр. список) сделать фильтрацию в сводной таблице (стр. сводная) при нажатий имени из списка в стр. список. Например нужно чтобы при нажатий Вадим сводная таблица в ячейке B2 отфильтровала данные по Вадиму и т.д. Если возможно подскажите как?! Спасибо.  Пример во вложений.
Поиск и извлечение уникальных значений (наименований ) по условию
 
Добрый день, к сожалению понял что сам не справлюсь так как макросы пишу по примеру и не всегда получается адаптировать. Задача в следующем: (файл во вложений) Нужно найти по условию в ячейке в стр. "заказ" уникальные значения в стр "таблица" (если наименования повторяются выводить одно, например: в заказе 3 есть два раза яблоки нужно вывести в список только 1 раз.) и так списком все уникальные товары в этом заказе. И также для каждого заказа. И если будет наглостью попросить скрыть пустые ячейки межу заказами = ). Спасибо искал нечто подобное на просторах сайта нашел вот что: https://www.planetaexcel.ru/techniques/2/81/

НО нужен именно макрос. Спасибо!
Динамическая ссылка в макросе, Изменение адреса ячейки (ссылки на нее) в макросе
 
Добрый день. Подскажите как написать адрес ячейки в макросе чтобы действия макрос выполнял именно в этой ячейке, то есть менялся адрес в макросе, если между ними добавить строку. Например: с ячейки А1 копировать значение в А2 ( ..... range (A1).Copy , ......range(A2).Paste) и если добавить строку стало (А3).Paste ......такое возможно?  Нашел статьи только о возможности записи макроса в макрорекодоре с относительными или абсолютными адресами .спасибо .
Умножение на умножение на коэффициент
 
Доброго дня. Если помножите буду признателен. Написал макрос для умножения ячеек на коэффициент с сохранением изначальных значений как формулы. НО он не дает умножить на не целые числа (например 1,06  и подобные и сам не умножает на такие ж не целые числа) Подскажите почему и как это сделать. Сам макросы обычно пишу по примеру, поэтому не смог разобраться. спасибо.  
Страницы: 1
Наверх