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

Страницы: 1 2 3 4 След.
Каскадный список 2 уровня макрос
 
Цитата
Jack Famous написал:
в чем проблема?
Предположил, что может быть системное ограничение в количестве данных, которые можно запихать через ";" в "Проверку данных".

Цитата
Nordheim написал:
могу задать встречный вопрос
Вопрос в том, что макрос делить значения, например, условия "Давление", воспринимая ",", как разделитель. Это не верно, разорителей не должно быть.
Каскадный список 2 уровня макрос
 
Цитата
Jack Famous написал:
А вообще-то слишком много "а если"
Укажите где в коде поменять, чтобы он считывал условия начиная с B4, а окно заполнения начиная с B13.

Цитата
Jack Famous написал:
Решения полностью удовлетворяют условию
Да, только давайте добавим универсальности и будет огонь!
Каскадный список 2 уровня макрос
 
Цитата
Nordheim написал:
вот что то сляпал
Т.е., сначала всегда нужно нажать кнопку "Заполнить", чтобы макрос все значения записал в список проверки данных?

А если условие содержит больше 5 тыс возможных значений?
Каскадный список 2 уровня макрос
 
Цитата
Jack Famous написал:
теперь макрос сработает на ЛЮБОМ листе, имя которого НЕ "список" (регистр не важен). Прочие условия срабатывания те же
Отлично!

А если заполнять начинаем всегда с ячейки B13 и условия всегда хранятся в 4 строке? Не смог найти в макросе соответствующие блоки чтоб подправить.
Каскадный список 2 уровня макрос
 
Цитата
Jack Famous написал:
всё решается одной строкой кода
Был бы я силён в VBA, написал бы код и не просил тут помощи) Спасибо за понимание!
Каскадный список 2 уровня макрос
 
Цитата
Jack Famous написал: нечто гораздо более удобное для подобных случаев
Круто, но я бы не сказал, что это как раз таки мой случай.
Как прикрутить это к листу, на котором нужно заполнить характеристики? Неудобно каждый раз вводить в поле поиска то что ищем. Не удобно, вставляется сцепка, а не само значение.

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

Спасибо в любом случае.
Изменено: Sasha UFO - 16.08.2019 10:49:18
Каскадный список 2 уровня макрос
 
Цитата
Jack Famous написал:
поиска по сцепке критериев
ВПР?
Каскадный список 2 уровня макрос
 
Добрый день.

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

Два дня копался в гугле, но так и не удалось найти такого простого макроса, который можно было бы адаптировать под эту задачу.
DAX ввод в таблицу-матрицу визуализации статичного значения
 
Вошла! Спасибо большое!!! всё логично и просто.
DAX ввод в таблицу-матрицу визуализации статичного значения
 
Цитата
PooHkrd написал:
если нужно просто наглядно вывести цели в сводную тогда нужна мера.
тогда мера. Нужна наглядность.
DAX ввод в таблицу-матрицу визуализации статичного значения
 
Цитата
Tefra написал:
Здравствуйте!Может макросом?
Нужна формула меры или столбца для Power BI.
DAX ввод в таблицу-матрицу визуализации статичного значения
 
Добрый день.

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

Описание:
 
Нужна   мера, вычисляющая количество уникальных строк Таблицы1, в фильтре значений   таблицы2 и процент их пересечения
Кол-во уникальных значений в   таблице 12368
Кол-во уникальных значений в   таблице 29299
Кол-во совпадений по   уникальным строкам - в таблице1 встречается 1121 значений из таблицы2
Результат - % пересечений47,34%
Пакетное копирование строк из множества файлов в активную книгу
 
The_Prist, Спасибо! Работает теперь.
Пакетное копирование строк из множества файлов в активную книгу
 
Karataev, сейчас протестировал скрипт на файле в 40тыс. строк. вощникает ошибкп OVERFLOW.
Как бороться?
Пакетное копирование строк из множества файлов в активную книгу
 
