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

Страницы: 1 2 3 4 След.
Запуск файла Excel при получении определенного письма в Outlook
 
МатросНаЗебре, добавил, ошибка пропала, но и файл перестал открываться...
что-то не так?
Запуск файла Excel при получении определенного письма в Outlook
 
МатросНаЗебре, думаю обойдусь именем пользователя.

но видимо код вставил не так, макрос ругается на строку:
Private Sub objInboxItems_ItemAdd(ByVal item As Object)
Запуск файла Excel при получении определенного письма в Outlook
 
МатросНаЗебре, огромное спасибо, работает!
а можно добавить ещё не только указание темы, на которую реагирует макрос, но ещё и e-mail, с которого приходит данное письмо?
Запуск файла Excel при получении определенного письма в Outlook
 
МатросНаЗебре, я наверное что-то сделал не так? Вставил Ваш код в новый модуль оутлука и вторая и третья строки горят красным.
и где в коде указать е-майл и тему письма, на которые будет реагировать макрос?
я к сожалению не силен в макросах, учусь... Буду признателен, если объясните немного подробнее, как воспользоваться Вашим кодом.
Запуск файла Excel при получении определенного письма в Outlook
 
Уважаемые форумчане, добрый день!
Я понимаю, что тут обсуждаются взаимодействия с Excel, но всё же спрошу, так как для решения потребуется знание VBA.

Есть необходимость исполнять удалённо макрос Excel на рабочей машине.
Придумал такой вариант: присылать на почту в Outlook 2013 письмо с определенного ящика и с определенной темой, при получении этого письма в Outlook срабатывает макрос запуска файла Excel, находящегося в определенной папке на жестком диске. А далее уже в этом файле настроить срабатывание макроса при открытии файла.

Макрос Excel, срабатывающий при открытии файла, у меня есть.
Проблема с макросом для Outlook. Можете помочь с ним?
Условное форматирование ячеек
 
Добрый день, форумчане!
Столкнулся с проблемой, которую не могу решить.
Робот формирует отчет в 1С, сохраняет его в файл, далее открывает вчерашний сформированный файл отчета, запускает макрос, который устанавливает на лист условное форматирование по сравнению ячеек сегодняшнего листа со вчерашним, чтобы измененные ячейки закрашивались желтым цветом.

Далее робот начинает обрабатывать информацию в другой программе и тупо копировать оттуда все подряд даты и вставлять их в новый отчет.

Задумка в том, что если дата изменилась, то результат должен быть закрашен желтым с помощью условного форматирования.
А по факту каждая введенная дата роботом в ячейку (даже если она идентична уже существующей дате в ячейке) закрашивается желтым по условному форматированию. Стоит вручную войти в закрашенную ячейку и нажать Enter, закраска пропадает.
Что за мистика?
Кусок выгрузки во вложении.
Может стоит как-то макрос доработать?
Во время обработки и вводе роботом дат на обоих листах формат ячеек - дата. Изначально в выгрузке отчета из 1С формат ячеек - общий, но робот меняет формат этих столбцов на дату.
 
Поиск строки с наименьшим значением по условию
 
Здравствуйте, уважаемые форумчане!
И снова обращаюсь к вам за помощью.
Есть отчет реестра договоров с разными статусами и датами присвоения этих статусов. По каждому номеру договора может быть несколько разных статусов.
Меня интересует определенный статус "Загружен", я по этому статусу фильтрую отчет.
Но проблема в том, что каждый договор может быть несколько раз "Загружен", а мне нужно построить отчет, чтобы в нем были строки с более ранним сроком "Загружен".
Другими словами, мне необходимо знать дату первой загрузки каждого договора, а остальные строки скрыть.
Не могу придумать формулу определения первой строки статуса "Загружен".
Пример во вложении. Зеленым выделены строки, которые мне нужны в отчете.
Многоуровневая сортировка в зависимости от результатов
 
МатросНаЗебре, благодарю, отлично работает!!!
Многоуровневая сортировка в зависимости от результатов
 
