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

Страницы: 1
Каскадный список 2 уровня макрос
 
Добрый день.

Прошу помощи в реализации задачи макросом, на формулах СМЕЩ и именах диапазонах уже реализовано (прикреплённый файл).
Но это не удобно, нужен именно макрос, который будет работать на всех листах книги (которых может быть 200 и более), кроме листа "Данные".
Не удобно потому что формула в имени диапазона постоянно слетает, а файлом будут пользоваться люди, которые в экселе, мягко говоря полный ноль.

Два дня копался в гугле, но так и не удалось найти такого простого макроса, который можно было бы адаптировать под эту задачу.
DAX ввод в таблицу-матрицу визуализации статичного значения
 
Добрый день.

Пример прилагаю.
Прошу помочь.
Существует таблица (матрица), группирующая минимальное, максимальное и среднее значения кол-ва операций по группам в периоде.Как ввести в таблицу визуализации (матрицу) статичное значение цели, которое храниться в отдельной таблице? При этом значение цели не должно вычисляться в матрице, а выводиться как есть в справочнике для этой группы.
DAX мера подсчёт % пересечения данных в двух таблицах по уникальным значениям, Мера должна вычислить кол-во уникальных в двух таблицах, отфильтровать таблицу1 по таблице2 и вывести процент пересечения данных
 
Добрый день.
Пример прилагаю.

Описание:
 
Нужна   мера, вычисляющая количество уникальных строк Таблицы1, в фильтре значений   таблицы2 и процент их пересечения
Кол-во уникальных значений в   таблице 12368
Кол-во уникальных значений в   таблице 29299
Кол-во совпадений по   уникальным строкам - в таблице1 встречается 1121 значений из таблицы2
Результат - % пересечений47,34%
Пакетное копирование строк из множества файлов в активную книгу
 
Добрый день!
Есть множество файлов с одинаковой структурой. В каждом файле, в столбце B содержится определенное условие.
Необходимо перебрать все книги в указанной папке и скопировать из них строки, удовлетворяющие условию в столбце B, в активную книгу.
Есть код (представлен ниже), но я не могу до конца сообразить, как прописать копирование строки в активную книгу. Прошу помочь!
Код
Sub пакетное_копирование_строки_по_условию()
    Dim Folder As String
    Dim wb As String
    Dim objWb As Workbook
    Dim workWb As Workbook
    Dim i As Integer
    Set workWb = ActiveWorkbook  'Запоминаем активную книгу

    'Показываем диалог выбора папки
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку, файлы в которой нужно обработать"
        .ButtonName = "Выбрать"
        .AllowMultiSelect = False
        If .Show Then Folder = .SelectedItems(1) Else Exit Sub
    End With
    'Начинаем читать файлы из папки
    wb = Dir(Folder & Application.PathSeparator & "*.xlsx")
    While Len(wb) > 0
        i = i + 1
        wb = Folder & Application.PathSeparator & wb
        Set objWb = Workbooks.Open(wb)

    Application.ScreenUpdating = False
    
    'Начинаем копировать строки, удовлетваряющие условию в активную книгу
    With objWb.Sheets(1)
            lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
            For j = 2 To lastRow
                If .Cells(j, "B") Like "Описание" Then Sheets(1).Row.Copy ................................... 'тут я не могу сообразить
                End If
            Next
        End With
    With Application
        .ScreenUpdating = False: .CutCopyMode = False
    End With
    
    'Отключаем проверку совместимости при закрытии и сохранении файлов
    ActiveWorkbook.CheckCompatibility = False
    objWb.Close True
    wb = Dir    'читаем следующий файл
    Wend
End Sub
Разработка скрипта (конвертора) SQL - Excel
 
Добрый день!
Нужен исполнитель для разработки скрипта или конвертора, для построения файлов Excel по заранее заданному шаблону и заранее известным алгоритмам и связям данных. Исходная среда БД SQL. Результирующие файлы - в Excel.
Бюджет 5 000 - 10 000 р.
При наличии компетентных специалистов готов вести диалог дальше.
Удаление строк по условию на всех листах активной книги
 
