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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 879 След.
Из множества одинаковых бланков Excel создать сводную таблицу
 
Вот спросил (скопировал что выше написал) - должно сработать, только дописать цикл поиска значений, и вывод на лист:
Код
Вот макрос на VBA, который открывает все .xlsx файлы в указанном каталоге, выполняет поиск ячеек на активном листе и извлекает данные из соседней ячейки:

Sub ProcessXlsxFiles()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim searchValue As String
    Dim foundCell As Range
    Dim result As String
    Dim folderPath As String
    
    ' Укажите путь к папке
    folderPath = "C:\YourFolderPath\" ' Замените на ваш путь
    
    ' Создаем объект FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)
    
    ' Значение для поиска
    searchValue = "YourSearchTerm" ' Замените на искомое значение
    
    ' Перебираем файлы в папке
    For Each file In folder.Files
        If LCase(fso.GetExtensionName(file.Name)) = "xlsx" Then
            ' Открываем файл
            Set wb = Workbooks.Open(file.Path)
            Set ws = wb.ActiveSheet
            
            ' Поиск всех вхождений
            Set foundCell = ws.Cells.Find(What:=searchValue, LookIn:=xlValues, LookAt:=xlWhole)
            If Not foundCell Is Nothing Then
                Dim firstAddress As String
                firstAddress = foundCell.Address
                Do
                    ' Получаем значение из соседней ячейки (справа)
                    result = foundCell.Offset(0, 1).Value
                    ' Здесь можно обработать результат, например, вывести или сохранить
                    Debug.Print "Найдено в " & file.Name & ", ячейка " & foundCell.Address & ": " & result
                    
                    ' Ищем следующее вхождение
                    Set foundCell = ws.Cells.FindNext(foundCell)
                Loop Until foundCell.Address = firstAddress Or foundCell Is Nothing
            Else
                Debug.Print "В файле " & file.Name & " значение не найдено"
            End If
            
            ' Закрываем файл без сохранения
            wb.Close SaveChanges:=False
        End If
    Next file
    
    ' Освобождаем объекты
    Set fso = Nothing
    Set folder = Nothing
    MsgBox "Обработка завершена!"
End Sub
</xaiArtifact>

**Инструкции:**
1. Замените `folderPath` на путь к вашей папке (например, `"C:\Documents\ExcelFiles\"`).
2. Укажите `searchValue` — значение, которое нужно искать в ячейках.
3. Макрос открывает каждый .xlsx файл, ищет `searchValue` на активном листе, извлекает значение из ячейки справа от найденной и выводит результат в окно Immediate (Ctrl+G в редакторе VBA).
4. Для сохранения результатов вместо `Debug.Print` можно добавить код для записи в файл или лист.