Здравствуйте, уважаемые форумчане!
возникла необходимость постоянно в таблице делать сортировки строк. В данный момент сортировка происходит ручным перетаскиванием строк. Хотелось бы это как то автоматизировать.
При попытке сделать настраиваемую сортировку выходит не то, что хотелось бы.
Сначала сортирую по одному столбцу (статус), а далее надо бы сортировать другие столбцы в зависимости от статуса. То есть по одному столбцу с определенным статусом, по другому столбцу с другим статусом...
Во вложении пример, отсортированный с помощью настраиваемой сортировки, и видно, что в статусе заказано дата доставки совсем не соответствует сортировке.
Сортировка макросом динамического столбца
 
testuser, Мои познания VBA, к сожалению, стремятся к нулю.
У меня не получилось переделать свой код по вашему примеру.

Вот весь код целиком и файл для примера во вложении.
Помогите, пожалуйста, его переделать.

Интересуют функции после комментариев с восклицательными знаками, а именно:
- сортируем таблицу по столбцу AT (этот столбец имеет заголовок "Заголовок 45") от старых к новым. Столбец с данными может сдвинуться и стать AU, но заголовок останется неизменным.
- В столбце K (11 слева по счету) поставить автофильтр по текстовому значению "ЦФО". Этот столбец также может стать например L (12 слева по счету), но заголовок у него все равно будет неизменный - "Филиал".


Буду очень благодарен за помощь!

Код
Sub Отчёт_сроки()
    On Error Resume Next
    ' название подпапки, в которую по-умолчанию будет предложено сохранить файл
    Const REPORTS_FOLDER = "Отчёты\"
    ' создаём папку для файла, если её ещё нет
    'MkDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
    ' выбираем стартовую папку
    ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
r = Format(Now(), "dd.mm.yyyy")
    ' вывод диалогового окна для запроса имени сохраняемого файла
    Filename = Application.GetSaveAsFilename(r & " сроки.xlsx", "Отчёты Excel (*.xlsx),", , _
                                             "Введите имя файла для сохраняемого отчёта", "Сохранить")
    ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл
    If VarType(Filename) = vbBoolean Then Exit Sub

    ' копируем активный лист (при этом создаётся новая книга)
    Err.Clear: ActiveSheet.Copy: DoEvents
    If Err Then Exit Sub    ' произошла какая-то ошибка при попытке копирования листа

    ' убеждаемся, что активной книгой является копия листа
    If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then
    