Юрий М, ок, подправил, спасибо!
Пакетное копирование строк из множества файлов в активную книгу
 
Karataev,Все работает, благодарствую!

Для тех, кому понадобится данный макрос:
1. в данной строке указывается расширение обрабатываемых файлов. Скрипт будет обрабатывать файлы только с указанным расширением.
Код
wb = Dir(Folder & Application.PathSeparator & "*.xlsx")
2. в данной строке указывается номер столбца, по которому узнаём номер последней заполненной строки. В данном случае указан столбец № 2.
Код
lr = shSrc.Cells(shSrc.Rows.Count, 2).End(xlUp).Row
3. в данной строке указывается буква столбца, в данном случае B, в ячейках которого содержится условие и само условие, в данном случае "Описание" (можно использовать подстановочные символы.
Код
If shSrc.Cells(i, "B") Like "Описание" Then
Изменено: Sasha UFO - 16.11.2015 15:36:46
Пакетное копирование строк из множества файлов в активную книгу
 
Добрый день!
Есть множество файлов с одинаковой структурой. В каждом файле, в столбце 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
Поиск-замена по условию в ячейке (с перебором всех книг в папке и всех листов в каждой книге)
 
Leanna, ох и красотаааа!)))))
СПАСИБО ОГРОМНОЕ!
Естественно все работает как надо.

P.S. мне бы Ваши познания вижл бэйсик))))
Изменено: Sasha UFO - 22.12.2014 18:55:23
Поиск-замена по условию в ячейке (с перебором всех книг в папке и всех листов в каждой книге)
 
Цитата
Leanna пишет: закрываются без сохранения
Почему же, макрос сохраняет изменения в файлах.
Поиск-замена по условию в ячейке (с перебором всех книг в папке и всех листов в каждой книге)
 
Цитата
Leanna пишет: Строки для чего-н надо перебирать или нет?
На самом деле в примере макроса идет перебор строк. Линейность в том, что этот макрос ищет значение в строке и в определенный столбец (6 в примере) этой же строки вставляет значение.
В том, что мне сейчас нужно необходимости перебора строк нет. Т.к. условие всегда находится в одной и той же ячейке. Вставка производится  всегда в одну и ту же ячейку.
Копирование листов в новую книгу по условию в ячейке
 
Hugo,нет, сохранение для меня не критично)))
Копирование листов в новую книгу по условию в ячейке
 
Hugo, работает в таком виде:
Код
Sub tt()
    Dim sh As Object
    With CreateObject("Scripting.Dictionary"): .comparemode = 1
        For Each sh In Worksheets
            If sh.Range("C1") = "ДКС" Then .Item(sh.Name) = 0&
        Next
        If .Count <> 0 Then Sheets(.keys).Copy Else MsgBox "Листов для копирования нет"
    End With
End Sub
 
Благодарю!
Поиск-замена по условию в ячейке (с перебором всех книг в папке и всех листов в каждой книге)
 
Добрый день!
Есть такой вот макрос:
Код
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 необходимо вставить значение "ТЕСТ ПРОЙДЕН".
Копирование листов в новую книгу по условию в ячейке
 
Hugo,да и вставил в модуль.
Ошибка: run-time error '13' type mismatch  
Копирование листов в новую книгу по условию в ячейке
 
Hugo, стопорится на строке

Код
        Sheets(.keys).Copy
 
Копирование листов в новую книгу по условию в ячейке
 
Leanna,логика ясна, её я и озвучивал в первом посте. Но, результирующий файл, полученный после отработки макроса содержит всего 4 листа. А должно быть.....
Ааааа, всё, я понял, это я сам некорректно описание к примеру составил. Вместо C3 C1 должно быть, в файле примера же в C1 я проставил тестовые значения.
Тогда работает, благодарю!
Страницы: 1 2 3 4 След.
Наверх