**Примечания:**
- Убедитесь, что путь к папке заканчивается слешем `\`.
- Макрос не сохраняет изменения в файлах.
- Если значение не найдено, выводится сообщение об этом.
- Для работы с `FileSystemObject` не требуется подключения дополнительных библиотек.
Из множества одинаковых бланков Excel создать сводную таблицу
 
YUdavihin, Доброго.
Можно попросить ИИ написать макрос - открыть в цикле все xlsx файлы каталога, и на активном листе выполнить серию поиска ячеек, и брать данные в соседней ячейке от найденной. И писать на лист, или в массив и затем его на лист (массив можно создать по количеству файлов каталога).
Ну или запрос PQ, но там уже наверное нужно по конкретному листу писать, а если он вдруг чуть поплывёт то больше шансов накосячить.
Графики с переключателем по датам
 
Добрый день.
Судя по картинке - нужен макрос.
Но вообще можно без макросов делать срезами, только данные удобнее иначе иметь, и скорее всего нужно будет доработать в модели.
Можно всё делать руками, без PQ
Перенос даты и времени в ячейке с сохранением формата данных
 
Verticalx, там уже изначально в ячейке не дата, а текст
Добавить в Числовой фильтр Между, что Если ноль, то любое число.
 
Как вариант (если не обязательно применение именно фильтра)  - делать работу срезами. Имхо удобнее в использовании.- легко менять параметры фильтрации.
Изменено: Hugo - 29.06.2025 23:58:34
Фильтрация данных, Фильтрация данных
 
Kuzya_228_227, вот как раз ФИЛЬТР() и поможет. Вместо ВПР().
Если конечно есть в Вашей версии Экселя.
А для старых есть в копилке форума UDF
[ Закрыто] /, /
 
Добрый день.
В названии про перенос, в вопросе про поиск.
Искать там в С нечего (там нет этих значений), что куда и в каком виде переносить собрались тоже непонятно. И почему переносить, а не копировать/отображать?
Нужно пояснить, и с названием поработать.
Ну а так есть ведь уже фильтр, вот там вписываете/выбираете и получаете результат...
Ошибка при копировании листов в другую книгу (VBA)
 
В 365 работает. Когда есть 5 листов в книге с кодом.
Найти и выделить соответствия учитывая дату
 
Цитата
ESavin написал:
даже если даты все преобразовать в дату
- точно преобразовалось? Или просто формат ячейки поменяли? Проверьте например в режиме "показать формулы"
Таблица из 2 колонок, в которой будут автоматически обновляться данные по продажам и ассортименту, Необходимо, чтобы в Excel данные из одной таблицы обновлялись в другой, при каждом обновлении исходной книги excel, но с условием!
 
Цитата
Nik4 написал:
Необходимо, чтобы ... данные ... обновлялись ... при каждом обновлении исходной книги excel,
- думаю формулы так не сработают.
Ну вот буквально так как требуется в ТЗ - например Петров открыл отчёт, а через пару минут Васечкин со своего компа обновил данные источника.
Да и макросом думаю не так просто это обеспечить...
Сохранение части данных предыдущего месяца в текущем месяце, при автоматическом создании аналогичной таблицы для нового месяца, Перенос данных не подлежащих редактированию
 
Lana83,  создавайте базу с данными по объектам с датами, и тяните нужное в эти синие ячейки из неё, всё в файле уже есть - адрес, вид счётчика, дата
Очистка\обнуление значений впр\просмотрХ но сохранив формулы
 
Цитата
nynu3oud написал:
Все что я хотел, просто выделить диапазон, нажать условно что-то (или сделать короткую манипуляцию или условно включить макрос какой)
- можно так макросом ставить формулы, когда есть источник. А пока нет - нет и формул.
Ну или раз уж макрос - им и извлекать данные из источника, без использования формул. Как вариант.
Вообще существует и такой подход (погуглить что такое ETL простыми словами) - рано утром ещё до начала работы начальства скрипт собирает все новые данные (из новых файлов) в базу (трансформируя что нужно в необходимый вид), по которой затем в любое время можно смотреть любой отчёт.
Если данных мало - это ETL можно выполнить в любое время. А когда много - оно может и пару часов отрабатывать, потому шедулер...
Заполнить верхние ячейки значениями из нижних, сортамент прямоугольный профиль гост 30245-2003
 
Цитата
александр Ишора написал:
заполнить нижние ячейки всем понятно как
- как вариант - переверните таблицу ))
Добавить столбец с индексами строк, отсортировать, заполнить, убить формулы, отсортировать, убрать столбец с индексами.
VBS против Application.Run
 
Цитата
tula19 написал:
Когда я добавил в ваш файл 1.xlsm строчку ThisWorkbook.Close ( как в моем случае) , то на этом процесс закончился.
- подозреваю что Вы не знаете что такое ThisWorkbook...
Очистка\обнуление значений впр\просмотрХ но сохранив формулы
 
Цитата
nynu3oud написал:
Не подходит.
- не понял почему.
Ну не найдёт ВПР данные в пустом файле, вернёт то что прописано в ЕСЛИОШИБКА.
Дадите вместо пустого файл с данными - получите данные.
Очистка\обнуление значений впр\просмотрХ но сохранив формулы
 
nynu3oud, Как костыль - иметь набор ПУСТЫХ файлов-заглушек 2-31.
Первого числа убираете всё из каталога, кладёте туда файл с данными за первое число и 30 "заглушек"
Очистка\обнуление значений впр\просмотрХ но сохранив формулы
 
Вся беда в организации данных.
Сливайте всё в одну базу, с добавлением даты, можно это делать одним отдельным процессом, ну или вручную копипастом раз  в день.
И тяните в свои отчёты из этой базы, она всегда будет в наличии.
Заодно и другой функционал появится - сможете аналитику делать, графики разные...
ВПР: сумма всех соответствующих значений в одной ячейке
 
Wergulla, ВПР тут не поможет, а вот СУММ может посчитать:
Код
=СУММ(($B$2:$B$21=E2)*($C$2:$C$21))

В старых версиях вводить массивно, или вместо СУММ писать СУММПРОИЗВ
Почему условие выполняется не корректно?
 
OTK76, там в схеме такие данные сохранены:
<c r="E69" s="22"><f>(C69-B69)*1000</f><v>5.0000000000007816</v></c><c r="F69" s="23"><f>(D69-B69)*1000</f><v>5.0000000000007816</v></c>
Поиск нескольких значений с выводом определенной ячейки, Поиск нескольких значений с выводом определенной ячейки
 
В примере нет в результате этих "2шт." - это нужно или уже нет?
А так ещё варианты - можно сделать макросом, или массивную UDF написать, что по сути тоже макрос, но функция.
В новых версиях может быть можно использовать новые функции ГРУПППО() или СВОДПО(), но не изучал, не использую.
При получение данных из другой книги убрать значение 0
 
Включаете запись, делаете замену, выключаете запись.
При получение данных из другой книги убрать значение 0
 
Запишите рекордером, добавьте в конец кода.
При получение данных из другой книги убрать значение 0
 
Можно не показывать 0 настройкой листа.
Можно скрыть форматом.
Можно заменой 0 на ничего.
Или можно доработать формулу, но ячейка уже не будет empty при такой реализации.
P.S. Хотя наверное можно пробежаться по массиву и заменить 0 на empty, нужно попробовать.
Изменено: Hugo - 05.06.2025 09:10:20
Умный фильтр ячеек в Excel, Фильтр в Excel всех ячеек с одним или с несколькими значениями только по одному условию
 
Сергей Ребров, когда не было ОБЪЕДИНИТЬ() использовали UDF, есть тут в копилке
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=2&TID=10&TITLE_SEO=10&MID=465075#message465075
Подсчёт количества закрашенных ячеек, Не работает автообновление пользовательской функции
 
Только на изменение цвета никак формулу не обновить.
А вот например на переход на другую ячейку есть событие.
При нажатие на ячейку вставить её данные в InputBox (VBA)
 
Затруднит, лето, солнце...
Давайте Вы сперва.
При нажатие на ячейку вставить её данные в InputBox (VBA)
 
Привет!
Макросом события выделения/перехода на ячейку.
ВПР по частичному совпадению текста в ячейке
 
Я не вводил массивно, он сам...
У меня 365
ВПР по частичному совпадению текста в ячейке
 
Инна Л., Здравствуйте.
Как вариант в файле.
Как создать макрос для эксель суммирование листов, Как создать макрос для эксель суммирование листов
 
Мой код легко доработать если количество и наименования листов будут часто меняться - в начале кода перебрать все листы и создать эти массивы с их названиями, заодно сразу и сверить чтоб были пары. И далее использовать эти массивы вместо тех постоянных что сейчас в коде.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 879 След.
Наверх