'убираем все формулы в таблице
     Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
 ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!сортируем таблицу по столбцу AT "Заголовок 45" автофильтром от старых к новым
     ActiveWorkbook.Worksheets("План закупки").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("План закупки").AutoFilter.Sort.SortFields.Add Key _
        :=Range("AT7:AT2000"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("План закупки").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ставим в автофильтре столбца K (11-й слева по счету) "Филиал" отбор по содержанию фразы "ЦФО"
     ActiveSheet.Range("$A$7:$CV$2000").AutoFilter Field:=11, Criteria1:="*" & "ЦФО" & "*", Operator:=xlAnd
   
    
        ' сохраняем файл под заданным именем в формате Excel 2003
        'ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
        
        ' сохраняем файл под заданным именем в формате XLSX
        Application.DisplayAlerts = False ' отключаем вывод предупреждения о потере точности
        ActiveWorkbook.SaveAs Filename, xlOpenXMLWorkbook ' xlOpenXMLWorkbook = формат XLSX
        Application.DisplayAlerts = True ' обратно включаем вывод предупреждений

        ' закрываем сохранённый файл
        ' (удалите следующую строку, если закрывать созданный файл не требуется)
        ' ActiveWorkbook.Close False
    End If
End Sub

Сортировка макросом динамического столбца
 
Здравствуйте, друзья!
Есть макрос, который открывает файл, берет из него определенный лист, сохраняет в отдельный документ, сортирует по определенному столбцу и ставит автофильтр.
Вот кусок кода, записанного рекордером

Код
' Сортируем таблицу по столбцу AT от старых к новым
ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Add Key _
        :=Range("AT7:AT2000"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
'Ставим в автофильтре стобца K (11-й слева по счету) отбор по содержанию фразы "ЦФО"
     ActiveSheet.Range("$A$7:$CV$2000").AutoFilter Field:=11, Criteria1:="*" & "ЦФО" & "*", Operator:=xlAnd

Так вот проблема в том, что колонки первоначального листа могут иногда сдвигаться. То есть требуемая для сортировки информация из колонки AT может переместиться в колонку AU. И колонка K может сдвинуться на L. Ну, думаю, смысл понятен.

Когда меняется структура первоначального листа - известно. И мне руками не сложно в макросе поправить адрес диапазона.

Но этот макрос могут запускать разные пользователи, которые понятия не имеют, что такое VBA. И вот для них я планирую сделать ячейки, в которых они будут текстом указывать эти диапазоны, а макрос будет обращаться к этой ячейке, брать оттуда адрес диапазона или колонки и подставлять их в код, например через Cells (*,*)
Это реально? У меня не получается.

Или есть другой, более изящный способ? Требуемую колонку можно идентифицировать, например, по заголовку или по уникальному номеру колонки под заголовком.
Если нужно, могу набросать файл-пример.
Макрос сохранения файла с определенным именем из ячейки файла
 
,выяснился небольшой нюанс: При выборе папки для сохранения, находящейся на сетевом ресурсе типа "\\srv-008\share\blablabla\" макрос открывает первый файл для выполнения над ним операций, потом не сохраняя его в указанную папку выдает сообщение "Готово". Соответственно папка для итоговых файлов пустая.
Папка с файлами для обработки находится там же, на сетевом ресурсе. Если выбрать папку для сохранения на локальном компьютере - всё работает без нареканий.
Где-то что-то надо наверное дописать в коде?
Макрос сохранения файла с определенным именем из ячейки файла
 
Я подозревал, что надо удалить wb.Save, но при этом макрос переставал работать. Про добавить False я не догадался.

Премного благодарен за помощь!
Изменено: Александр Иванов - 21.02.2022 11:46:50
Макрос сохранения файла с определенным именем из ячейки файла
 
, Благодарю Вас за помощь! Макросы отлично работают.

Только один момент: при выполнении макроса файлы с исходными данными из папки для обработки также изменяются.
Как бы сделать так, чтобы файлы из папки для обработки оставались неизменными, а все действия с файлами производились в папке для сохранения?
Макрос сохранения файла с определенным именем из ячейки файла
 
,На первый взгляд всё работает, огромное спасибо!
Правда зря вы два макроса объединили в один - это два разных действия, выполняемых в разное время)))

Сначала я проверяю даты внутри файлов с помощью макроса call_GetSubFolders2, потом обрабатываю информацию, а уже потом с помощью макроса Get_All_File_from_SubFolders ставлю в файл новую дату, фильтры, пароли и т.д. и сохраняю под новым именем)))
Надо было мне сразу это пояснить в первом посте.
Я пытался удалить второй макрос в примере, но они оба завязаны вместе и у меня не получилось.

Ну ничего, буду разбираться. В любом случае СПАСИБО вам за помощь!
Макрос сохранения файла с определенным именем из ячейки файла
 
Здравствуйте, уважаемые гуру!
У меня есть файл с макросом, по вызову которого открывается диалоговое окно выбора папки, в котором находятся однотипные файлы, с которыми потом производятся некоторые действия. По завершению этих действий файл сохраняется, закрывается, открывается следующий файл и так до тех пор, пока не переберет все файлы в указанной папке.
Появилась необходимость эти файлы не просто сохранять и закрывать, а сохранять каждый без всяких диалоговых окон в другую папку (путь к которой будет задаваться в диалоговом окне в начале запуска макроса) с именем файла, которое макрос будет брать из конкретной ячейки этого же файла (например, D1).
Помогите, пожалуйста, доработать код, так как малейшие попытки вставить куски кода, найденные в подобных темах, вызывают ошибки в работе макроса.