Привет!
Есть макрос:
Код
Sub УдалениеСтрокПоУсловию()
    Dim ra As Range, delra As Range
    Application.ScreenUpdating = False    ' отключаем обновление экрана

    ТекстДляПоиска = "Наименование ценности"    ' удаляем строки с таким текстом

    ' перебираем все строки в используемом диапазоне листа
    For Each ra In ActiveSheet.UsedRange.Rows
        ' если в строке найден искомый текст
        If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
            ' добавляем строку в диапазон для удаления
            If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
        End If
    Next
    ' если подходящие строки найдены - удаляем их
    If Not delra Is Nothing Then delra.EntireRow.Delete
End Sub

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

Заранее благодарен.
Изменено: Sasha UFO - 12.07.2015 14:27:17
Поиск-замена по условию в ячейке (с перебором всех книг в папке и всех листов в каждой книге)
 
Добрый день!
Есть такой вот макрос:
Код
Sub test()
    Dim Folder As String
    Dim wb As String
    Dim objWb As Workbook
    Dim workWb As Workbook
    Dim i As Integer
    Set workWb = ActiveWorkbook  'Запоминаем активную книгу

    'Показываем диалог выбора папки
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку, файлы в которой нужно обработать"
        .ButtonName = "Выбрать"
        .AllowMultiSelect = False
        If .Show Then Folder = .SelectedItems(1) Else Exit Sub
    End With
    'Начинаем читать файлы из папки
    wb = Dir(Folder & Application.PathSeparator & "*.xls")
    While Len(wb) > 0
        i = i + 1
        wb = Folder & Application.PathSeparator & wb
        Set objWb = Workbooks.Open(wb)

        With objWb.Sheets(1)
            lastRow = .Cells(.Rows.Count, 6).End(xlUp).Row
            For j = 2 To lastRow
                If .Cells(j, "F") Like "шт" Then
                   .Cells(j, "F") = "ед"
                ElseIf .Cells(j, "E") Like "шт" Then
                       .Cells(j, "G") = "шт"
                ElseIf .Cells(j, "E") Like "шт" Then
                       .Cells(j, "E") = ""
                End If
            Next
        End With

        ActiveWorkbook.CheckCompatibility = False
        objWb.Close True
        wb = Dir    'читаем следующий файл
    Wend
End Sub
 
Он позволяет произвести линейные (т.е. в одной строке) поиск-замену значений с перебором всех книг в указанной папке.
Необходимо модифицировать данный макрос что бы он умел перебирать, кроме всех книг в папке, все листы в каждой книге. И производить замену значений (не линейную), по заданному условию.
В качестве примера прилагаю файл, содержащий 15 листов. Условие "ТЕСТ" содержится в ячеке B3. Т.е., необходимо реализовать: если значение ячейки B3="ТЕСТ", тогда,например, в ячейку G19 необходимо вставить значение "ТЕСТ ПРОЙДЕН".
Копирование листов в новую книгу по условию в ячейке
 
Добрый день!
Вкратце опишу суть.
Есть книга excel, содержащая около двух тысяч листов.
Необходимо произвести копирование всех листов, удовлетворяющих условию в определенной ячейке. Например, в книге 100 листов со значением в ячейке C3 равным "ДКС", все эти 100 листов необходимо скопировать из текущей книги в новую.
Пример прилагаю.
Пакетное копирование диапазонов ячеек с одного листа на другой путем перебора файлов в папке
 
