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

Страницы: 1 2 След.
Подсчитать количество дней, которое присутствует строка в таблице
 
А такой вариант cо сводной таблицей? Все даты обновлений видны.
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 
Да, открыты. Подправила недочеты, сообщение - Run-time error '1004': недопустимая ссылка консолидации

Модератора прошу исправить тему: Передача параметра для метода CONSOLIDATION через переменную.

Пока размер массива задала равный 3. Впоследствии, как я понимаю, размер массива должен изменяться динамически.
сейчас текст макроса вот такой:
Код
Sub consolid_otchet()
    
    Dim DFP As String                   ' папка размещения файлов
    Dim LST_OTCH As String              ' имя листа для размещения отчета
    Dim CountFl As Integer              ' количество исходных файлов для отчета
    Dim PoleOtch As String              ' строка с описанием диапазона ячеек, вкл в отчет
    Dim lngCount As Long                ' текущий номер обрабатываемого файла

    Dim arr_FL(3) As String             ' массив с полными именами исходных файлов

    dfn = Range("D1").Value
    DFP = Range("D5").Value
    
    LST_OTCH = Range("D7").Value
   
    PoleOtch = "Лист1'!R6C1:R32C22"
    lngCount = 0
    
    Set WB_osn = ActiveWorkbook   'осн файл
        
' почему-то урезается путь к файлам загрузки
' Эти строчки путь восстанавливают
    Range("D5").Select
    Selection.Cut Destination:=Range("D6")
    Range("D6").Select
    Selection.Cut Destination:=Range("D5")
    Range("D5").Select
    
    ChDir DFP
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show
        CountFl = .SelectedItems.Count

        For lngCount = 1 To CountFl
        
            pr_NoList = 0
                Imf_fl = .SelectedItems(lngCount)   ' Имя выбранного файла
               ' MsgBox Imf_fl                      ' вывод имени выбранного файла на экран
                Workbooks.Open Filename:=.SelectedItems(lngCount) ' Открытие файла
                Set WB = ActiveWorkbook   ' отчет отдела

' Заполнение массива
                arr_FL(lngCount - 1) = WB.Path & "[" & WB.Name & "]Лист1'!R6C1:R30C22"
               
                'MsgBox arr_FL(lngCount)
                
        Next lngCount
   
    WB_osn.Activate
    Worksheets(LST_OTCH).Activate
    Selection.Consolidate Sources:=arr_FL, Function:=xlSum
    
    End With
    
End Sub
Изменено: Luna2903 - 04.09.2022 20:07:33 (.)
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 
Код
Sub Макрос1()                                                                                                           '   
Dim mas(7) As Variant                                                                                                                                                                                                                        
 
 mas(0) = "'C:\OTCHET\[МР_6.xlsx]Лист1'!R1C1:R26C22"   
 mas(1) = "'C:\OTCHET\[город.xlsx]Лист1'!R1C1:R28C22"
 mas(2) = "'C:\OTCHET\[МР_1.xlsx]Лист1'!R1C1:R26C22"                                                                    
 mas(3) = "'C:\OTCHET\[МР_2.xlsx]Лист1'!R1C1:R26C22"                                                                    
 mas(4) = "'C:\OTCHET\[МР_3.xlsx]Лист1'!R1C1:R26C22"                                                                    
 mas(5) = "'C:\OTCHET\[МР_4.xlsx]Лист1'!R1C1:R26C22"                                                                    
 mas(6) = "'C:\OTCHET\[МР_5.xlsx]Лист1'!R1C1:R26C22"                                                                    
                                                                                                                                                                                            
  Selection.Consolidate Sources:=mas,   Function:=xlSum
End sub


Замечания исправила, но  на результат не повлияло. Этот вариант я тоже прошла еще до обращения на форум. Сообщение "Метод Consolidate из класса Range завершен неверно".   Именно такой вариант как Вы привели, я и пытаюсь реализовать, но пока не получилось. Что я делаю не так?
Изменено: Luna2903 - 04.09.2022 16:15:14 (.)
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 
Спасибо за отклик. Но главный вопрос у меня все же остался. Каждый из элементов массива, содержащие путь, имя файла и диапазон определены. Как формируется arFL? Мне кажется, в #11 и в примере ниже (взяла другое имя массива) подход одинаковый. В первом случае указаны 2 элемента, во 2м- 7. М.б. и другое количество.  Возможен ли здесь универсальный вариант?



Код
Sub Макрос1()                                                                                                           '                                                                                                                                                                
 Dim mas(40) As Variant                                                                                                                                                                                                                         

 mas(1) = "'C:\OTCHET\[город.xlsx]Лист1'!R1C1:R28C22" 
 mas(2) = "'C:\OTCHET\[МР_1.xlsx]Лист1'!R1C1:R26C22"                                                                    
 mas(3) = "'C:\OTCHET\[МР_2.xlsx]Лист1'!R1C1:R26C22"                                                                    
 mas(4) = "'C:\OTCHET\[МР_3.xlsx]Лист1'!R1C1:R26C22"                                                                     
 mas(5) = "'C:\OTCHET\[МР_4.xlsx]Лист1'!R1C1:R26C22"                                                                     
 mas(6) = "'C:\OTCHET\[МР_5.xlsx]Лист1'!R1C1:R26C22"                                                                     
 mas(7) = "'C:\OTCHET\[МР_6.xlsx]Лист1'!R1C1:R26C22"                                                                                                                                                                                               
  Selection.Consolidate Sources:=Array(mas(1), mas(2), mas(3), mas(4), mas(5), mas(6), mas(7)),   Function:=xlSum