Если необходимо - во вложении находится файл с макросами и папка с несколькими файлами, с которыми макрос работает.
Код
Option Explicit
 
Dim objFSO As Object, objFolder As Object, objFile As Object
 
Sub Get_All_File_from_SubFolders()
    Dim sFolder As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    GetSubFolders sFolder
    Set objFolder = Nothing
    Set objFSO = Nothing
    Application.ScreenUpdating = True
End Sub

Private Sub GetSubFolders(sPath)
    Dim sPathSeparator As String, sObjName As String
    Dim wb As Workbook
    Set objFolder = objFSO.GetFolder(sPath)
    For Each objFile In objFolder.Files
        If Replace(objFile.Name, objFSO.GetBaseName(objFile), "") Like ".xls*" Then
            'открываем книгу
            Set wb = Application.Workbooks.Open(sPath & objFile.Name)
            'действия с файлом: Снимем пароль
            wb.Sheets(1).Unprotect "123"
            'Запишем на первый лист книги в ячейку А1 текущую дату
            wb.Sheets(1).Range("A1").Value = Format(Now, "dd.mm.yyyy")
            'Снимем все возможные автофильтры
            On Error Resume Next: wb.Sheets(1).ShowAllData: On Error GoTo 0
            'Закрасим ячейки цветом
            Range("O5:AB1000").Interior.Color = RGB(255, 255, 204)
            'Ставим пароль по определенному условию
            wb.Sheets(1).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowInsertingRows:=True, AllowFiltering:= _
        True, Password:="123"
            wb.Close True
        End If
    Next
    For Each objFolder In objFolder.SubFolders
        GetSubFolders objFolder.Path & Application.PathSeparator
    Next
End Sub

Private Sub GetSubFolders2(ByVal sPath As String, Optional ByVal lCounter As Long = 0)
    Dim sPathSeparator As String, sObjName As String
    Dim wb As Workbook
'    Dim lCounter As Long: lCounter = 0
    Set objFolder = objFSO.GetFolder(sPath)
    For Each objFile In objFolder.Files
        If Replace(objFile.Name, objFSO.GetBaseName(objFile), "") Like ".xls*" Then
            'открываем книгу
            Set wb = Application.Workbooks.Open(sPath & objFile.Name)
            'действия с файлом
            With ThisWorkbook.Worksheets("НЕ ВХОДИТЬ!!!").Range("A1")
                .Offset(lCounter).Value = wb.Sheets(1).Range("A1").Value
                .Offset(lCounter, 1).Value = objFile.Name
                lCounter = lCounter + 1
            End With
            wb.Close True
        End If
    Next
    For Each objFolder In objFolder.SubFolders
        GetSubFolders2 objFolder.Path & Application.PathSeparator, lCounter
    Next
End Sub 'GetSubFolders2

Sub call_GetSubFolders2()
    Dim sFolder As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    With ThisWorkbook.Worksheets("НЕ ВХОДИТЬ!!!")
        .Range("A1", .Cells.SpecialCells(xlCellTypeLastCell)).EntireColumn.Resize(, 2).ClearContents
    End With
    
    GetSubFolders2 sFolder
    Set objFolder = Nothing
    Set objFSO = Nothing
    Application.ScreenUpdating = True
End Sub
Задать динамический диапазон строк (между знаками + в столбце)
 
Адаптировал Ваш вариант. Работает.
Спасибо!!!
Изменено: vikttur - 24.09.2021 13:24:00
Задать динамический диапазон строк (между знаками + в столбце)
 
Здравствуйте, уважаемые форумчане!
Есть табличка учёта оплаты по договорам.
В табличке серая строка - это как бы главная строка договора, в которой отображены итоговые суммы. После серой строки идут подстроки, в которых указываются сведения о платежах, которые суммируются в серую строку выше.
Каждый новый договор начинается серой строкой с помощью условного форматирования путём внесения в колонку А знака +.