Добрый вечер всем!
Имеется следующий макрос, который перебирает файлы в папке и производит с ними определенные действия, в данном случае это должно быть копирование диапазона ячеек с их форматами с одного листа и вставка скопированного диапазона на другой лист, в заданное место.
Но на строке Лист2.Range("A1:F100" ;) .Copy работа макроса стопорится. Я не могу разобраться почему.... Как вариант, думаю, макрос не может определить активную книгу, т.к. сам макрос запускается из отдельного файла. В общем, прошу помощи в этом вопросе!
Код
Sub замена_части_текста_в_ячейке()
    Dim Folder As String
    Dim wb As String
    Dim objWb As Workbook
    Dim workWb As Workbook
    Dim i As Integer
    Set workWb = ActiveWorkbook  'Запоминаем активную книгу

    'Показываем диалог выбора папки
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку, файлы в которой нужно обработать"
        .ButtonName = "Выбрать"
        .AllowMultiSelect = False
        If .Show Then Folder = .SelectedItems(1) Else Exit Sub
    End With
    'Начинаем читать файлы из папки
    wb = Dir(Folder & Application.PathSeparator & "*.xls")
    While Len(wb) > 0
        i = i + 1
        wb = Folder & Application.PathSeparator & wb
        Set objWb = Workbooks.Open(wb)

     'Копируем и вставляем диапазон
    Application.ScreenUpdating = False
    Лист2.Range("A1:F100").Copy
    With Лист1.Range("F25")
              .PasteSpecial Paste:=xlPasteValues
              .PasteSpecial Paste:=xlPasteFormats
              .PasteSpecial Paste:=xlPasteColumnWidths
    End With
    With Application
        .ScreenUpdating = False: .CutCopyMode = False
    End With

    'Отключаем проверку совместимости при закрытии и сохранении файлов
    ActiveWorkbook.CheckCompatibility = False
    objWb.Close True
    wb = Dir    'читаем следующий файл
    Wend
End Sub
 
Изменено: Sasha UFO - 02.12.2014 18:48:31
Перенос имен листов в ячейку
 
Привет всем!
Есть книга из нескольких листов. Нужно название каждого листа перенести в определенную ячейку этого же листа.

Есть вот этот код:

Код
Sub имя_листа_в_ячейку()
Cells(6, 3).Value = Sheets(2).Name
Cells(6, 3).Value = Sheets(3).Name
Cells(6, 3).Value = Sheets(4).Name
Cells(6, 3).Value = Sheets(5).Name
Cells(6, 3).Value = Sheets(6).Name
Cells(6, 3).Value = Sheets(7).Name
Cells(6, 3).Value = Sheets(8).Name
Cells(6, 3).Value = Sheets(9).Name
Cells(6, 3).Value = Sheets(10).Name
Cells(6, 3).Value = Sheets(11).Name
Cells(6, 3).Value = Sheets(12).Name
Cells(6, 3).Value = Sheets(13).Name
Cells(6, 3).Value = Sheets(14).Name
Cells(6, 3).Value = Sheets(15).Name
End Sub
но он не работает.
Помогите доработать.
Заранее благодарен!
Изменено: Sasha UFO - 26.12.2013 19:39:14
Добавление определенного количества строк по условию
 
Добрый день!
Пример прикреплен.
Есть вот такой вот макрос:
Код
Sub ins_row()
Dim i As Long, sVal As String
sVal = "Выключатели автоматические,Шестеренные" 'здесь указать список
For i = Cells(Rows.Count, 6).End(xlUp).Row To 2 Step -1
If InStr(sVal, Cells(i, 6)) > 0 Then Cells(i + 1, 6).Resize(1).EntireRow.insert
If InStr(sVal, Cells(i, 6)) > 0 Then Cells(i + 1, 6).Resize(1).EntireRow.insert
Next
End Sub
 
Который должен добавлять две пустые строчки под строкой, в ячейке шестого столбца которой встречаются значения из указанного в макросе списка.
Но данный макрос не совсем корректно работает. Он вставляет пустые строки под каждой пустой ячейкой. Например в примере ячейки в шестом столбце F77:F85 - пустые, в результате отработки макроса их число утроится.
Прошу помочь разобраться с этим.
Поиск и замена по условию (макрос)
 
Добрый день!
Пример во вложении.
Суть в том, чтобы макрос находил в столбце а совпадения с условием и в соседнем столбце возвращал определенное значение.

Написал вот этот макрос, но он не работает....
Код
Sub zamena()
Dim i, lastRow As Long
    lastRow = Cells(Rows.Count, "D").End(xlUp).Row
    For i = 2 To lastRow
        If Cells(i, 3) = "Замена отвода * " Then ' звездочка для поиска любых символов после
            Cells(i, 4) = "м"
        End If
    Next
End Sub
Очистка значения ячейки по условию
 
