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

Страницы: 1 2 След.
Удаление пустых подкаталогов в родительском каталоге., Очистка каталога от подкаталогов без файлов
 
Добрый день!
Код ниже удаляет пустые каталоги в указанном родительском.
Как доработать макрос, чтобы удаление производилось на всю
глубину вложенности подкаталогов. В приложенной структуре
каталогов должны удалиться каталоги 2 и 5.
Код удаляет только пустой подкаталог 2 с первого уровня
вложенности. Пустым считать каталог без файлов.

Код
Sub DeleteEmptySubfolders()
    Dim FSO, Folder, Subfolder As Object
    Dim FolderPath, UserName As String
    UserName = Environ("USERNAME")
    FolderPath = "C:\Users\UserName\Desktop\ÒÅÑÒ_\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Folder = FSO.GetFolder(FolderPath)

    For Each Subfolder In Folder.SubFolders
        If FSO.GetFolder(Subfolder.path).Files.Count = 0 Then
            Subfolder.Delete
        End If
    Next

    Set FSO = Nothing
    Set Folder = Nothing
    Set Subfolder = Nothing
End Sub

Изменено: aesp - 19.01.2024 11:50:41
Дубли значений ячеек, начиная со второго, Отобразить признак дублированного значения ячейки в столбце, начиная с второго
 
Доброго дня!
Есть рабочий код, который выявляет дубли значений ячеек в столбце. Помогите, пожалуйста, модифицировать код: нужно  для каждой группы дубликатов отображать признак "дубль", но только, начиная со второго значения ( т.е. все, кроме первого). В примере подсветил, как должно быть.

Код
Sub HighlightDuplicates()

Dim rng, cell As Range

Set rng = ActiveWorkbook.Sheets("дубли").Range("A1:A100")

For Each cell In rng.Cells

    If Application.WorksheetFunction.CountIf(rng, cell.Value) > 1 And cell.Value <> "" Then

        cell.Offset(0, 1).Value = "дубль"

    End If

Next cell

End Sub
Редактирование тегов внутри файла XML
 
Здравствуйте!
Необходимо макросом отредактировать группу файлов . xml из каталога (пример одного файла прилагаю): заменить все теги <value status="0"> на <value>.
Разумеется, все изменения нужно сохранить при закрытии файла.
Вроде подходящий фрагмент кода на форумах нашёл, однако, не работает. Библиотеку "Microsoft XML, 3.0" подключил. Прошу помощи в допиливании.