Получается,каждый новый договор - это обязательный + в колонке А.
Также в этой серой строке есть определенные формулы в колонках F, H, J и K, которые распространяются на подстроки конкретного договора.

То есть, чтобы добавить новый договор, я копирую любую серую строку и вставляю ниже в пустую строку.
Проблема в том, что каждый договор имеет разное количество оплат, соответственно разное количество строк, которые относятся к этому договору.
И копируя серую строку и вставляя ее ниже мне приходится каждый раз подгонять формулы под диапазон подстрок договора.

Можно ли как то модифицировать эти формулы, чтобы они использовали диапазон от одного + до следующего + в колонке А?
Бывает такое, что кто либо из коллег забывает исправить диапазоны формул и они начинают считать суммы неверно.

В примере, думаю, будет более понятно.
Изменено: vikttur - 24.09.2021 11:35:16
Одинаковые действия с множеством файлов xlsx
 
Цитата
JayBhagavan написал:
и вписали какую-то отсебятину
Прошу прощения, это после того, как у меня не получилось запустить макрос, я стал экспериментировать а вернуть в исходное состояние, указанное Вами, забыл.
Цитата
JayBhagavan написал:
На будущее, лучше пакуйте файлы в ZIP-архив, т.к. RAR не везде можно открыть без помощи стороннего ПО.
Принято)

Спасибо огромное! Макрос работает идеально.
Одинаковые действия с множеством файлов xlsx
 
Во вложении любые несколько файлов с введенной датой в ячейке A1
Файл сборщик - это собственно пустой файл с макросом, который при запуске снимает пароль с листа, вводит дату в ячейку, закрашивает определенный диапазон ячеек и паролит лист снова.
Хотелось бы ПЕРЕД записью новой текущей даты в ячейку А1 чтобы даты (А1) из всех файлов записались в файл сборщик (желтым выделил куда их записывать) а в соседнюю ячейку название файла (зеленым выделил), чтобы понимать какая дата к какому файлу относится.
То есть можно например так: Макрос открыл файл, скопировал А1 и имя файла в сборщик, записал новую дату, закрасил цветом, произвел действия с паролем и закрыл. Открыл следующий...
Ну либо так: Сначала со всех файлов собрать информацию в сборщик, а потом уже записывать, закрашивать, паролить... Можно разными макросами, не принципиально.
Цель - филиалы предприятия присылают отчеты и важно понимать от какого числа данный отчет. Они могут по ошибке взять файл от другой даты и прислать. Для этого и хотелось бы в сборщик собрать сначала даты для контроля.
Изменено: vikttur - 16.07.2021 15:00:28
Одинаковые действия с множеством файлов xlsx
 
JayBhagavan, Я видимо что-то не так делаю. Код не работает, ничего не происходит:
Код
Private Sub GetSubFolders2(sPath)
    Dim sPathSeparator As String, sObjName As String
    Dim wb As Workbook
    Dim lCounter As Long: lCounter = 0
    Set objFolder = objFSO.GetFolder(sPath)
    For Each objFile In objFolder.Files
        If Replace(objFile.Name, objFSO.GetBaseName(objFile), "") Like ".xls*" Then
             'открываем книгу
            Set wb = Application.Workbooks.Open(sPath & objFile.Name)
            'действия с файлом
            With ThisWorkbook.Worksheets("Лист1").Range("A1")
        .Offset(lCounter).Value = wb.Sheets(1).Range("A1").Value
        .Offset(lCounter, 1).Value = objFile.Name
        lCounter = lCounter + 1
    End With
            wb.Close True
        End If
    Next
    For Each objFolder In objFolder.SubFolders
        GetSubFolders2 objFolder.Path & Application.PathSeparator
    Next
End Sub
Изменено: Александр Иванов - 16.07.2021 11:26:57
Одинаковые действия с множеством файлов xlsx
 