Добрый вечер!
Товарищи, прошу вашей помощи в решении проблемы.
Есть файл, содержащий больше сотни листов, каждый лист содержит идентичные таблицы с различными данными (урезанный вариант во вложении). Нужен макрос, который очищает значение ячейки в столбце "Количество", при соблюдении двух условий из столбцов "Деталь" и "ГОСТ".
Например, необходимо на каждом листе удалить из ячейки значение количества всех деталей по ГОСТ 17355-2001 с толщиной стенки от "х8" до "х20". В файле красным отметил ячейки, значение которых должно быть удалено в соответствии с описанными условиями.
Буду благодарен за помощь!
Поиск и выделение ячеек цветом по условию
 
Добрый день!
Нужен макрос, который ищет в книге, содержащей более тысячи листов, ячейки с определенным значением и заливает их определенным цветом.
Поиск по форуму не дал результатов.
Хотя задача и простая, но я не спец в VBA, поэтому прошу вашей помощи.
Ошибка вычислений #ЗНАЧ!
 
Привет всем!
Проблема в следующем.
1. Есть файлы реестров, лежащие в сетевом каталоге. 2. Есть файл статистики, который должен собирать данные из файлов реестров. Файл статистики собирает данные с помощью формул. Формулы вида:
Код
=СЧЁТЕСЛИ('[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*")

Код
=СЧЁТЕСЛИМН('[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'[01_Аппараты.xlsx]01.71'!$D$5:$D$467;"создана"&"*")

Код
=СЧЁТЕСЛИМН('[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'[01_Аппараты.xlsx]01.71'!$D$5:$D$467;D$5)


Так вот. Эти формулы работает, если открыт файл статистики и файл реестра ( в данном случае файл 01_Аппараты.xlsx). Если этот файл закрыт, то формулы принимают значения:
Код
=СЧЁТЕСЛИ('\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*")

Код
=СЧЁТЕСЛИМН('\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$D$5:$D$467;"создана"&"*")

Код
=СЧЁТЕСЛИМН('\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$D$5:$D$467;D$5)


И, в результате, возвращают значение #ЗНАЧ!
Подскажите, в чем проблема, как её решить?
Массовая замена данных или удаление строк из нескольких файлов
 
Добрый день!
Возникла необходимость редактировать сотни файлов.
1. Например, необходимо в каждом из 100 файлов удалить строку , в ячейке которой, соответствующей столбцу А, встречается определенное значение.
2. Например, необходимо в каждом из 100 файлов заменить значение ячейки, аналогично ctrl+H, но во всех файлах сразу.

Есть возможность реализовать это в excel 2010?
Или есть какой то стандартный функционал? или спец программы?
Округление значения ячейки до ближайшего из стандартного ряда
 
Добрый день!
Прошу Вашей помощи в следующем вопросе.
Есть столбец с различными числовыми значениями, каждое из этих значений нужно округлить в большую сторону до ближайшего значения из стандартного ряда.
Файл прилагается.
Спасибо!
Скрипт добавления пустых строк по правилу (с заполнением определенной ячейки текстом)
 
Добрый день!  
Файл с примером во вложении.  
Суть такова. Есть огромный файл, допустим 70000 строк. Необходимо, если в столбце D встречается определенная запись (в примере "центробежные"), добавить определенное количество пустых строк (в примере две) и заполнить их в столбце B определенными текстовыми данными (в примере "редуктор" и "электродвигатель").  
Отмечу, что в зависимости от условия в столбце D необходимо будет добавлять разное количество строк и заполнять их разными данными.  
 
P.S. как добавить пустые строки по условию скриптом я знаю. С этим решением мне так же помогли на этом форуме.
Вставка пустых строк по определенному условию
 
Добрый день, товарищи!  
Суть проблемы проста, есть таблица из N-го количества строк, и столбцов. Необходимо по условию, прописанному в столбце E добавить, при условии его удовлетворения, 3 пустых строки. Допустим, в столбце E содержится условие "Выключатели автоматические", значит под этой строкой должно появиться три пустых строки. Набор условий определен и ограничен.  
Пример в прикрепленном файле.  
Понимаю что тема ни раз поднималась на форуме, однако в таком контексте ее еще не было.  
Всем спасибо!
Страницы: 1
Наверх