End sub
Изменено: Luna2903 - 04.09.2022 15:15:20 (.)
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 
Попытаюсь объяснить. В консолидированный отчет включаются файлы, выбранные пользователем. Для консолидации отбирается единый для всех диапазон (у меня - R1C1:R26C22)
Файлов может быть 5, а может  и 15. В примере #3  (строка 4) указаны 2 диапазона, может быть и больше.  Поскольку  количество файлов - величина переменная, то переменная arFl должна формироваться в цикле.
Здесь мне и нужна помощь (не в написании цикла как такового), а чтобы
Worksheets("Sheet1").Range("A1").Consolidate Sources: ... источник данных правильно определялся.
Изменено: Luna2903 - 04.09.2022 13:40:57 (.)
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 
если arFL заменить на Array( arFl(1), arFl(2)) то все работает. Но проблема в том, что я не знаю заранее количество файлов, которые надо включить в отчет. И если
Array( arFl(1), arFl(2))  заменить на AllFl=" arFl(1), arFl(2)", где arFl(i) - полное имя диапазона, то выдает ошибку.  
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 
А язвить обязательно?

Добавила файлы (в т.ч. с данными для консолидации). На листе "Настройки" кнопка для запуска макроса.
Изменено: БМВ - 04.09.2022 11:18:39
Передача параметра для объекта КОНСОЛИДАЦИЯ через переменную, Как в макросе аргумент Array передать через переменную
 

Уважаемые знатоки! Подскажите, пожалуйста, можно ли в макросе аргумент Array (то, что в скобках) передать через переменную, а не явно?

Хотелось бы формировать программно, т.к. имена файлов м.б. разными. Споткнулась там, где не ожидала. Если вместо "Sheet2!R1C1:R37C6",   "Sheet3!R1C1:R37C6" ставлю имя переменной (напр, arr_FL), то выдает ошибку.

Код
Sub Макрос_Otchet()
'
Worksheets("Sheet1").Range("A1").Consolidate _
    Sources:=Array( _
                    "Sheet2!R1C1:R37C6", _
                    "Sheet3!R1C1:R37C6" _
                ), _
    Function:=xlSum

End Sub
Сравнение двух строк автоматом
 
Мне кажется, что сводная таблица вполне подойдет
Сумма всех чисел в текстовой строке, Найти сумму всех чисел в текстовой строке
 
Увы! Для себя я могу позволить на 2010 делать, а в подразделениях - только 2003.



Еще раз всем СПАСИБО!
Изменено: Luna2903 - 28.02.2022 12:24:58
Сумма всех чисел в текстовой строке, Найти сумму всех чисел в текстовой строке
 
у меня 0 получается

Нужный результат  - пока только через макрос и регулярные выражения.
Хотелось бы понять, почему предложенные формулы у меня не работают.
Сумма всех чисел в текстовой строке, Найти сумму всех чисел в текстовой строке
 
Спасибо большое! Нашла еще вот это   https://mister-office.ru/formuly-excel/extract-number-from-string.html#03, но предложенная формула массива
{=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(СЦЕП(ЕСЛИ(ЕЧИСЛО(--ПСТР(A2;СТРОКА($1:$94);1));ПСТР(A2;СТРОКА($1:$94);1);" ")));" ";"-")} выдает нули (ввожу через Ctrl+Shift+Enter)

СЦЕП исправила на СЦЕПИТЬ, как надо диапазон строк откорректировать - не поняла.
Изменено: Luna2903 - 28.02.2022 11:08:26
Сумма всех чисел в текстовой строке, Найти сумму всех чисел в текстовой строке
 
Когда вставила предложенную формулу - во всех строках  - 0
Сумма всех чисел в текстовой строке, Найти сумму всех чисел в текстовой строке
 
Добрый день! Помогите, пожалуйста, составить формулу для нахождения суммы всех чисел ( в общем случае они могут и отсутствовать, тогда - 0) в текстовой строке.  
Как выбрать список студентов по номеру группы
 
Определение состава группы через сводную таблицу (если использование ВПР - необязательное условие)
Макрос сравнения двух списков на разных листах в одной книге
 
Добрый день! А почему эту задачу нельзя решить через ВПР?
Формула РАБДЕНЬ (в моём варианте) признаёт рабочим первое число месяца, если оно попадает на сб или вс
 
Если использовать РАБДЕНЬ.МЕЖД и прибавить 1 к последней дате предыдущего месяца, а не 0 к 1 числу расчетного месяца - тогда получается.
в январе первый рабочий день - 14 января
в мае - 4 мая