Информация для интересующихся подобным.
В итоге у меня работает следующий макрос:

Код
' Purpose   : http://www.excel-vba.ru/chto-umeet-excel/prosmotret-vse-fajly-v-papke/
'---------------------------------------------------------------------------------------
Option Explicit
 
Dim objFSO As Object, objFolder As Object, objFile As Object
 
Sub Get_All_File_from_SubFolders()
    Dim sFolder As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    GetSubFolders sFolder
    Set objFolder = Nothing
    Set objFSO = Nothing
    Application.ScreenUpdating = True
End Sub
Private Sub GetSubFolders(sPath)
    Dim sPathSeparator As String, sObjName As String
    Dim wb As Workbook
    Set objFolder = objFSO.GetFolder(sPath)
    For Each objFile In objFolder.Files
        If Replace(objFile.Name, objFSO.GetBaseName(objFile), "") Like ".xls*" Then
            'открываем книгу
            Set wb = Application.Workbooks.Open(sPath & objFile.Name)
            'действия с файлом
            'Запишем на первый лист книги в ячейку А1 - текущая дата
            wb.Sheets(1).Range("A1").Value = Format(Now, "dd.mm.yyyy")
            'Меняем цвет ячеек A4:D8
            Range("A4:D8").Interior.Color = RGB(100, 150, 250)
            'Ставим пароль на текущий лист каждого файла 123
            wb.Sheets(1).Protect "123"
            wb.Close True
        End If
    Next
    For Each objFolder In objFolder.SubFolders
        GetSubFolders objFolder.Path & Application.PathSeparator
    Next
End Sub
Я запускаю его из специально созданного файла (который находится в любой другой папке), макрос спрашивает путь к папке, в которой лежат изменяемые файлы, потом в каждый файл добавляет в ячейку A1 текущую дату, закрашивает диапазон ячеек A4:D8 и ставит пароль на лист 123.

А как бы сделать отдельный макрос, который предварительно со всех этих файлов в файл с макросом вытащил бы текущее значение ячеек А1 и название соответствующего файла в столбик?

Например, есть таблицы:
файл1 (в ячейке А1 стоит дата 01.01.2021)
файл2 (в ячейке А1 стоит дата 01.05.2021)файл3 (в ячейке А1 стоит дата 01.06.2021)

Файл с макросом. При запуске макроса в этой таблице заполняются данные:
А1 - 01.01.2021 В1 - файл1
А2 - 01.05.2021 В2 - файл2
А3 - 01.06.2021 В3 - файл3

Подскажите, пожалуйста решение?
Рекордером не получилось изобразить, так как он пишет действия с конкретными файлами, а не со всеми файлами из указанной папки.
Одинаковые действия с множеством файлов xlsx
 
Дмитрий(The_Prist) Щербаков,Идеально! Отличное решение. Странно, почему  я раньше сам не нашел.
Спасибо!
Одинаковые действия с множеством файлов xlsx
 
Добрый день, уважаемые форумчане!
Есть множество файлов (около 25 таблиц xlsx), абсолютно одинаковых по структуре, но разные по наполнению.
Раз в неделю требуется открыть каждый файл, в ячейке A1 вбить текущую дату и диапазон ячеек O6:AB300 залить определенным цветом.
Вручную это несколько утомительно и отнимает много времени.
Думаю как бы это автоматизировать, не используя в этих файлах макросы, так как эти файлы присылают с разных мест и на удаленных компьютерах не факт что разрешены макросы.
Изменено: vikttur - 13.07.2021 12:45:35
Динамический путь к файлу в формуле
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Единственная формула, которая делает из текста рабочую ссылку - ДВССЫЛ
А можно показать на моем примере применение ДВССЫЛ?
Может быть я как нибудь смогу совместить для себя PowerQuery, а для остальных из сведенной таблицы уже ДВССЫЛ.
Динамический путь к файлу в формуле
 