Код
Sub Replace_in_XML()
Dim TheFolder, TheFiles, AFile
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set TheFolder = fso.GetFolder("C:\Users\Desktop\Каталог\") ' путь к каталогу с xml
Set TheFiles = TheFolder.Files
For Each AFile In TheFiles
ReadXML (AFile)
Next
End Sub
Sub ReadXML(af As String)
Dim xml_doc As New DOMDocument
Dim nde_test As IXMLDOMElement
xml_doc.Load af
For Each nde_test In xml_doc.SelectNodes("<value status=""0"">")
  Debug.Print nde_test.SelectSingleNode("<value>").Text
Next
End Sub
Изменено: aesp - 14.10.2022 06:04:00
Поиск дубликатов файлов в каталогах (подкаталогах) и переименование дублей
 
Добрый вечер!

Прошу такой помощи по VBA, т.к. не смог найти решение в инете:
в структуре связанных каталогов могут находится дубликаты наименований файлов. Дублей может быть несколько в разных каталогах. Задача, указав родительский каталог, исключить дубли наименований, переименовав автоматически дубликаты, добавив к наименованию второго файла числовой индекс, например "Имя(2)", третьему "Имя(3)" и т.д. Первое имя из группы дублей оставить без изменения. Содержимое и размер дублей не анализировать.
Пример каталогов с файлами показываю.

Полное имя файла Путь
1.txt                         C:\Users\admin\Desktop\Каталог1\1.txt
2.txt                   C:\Users\admin\Desktop\Каталог1\2.txt
3.txt                 C:\Users\admin\Desktop\Каталог1\3.txt
3.txt                       C:\Users\admin\Desktop\Каталог1\Каталог2\3.txt
1.txt                        C:\Users\admin\Desktop\Каталог1\Каталог2\Каталог3\1.txt
2.txt                       C:\Users\admin\Desktop\Каталог1\Каталог2\Каталог3\2.txt
4.txt                       C:\Users\admin\Desktop\Каталог1\Каталог2\Каталог3\4.txt
Как "отловить" невидимое содержимое в ячейках
 
Добрый день!
В примере в пустых с виду ячейках есть содержимое, о чём указывает результат формулы СЧЁТЗ. Как узнать какой именно символ (ы) внутри? Как автоматически очищать такие псевдо пустые ячейки, ведь они могут идти не подряд?
Изменено: vikttur - 11.08.2021 16:12:53
Получить итог сводной таблицы по строкам исходной без подсчёта дубликатов значений
 
Доброго дня!

        В примере: есть позиции (стол, стул) и номера заявок (ABS00000). По каждой позиции могут быть несколько разных заявок, которые выполняют разные люди.
Сводная подсчитала 14 заявок, однако, уникальных всего 10. Результат должен = 10.
        Прошу помощи: как без макроса с помощью сводной таблицы получить итоги за исключением дубликатов заявок в разрезе позиций?
Изменено: vikttur - 11.07.2021 09:36:30
Превращение текста в ячейке в формулу макросом
 
Здравствуйте!
Подскажите, пожалуйста, есть ли возможность посредством макроса (нужно именно макросом!) заменить текст в ячейке на формулу. Записанный макрорекордером код не отрабатывает при запуске.
Нужно, например, текст в ячейке С1 "А1+В1" (без кавычек) заменить макросом на формулу =А1+В1
Поиск и перемещение всех файлов XLS* в отдельный каталог
 
Доброго дня!
Есть рабочий модуль, состоящий из двух связанных макросов. Модуль позволяет переместить (собрать)все файлы с расширением XLS* из каталогов любой вложенности в каталог ИТОГ на рабочем столе. Задача: помогите сделать один макрос из этих двух частей, выполняющий точно такую задачу. Тестовые файлы прилагаю. Благодарю!

Код
Option Explicit
 
Dim objFSO As Object, objFolder As Object, objFile As Object
Sub Get_XLS_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
    MsgBox "Файлы 'выдернуты' из всех указанных каталогов", vbInformation, "Гарантирую!"
End Sub
Private Sub GetSubFolders(sPath)
    Dim sPathSeparator As String, sObjName, UserName As String
    Dim wb As Workbook
    UserName = Environ("USERNAME")
    If Dir("C:\Users\" & UserName & "\Desktop\ИТОГ\", vbDirectory) = "" Then
    MkDir "C:\Users\" & UserName & "\Desktop\ИТОГ\"
    End If
    If Dir("C:\Users\" & UserName & "\Desktop\ИТОГ\XLS\", vbDirectory) = "" Then
    MkDir "C:\Users\" & UserName & "\Desktop\ИТОГ\XLS\"
    End If
    Set objFolder = objFSO.GetFolder(sPath)
    For Each objFile In objFolder.Files
        If Replace(objFile.name, objFSO.GetBaseName(objFile), "") Like ".xls*" Then
            'On Error Resume Next
            objFSO.MoveFile objFolder & "\*.xls*", "C:\Users\admin\Desktop\ИТОГ\XLS\"
        End If
    Next
    For Each objFolder In objFolder.SubFolders
        GetSubFolders objFolder.Path & Application.PathSeparator
    Next
End Sub
Изменено: aesp - 11.02.2021 05:39:53
Импорт содержимого группы файлов TXT на Листы Excel
 
Добрый день!
Прилагаю рабочий код, с помощью которого копируется содержимое файлов TXT в отдельные файлы Excel. Помогите, пожалуйста, доработать код, чтобы содержимое каждого выбранного текстового файла размещалось на отдельный Лист активной Книги, а имя новых Листов совпадало с именем файла TXT, откуда копируются данные.

Код
Option Explicit
Public Sub Alltext_to_exell()
    Dim oFD As FileDialog
    Dim x, lf As Long
Application.DisplayAlerts = 0
    'назначаем переменной ссылку на экземпляр диалога
    Set oFD = Application.FileDialog(msoFileDialogFilePicker)
    With oFD 'используем короткое обращение к объекту
    'With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True 'мультивыбор
        .Title = "Выбрать TXT-профили" 'заголовок окна диалога
        .Filters.Clear 'очищаем установленные ранее типы файлов
        .Filters.Add "Text files", "*.txt", 1 'добавляем возможность выбора текстовых файлов
        '.Filters.Add "Excel files", "*.xls*;*.xlsx", 2 'устанавливаем возможность выбора только файлов Excel
        .FilterIndex = 1 'устанавливаем тип файлов по умолчанию
        .InitialFileName = ThisWorkbook.Path & "\" 'назначаем папку отображения и имя файла по умолчанию
        .InitialView = msoFileDialogViewDetails 'вид диалогового окна
        If .Show = 0 Then Exit Sub 'показывает диалог
        'цикл по коллекции выбранных в диалоге файлов
        For lf = 1 To .SelectedItems.Count
            x = .SelectedItems(lf) 'считываем полный путь к файлу
            Workbooks.Open x 'открытие книги
        Next
    End With
Application.DisplayAlerts = -1
End Sub
Активировать крайний левый Лист активной Книги средствами VBA
 
Доброго дня!
Подскажите, пожалуйста, как в коде перейти на самый первый активный (видимый) Лист - Лист с наименьшим индексом? Нужно активировать крайний левый Лист активной Книги средствами VBA
Мне известны только переходы вперёд-назад...
Код
Sheets(ActiveSheet.Index + 1).Select 'на следующий Лист
Sheets(ActiveSheet.Index - 1).Select 'на один Лист назад
Сборка данных из таблиц в PQ, Отображение "опережающего" нуля в числах после сборки таблиц в запросах Power Query
 
Добрый день!
Собрал для примера три таблицы в Power Query (как учил Николай) - папка "таблицы"- двумя запросами в Power Query. При подтягивании данных из поля3 PQ "съедает" опережающие нули в числах (даже если они в формате текст"). Как победить, чтобы отображалось в Zapros2 так же, как в оригиналах таблиц?
[Чтобы Zapros2 корректно отработал на Вашем ПК, нужно заменить путь в запросе]
Преобразование формата ячеек в текстовый
 
Добрый день!
Есть столбец с числовыми данными, однако, формат ячеек Excel отображает как "(все форматы)".
Прошу помощи в том, как преобразовать формат ячеек столбца в "текст", чтобы сохранились все цифры, в т.ч. "опережающий" ноль.
Формула? Макросом?
Пример прилагаю.
Изменено: aesp - 11.03.2020 11:25:15
Поиск столбцов с датами и правка формата, Исправление формата столбцов с датами
 
Добрый день!
Есть фрагмент выгрузки данных, где ячейки столбцов с датами отображаются в ОБЩЕМ формате. Покажите, пожалуйста, как макросом найти все такие стобцы (могут находиться совершенно в различных столбцах) и исправить формат таких ячеек в КРАТКИЙ формат даты.
Пример прилагаю.
Удаление дублей строк и сцепка содержимого ячеек
 
Доброе время суток!

Задачка по преобразованию таблички в несколько тысяч строк.
В файле Пример показано, как может выглядеть исходная таблица (Лист1) и к какому виду нужно преобразовать (Лист2).
В исходной много строк с одинаковым содержимым, за исключением ячейки в крайнем правом столбце (№документа). Причём, количество повторов у разных строк различное. Нужно дубликаты строк удалить, одновременно заполнив правую ячейку новым содержимым - сцепив через "; " номера документов, указанных в задублированных строках.
Фильтрация строк таблицы по искомой дате в ячейках, Фильтрация строк таблицы по искомой дате в ячейках с учётом диапазона между датами
 
Приветствую!
Задача: в искомой таблице с данными есть два столбца с датами и временем начала операции.
Нужно, чтобы, при вводе конкретной даты в контрольную ячейку, таблица фильтровалась построчно и оставались видны строки не только с указанной датой, но и диапазонами дат, между которых искомая находится. Исходный лист и то, как будет выглядеть итог - показал на примере.
Как решить?
Всех благодарю заранее!
Фильтрация строк таблицы по ключевым адресам ячеек, Фильтрация по массиву адресов ячеек
 
Доброго дня!
Столкнулся с необходимостью быстрой построчной фильтрации "на лету" основной таблицы, расположенной на Листе1, по столбцу с указанными адресами ключевых ячеек на Листе2. Т.е. в перечне адресов есть, например, "G14", то в итоговой табличке останется строка №14 с выделенной ячейкой G14. Обе таблицы в формате "умных". В итоге по примеру должны отображаться 6 строк из 17 плюс шапка таблицы.
Решения подобной задачи на форуме не нашёл. Прошу помощи)
Копирование шапки при разбиении таблицы на листы, Доработка рабочего кода
 
Уважаемые, форумчане!
Подсмотрел на форуме код уважаемого, tester. Макрос разбивает таблицу по содержимому столбца по файлам.
Помогите, пожалуйста, доработать его в части: копирования шапки исходной таблицы  в каждый новый файл.
В примере разбор идёт по содержимому 1го столбца.


Код
Sub Разделить_по_книгам()
    Dim oDic As Object, arrData(), arrSeparateItems(), arrTemp(), i&, n&, m&, k&
 
    If MsgBox("Разделить данные по книгам?", vbQuestion + vbYesNo, "Вопрос") = vbNo Then Exit Sub
    Application.ScreenUpdating = False
    arrData() = Range("A1").CurrentRegion.Value
    Set oDic = CreateObject("Scripting.Dictionary")
    For i = LBound(arrData) To UBound(arrData)
        If Not oDic.exists(arrData(i, 1)) Then oDic.Add arrData(i, 1), arrData(i, 1)
    Next i
    arrSeparateItems() = oDic.items
    For n = LBound(arrSeparateItems) To UBound(arrSeparateItems)
        ReDim arrTemp(1 To UBound(arrData), 1 To UBound(arrData, 2))
        k = 0
        For i = LBound(arrData) To UBound(arrData)
            If arrData(i, 5) = arrSeparateItems(n) Then
                k = k + 1
                For m = LBound(arrData, 2) To UBound(arrData, 2)
                    arrTemp(k, m) = arrData(i, m)
                Next m
            End If
        Next i
        Workbooks.Add
        Range("A1").Resize(UBound(arrTemp), UBound(arrTemp, 2)).Value = arrTemp
        Columns("A:E").AutoFit
        Columns("B:B").HorizontalAlignment = xlLeft
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Right(arrSeparateItems(n), 10), xlExcel8
        ActiveWorkbook.Close SaveChanges:=True
    Next n
    Application.ScreenUpdating = True
    MsgBox "Данные разделены и сохранены в " & ThisWorkbook.Path & "\", vbInformation, "Конец"
End Sub
Изменено: aesp - 10.05.2019 19:43:20
Сохранение файла XML, открытого в Блокноте с именем из ячейки., Xml с именем из Xlsb
 
Помогите, пожалуйста, доработать код в части сохранения открываемого файла xml с наименованием из ячейки xlsbl файла. Пример прилагаю. Строчкой "ActiveWorkbook.SaveAs" не получается)
Копирование и вставка диапазона из файла Excel в файл Блокнота, Excel - Блокнот
 
Здравствуйте!
Подскажите, как вставить скопированный диапазон на Листе Exel и вставить его из буфера в шаблон текстового файла в "Блокнот" и сохранение с заполненного файла  с новым именем "Новый.txt"

Код
Sub Bloknot1()
'
Dim ReturnValue

    Sheets("Лист1").Select
    Range("E7:E20").Select
    Selection.Copy
'
ReturnValue = Shell("C:\Windows\system32\notepad.exe C:\Users\Papa\Desktop\Пустой.txt")

End Sub
Изменено: aesp - 24.03.2018 18:27:34
Поиск фрагмента текста с пробелами, Анализ текста в ячейке на наличие не верных разделителей фрагментов
 
Здравствуйте!

Ячейки столбца содержат текст, разделённый установленным сочетанием символов "ОДИНПРОБЕЛ>ОДИНПРОБЕЛ" (только такой разделитель!). Текст выгружен из базы данных.
Нужно с помощью формулы найти ячейки в которых один или более раз встречаются другие разделители, например, без пробелов ">"; или "НЕТПРОБЕЛА>ОДИНПРОБЕЛ";"ОДИНПРОБЕЛ>НЕТПРОБЕЛА";"ДВАПРОБЕЛА>ДВАПРОБЕЛА".
Поиск одинаковых строк в таблице по нескольким условиям, альтернатива СУММЕСЛИМН, ускорить вычисления
 
Прошу помочь в решении задачи по поиску одинаковых строк в таблице по содержимому ячеек, находящихся в нескольких столбцах.
Задачу решаю, применив формулы СУММЕСЛИМН. Упрощённый пример прилагаю (было и результат). Настоящая таблица на 100 тыс.строк. Если применять к одной таблице одновременно несколько СУММЕСЛИМН (с различным набором условий) - время выполнения расчётов получается около трёх часов.
Подскажите пожалуйста способ решения подобных задач, не затратный по времени. Благодарю!
Изменено: aesp - 02.01.2018 09:47:11
Преобразование числа, состоящего из двух частей, разделённых символом
 
Здравствуйте!

Есть число, выгруженное из базы данных, состоящее из двух частей, разделённых двоеточием. Задача "отсечь" первую (основную) часть в неизменном виде. При автозамене "двоеточие*" на "ничего" изменяется само число. Манипуляции с форматами ячеек не дают нужного результата. Ввод чисел вручную даёт правильный результат (Пример1). Помогите автоматизировать.

Благодарю!
Изменено: aesp - 21.11.2017 11:26:48
Получение списка открытых окон
 
Здравствуйте!

Помогите с рабочим кодом, с помощью которого можно получить СПИСОК НАИМЕНОВАНИЙ открытых в данный момент программных ОКОН (окон приложений) и окон документов (вторичных окон). Весь инет "прошерстил" - нет ничего вразумительного. :sceptic:

Благодарю!
Сохранение новых файлов "на лету"
 

Здравствуйте!

Некая программа создаёт (на основе базы данных) последовательно по каждому из филиалов («А», «В», «С») один НОВЫЙ_файл.xls. Файлы автоматически НЕ сохраняются и висят, ожидая ручного сохранения. Есть ли способ сохранения "на лету": открылся файл – сохранился (например, в корень «С:/») с именем филиала «А»-закрылся- ожидается открытие следующего файла..? Поиском по форуму пользовался, не увидел. Как понимаю: макрос по событию открытия книги получится прописать только в уже существующую книгу.

Благодарю!

Создание файлов из листов книги, кроме первых "n", Сохранение всех листов книги, начиная с третьего по порядку
 
Добрый вечер!

В надстройке Plex видим возможность сохранять листы в отдельные файлы (все или выделенные). Покажите, пожалуйста, как создавать файлы из ВСЕХ листов книги, кроме первых "n" (например, начиная с третьего по порядку)? Тогда, если листов в книге = 10, а книг (xls) на выходе в папке "ИТОГ" на диске "С" получится =8.

Благодарю!
Изменено: aesp - 27.10.2017 17:06:13
Автогруппировка любого количества строк по наименованию в крайнем левом столбце
 
Здравствуйте!

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

Благодарю!
На основании произвольной даты получить дату = 1 число предыдущего месяца, Превращение сегодняшней даты
 
Друзья!
Кто поможет с формулой?:
нужно в любой день недели получать ячейку с датой - на первое число предыдущего месяца от сегодняшней даты. Т.е. сегодня 19.05.2017, а в соседней ячейке 01.04.2017, или сегодня 31.05.2017, а в соседней по-прежнему 01.04.2017, но 01.06.2017 соответственно - 01.05.2017
Благодарю)
Выбор данных по названию месяца
 
Здравствуйте!
Как при смене наименования месяца в ячейке А2 получать в диапазоне С2:С6 соответствующие этому наименованию данные из таблицы?
Комбинацией СУММЕСЛИ и СМЕЩ не выходит у меня ничего путного..
Замена текста на лету, замена текста по образцу
 
 Доброго дня! Есть ли простое решение такой задачи?:
Необходимо при вставке текстовых данных из любого другого файла-источника в столбцы «B» или «G» основной таблицы (прилагаю) производить замены в каждой ячейке «на лету» на верный текст (из таблички соответствий текста).
Заранее благодарю за помощь!
Продолжение макроса после выполнения действия с Листом Книги
 
Здравствуйте!

Как организовать такое (?):
1) остановка макроса с сообщением "Выбери автофильтром нужные значения и нажми "ОК";
2) человек выполняет нужные действия с таблицей, нажимает "ОК";
3) далее макрос продолжает работу до окончания

Благодарю!
Страницы: 1 2 След.
Наверх