Код
=РАБДЕНЬ.МЕЖД(ДАТА(год;МЕСЯЦ(месяц&"1");1)-1;1;1;праздники)
Изменено: Luna2903 - 27.12.2021 15:38:39
Слияние ворд эксель. Как отправить по почте файлы и чтобы слияние сохранилось?
 
Да, конечно РАССЫЛКИ.  
Слияние ворд эксель. Как отправить по почте файлы и чтобы слияние сохранилось?
 
В Word для подключения источника данных
ССЫЛКИ-Выбрать получателей-Ввести существующий список
Я поняла, что у адресата исходные данные могут редактироваться, поэтому просто отправить результат слияния нельзя.
Удалить из текста цифры слева
 
разделить текст по столбцам.  
Проверка соответствия строк между двумя таблицами с учетом наличия в одной из них объединенных ячеек
 
Я не увидела связи с моим вопросом.
Проверка соответствия строк между двумя таблицами с учетом наличия в одной из них объединенных ячеек
 
Добрый день! помогите, пожалуйста, составить формулы для сравнения двух таблиц - прайса и акта выполненных работ.
Условия следующие:
1. На листе "АКТ" из столбца B (оборудование) ищем соответствующий раздел на листе "ПРАЙС".
2. Если найдено,то в соответствующем разделе прайса ищем указанные значения из столбца D,E.,F

В столбце B на листе "АКТ" строки объединены.

Адреса ячеек, до значения которых надо добраться указала для 2 и 8 позиций.

спасибо.
Слияние WORD+EXCEL, как в макросе (VBA) использовать фильтр в режиме завершения
 
Мне кажется, что я описАла задачу и проблему с которой встретилась достаточно подробно. И не понимаю, что я должна переформулировать.
У каждого свое видение. Подскажите  как, на Ваш взгляд, будет правильно.  
Изменено: Luna2903 - 28.04.2020 14:51:04
Слияние WORD+EXCEL, как в макросе (VBA) использовать фильтр в режиме завершения
 
Тему обозначила, как я ее вижу. Если Вы считаете по-другому, подскажите. Сама изменить формулировку затрудняюсь.
Слияние WORD+EXCEL, как в макросе (VBA) использовать фильтр в режиме завершения
 
Объясните, пожалуйста, что я не так сформулировала/написала. Какие правила форума нарушила?
Слияние WORD+EXCEL, как в макросе (VBA) использовать фильтр в режиме завершения
 
Код
Sub delenie_na_fio()

    Dim imf_save As String
    Dim pole_otd As Integer
    Dim put_fl As String
               
put_fl = "D:\Work\Заявления\"
                n = 0
                
On Error Resume Next
  ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
  Do
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
            .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        
        pole_fam = ActiveDocument.MailMerge.DataSource.DataFields(2).Value
        pole_otd = ActiveDocument.MailMerge.DataSource.DataFields(3).Value
        pole = pole_otd & " " & pole_fam

        Application.StatusBar = pole
            imf_save = put_fl & pole & " заявление.doc"

        End With
        .Execute Pause:=False
    
    End With
    
    ActiveDocument.SaveAs FileName:= _
        imf_save, FileFormat:= _
        wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
        True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
        False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False
    ActiveDocument.Close
    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord

                n = n + 1
       Loop Until n = ActiveDocument.MailMerge.DataSource.RecordCount

End Sub
Изменено: Luna2903 - 27.04.2020 14:49:04
Слияние WORD+EXCEL, как в макросе (VBA) использовать фильтр в режиме завершения
 
Да, встроенными получается. В результате все сформированные документы  формируются в один файл, а мне хотелось бы сформировать "именные" файлы. Если запускаю макрос,  то этот фильтр  не виден.

Макрос, который получился - ниже.
Изменено: Luna2903 - 27.04.2020 14:23:06
Слияние WORD+EXCEL, как в макросе (VBA) использовать фильтр в режиме завершения
 
Добрый день!  Создала в Word документ ("Заявление.doc) c использованием данных из таблицы Excel  в режиме слияния. Следующий шаг - макросом каждый полученный документ сохранила в отдельном файле. Все работает, если в режиме слияния обрабатываются ВСЕ строки таблицы - на каждого человека, указанного в таблице с исходными данными формируется "именное" заявление (это сделано для уменьшения объема работы пользователям и снижения кол-ва ошибок).
Вопрос знатокам- как установить в макросе фильтр, чтобы в цикле проходить только записи, отмеченные V (режим "изменить список получателей")?  
окно "Прогрессия" средствами VBA, вывести на экран окно "Прогрессия" средствами VBA
 
Дубль нечаянно получился.  как удалить  - не вижу.

За ответ - спасибо!
Изменено: Luna2903 - 06.02.2020 10:26:26
окно "Прогрессия" средствами VBA, вывести на экран окно "Прогрессия" средствами VBA
 
Добрый день! Подскажите, как можно вывести окно "Прогрессия " средствами VBA. Можно, конечно, создать свою форму и использовать метод  DataSeries, но хотелось бы по максимуму использовать средства  EXCEL.
Страницы: 1 2 След.
Наверх