Спасибо, я конечно посмотрю. Но для этого необходим установленный Power Query. На всех компьютерах, использующих эти таблицы, его может не быть.
А тут вроде как рабочая формула, которую надо немного "допилить".
Динамический путь к файлу в формуле
 
Здравствуйте!
Есть на сервере папка с несколькими одинаковыми по структуре файлами, отличающимися друг от друга городом в названии файла.
Есть общая таблица, в которую хотелось бы подтягивать данные из этих файлов из папки. Но подтягивать надо из файла, соответствующего городу в ячейке строки.
Например: в общей таблице в ячейке M5 находится слово Белгород, значит в ячейку N5 нужно подставить данные из файла на сервере \\srv\путь_файла\Белгород - информация.xlsx
Я придумал формулу:
Цитата
{=ИНДЕКС('\\srv\путь_файла\Белгород - информация.xlsx'!ОБЩАЯ;ПОИСКПОЗ($L$1&$E5;'\\srv\путь_файла\[Белгород - информация.xlsx]ШАБЛОН ДЛЯ ЗАПОЛНЕНИЯ'!$B$5:$B$219&'\\srv\путь_файла\[Белгород - информация.xlsx]ШАБЛОН ДЛЯ ЗАПОЛНЕНИЯ'!$C$5:$C$219;0);19)}

Она прекрасно работает, но минус в том, что приходится ручками прописывать каждый раз город при протягивании формулы на вновь добавляемые строки.


Помогите пожалуйста, как в этой формуле заменить слово Белгород на содержимое ячейки M5 и чтобы она выдавала требуемый результат?
Подбор диапазона значений по условию
 
Спасибо всем, кто откликнулся!
На свежую голову пришло решение проблемы.
Если кому интересно, то я сделал так:

Вставил два скрытых технических столбца с формулой типа: =ЕСЛИ(C6="Покупка";K6;) и =ЕСЛИ(C6="Продажа";K6;), а уже в большой формуле сослался на диапазоны этих скрытых столбцов.

Изменено: Александр Иванов - 07.01.2021 16:32:36
Подбор диапазона значений по условию
 
Боюсь не подойдет, так как диапазон будет просуммирован. А мне нужно просто определить диапазон с частью значений по условию "Покупка" для использования этого диапазона в формуле ТЕКСТ.
Или я Вас не правильно понял?
Подбор диапазона значений по условию
 
Доброго времени суток, друзья!
Когда-то на этом форуме мне помогли с формулой, которая подсчитывает стоимость товара из базы данных по методу FIFO. Она прекрасно работает, но сейчас мне необходимо эту формулу немного модернизировать, но никак не приходит в голову, как это можно сделать.

Требуется в диапазоны данных (эти диапазоны выделены в формуле) брать только строки с определенным условием, а именно строки с текстом "Покупка" в колонке С (см. пример)

Цитата
=ЕСЛИ(ЕСЛИ(C6="Продажа";K6;$T$1);СУММПРОИЗВ((ТЕКСТ(R$3:R6-S6+ЕСЛИ(C6="Продажа";K6;$T$1);"[>0]0,000;\0")-ТЕКСТ(R$3:R6-S6;"[>0]0,000;\0")-ТЕКСТ(R$3:R6-K$3:K6-S6+ЕСЛИ(C6="Продажа";K6;$T$1);"[>0]0,000;\0")+ТЕКСТ(R$3:R6-K$3:K6-S6;"[>0]0,000;\0"))*L$3:L6*(A$3:A6=A6))/ЕСЛИ(C6="Продажа";K6;$T$1);)

СУММЕСЛИ не подходит, так как нужна не сумма значений в диапазоне по условию, а именно сам текст этих значений.
Ну либо придется переписывать формулу как-то по другому, если такой вариант не возможен.

Для справки: Табличка показывает в колонке "Цена безубытка" стоимость товара (при внесении информации о количестве продаваемого товара), по которой товар можно продать, не уходя в минус при расчётах по методу FIFO.
Страницы: 1 2 3 4 След.
Наверх