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

Страницы: 1
Сравнение двух таблиц
 
Хочу узнать у знатоков, данный код логичный, правильный?
Код
Sub CompareArrays()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Сравнение")

    Dim arr1 As Variant, arr2 As Variant
    Dim keyCol1 As Integer, keyCol2 As Integer
    Dim dict1 As Object, dict2 As Object
    Dim key As Variant
    Dim r As Long, c As Long
    Dim rowIndex As Variant

    ' Определяем массивы данных
    arr1 = ws.Range("A2:I300").Value ' Замените на диапазон вашей первой таблицы
    arr2 = ws.Range("J2:R300").Value ' Замените на диапазон вашей второй таблицы

    ' Определяем столбцы ключей (1 - это первый столбец в массиве)
    keyCol1 = 1
    keyCol2 = 1

    ' Создаем словари для хранения ключей и индексов
    Set dict1 = CreateObject("Scripting.Dictionary")
    Set dict2 = CreateObject("Scripting.Dictionary")

    ' Заполняем словари данными из массивов
    For r = 1 To UBound(arr1, 1)
        key = arr1(r, keyCol1) & arr1(r, keyCol1 + 1)
        dict1(key) = r
    Next r

    For r = 1 To UBound(arr2, 1)
        key = arr2(r, keyCol2) & arr2(r, keyCol2 + 1)
        dict2(key) = r
    Next r

    ' Сравниваем массивы и выделяем изменения
    For Each key In dict1.Keys
        If Not dict2.exists(key) Then
            ' Удаленные данные - синим цветом
            rowIndex = dict1(key)
            For c = 1 To UBound(arr1, 2)
                ws.Cells(rowIndex + 1, c).Interior.Color = RGB(0, 0, 255)
            Next c
        Else
            rowIndex = dict1(key)
            For c = 1 To UBound(arr1, 2)
                If arr1(rowIndex, c) <> arr2(dict2(key), c) Then
                    ' Измененные данные - красным цветом
                    ws.Cells(rowIndex + 1, c).Interior.Color = RGB(255, 0, 0)
                    ws.Cells(dict2(key) + 1, c + 9).Interior.Color = RGB(255, 0, 0)
                End If
            Next c
            ' Строка с изменениями - желтым цветом только первый столбец
            ws.Cells(rowIndex + 1, 1).Interior.ColorIndex = 6
            dict2.Remove key
        End If
    Next key

    ' Новые данные - зеленым цветом
    For Each key In dict2.Keys
        rowIndex = dict2(key)
        For c = 1 To UBound(arr2, 2)
            ws.Cells(rowIndex + 1, c + 9).Interior.Color = RGB(0, 255, 0)
        Next c
    Next key

    MsgBox "Сравнение завершено.", vbInformation
End Sub
Сравнение двух таблиц
 
Hugo, есть идеи как поправить?  
Сравнение двух таблиц
 
Сейчас код сравнивает построчно точное совпадение, а у меня строки могут менять своё местоположение, сортировка не помогает, под сравнением массивов я имею ввиду что должен быть поиск строк по ключу(индексу) , и уже потом сравнение ячеек, сейчас сравнение построчно.  
Сравнение двух таблиц
 
Помогите, пож-ста, доработать код:
Две таблицы на одном листе, первый столбец является ключом данных (уникальное значение, идентификатор), кол-во столбцов в двух таблицах неизменно, а количество строк может меняться (удаляться и прибавляться)).
Мой код сравнивает построчно, что нужно чтобы сравнение было по массивам?
Код
Sub CompareArrays()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Сравнение")

    Dim arr1 As Variant, arr2 As Variant
    Dim keyCol1 As Integer, keyCol2 As Integer
    Dim dict1 As Object, dict2 As Object
    Dim key As Variant
    Dim r As Long, c As Long
    Dim rowIndex As Variant

    ' Определяем массивы данных
    arr1 = ws.Range("A2:I300").Value ' Замените на диапазон вашей первой таблицы
    arr2 = ws.Range("J2:R300").Value ' Замените на диапазон вашей второй таблицы

    ' Определяем столбцы ключей (1 - это первый столбец в массиве)
    keyCol1 = 1
    keyCol2 = 1

    ' Создаем словари для хранения ключей и индексов
    Set dict1 = CreateObject("Scripting.Dictionary")
    Set dict2 = CreateObject("Scripting.Dictionary")

    ' Заполняем словари данными из массивов
    For r = 1 To UBound(arr1, 1)
        key = arr1(r, keyCol1) & arr1(r, keyCol1 + 1)
        dict1(key) = r
    Next r

    For r = 1 To UBound(arr2, 1)
        key = arr2(r, keyCol2) & arr2(r, keyCol2 + 1)
        dict2(key) = r
    Next r

    ' Сравниваем массивы и выделяем изменения
    For Each key In dict1.Keys
        If Not dict2.exists(key) Then
            ' Удаленные данные - синим цветом
            rowIndex = dict1(key)
            For c = 1 To UBound(arr1, 2)
                ws.Cells(rowIndex + 1, c).Interior.Color = RGB(0, 0, 255)
            Next c
        Else
            rowIndex = dict1(key)
            For c = 1 To UBound(arr1, 2)
                If arr1(rowIndex, c) <> arr2(dict2(key), c) Then
                    ' Измененные данные - красным цветом
                    ws.Cells(rowIndex + 1, c).Interior.Color = RGB(255, 0, 0)
                    ws.Cells(dict2(key) + 1, c + 9).Interior.Color = RGB(255, 0, 0)
                End If
            Next c
            ' Строка с изменениями - желтым цветом
            ws.Rows(rowIndex + 1).Interior.ColorIndex = 6
            dict2.Remove key
        End If
    Next key

    ' Новые данные - зеленым цветом
    For Each key In dict2.Keys
        rowIndex = dict2(key)
        For c = 1 To UBound(arr2, 2)
            ws.Cells(rowIndex + 1, c + 9).Interior.Color = RGB(0, 255, 0)
        Next c
    Next key

    MsgBox "Сравнение завершено.", vbInformation
End Sub

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

Не совсем понял что за правый клик, но путь реализации не важен, важно для конечного пользователя оформить красиво.
Изменено: V P - 26.09.2023 09:39:05
Визуализация иерархической структуры папок с файлами
 
Добрый день!
Необходима визуализация таблицы, сделанной на основе иерархической структуры папок.

Нужно или сделать полностью заново или докрутить power bi.

Должно быть что-то такого вида:
Пример

Но чтобы было ещё поле с ссылкой на файл после выбора  необходимых критериев.
Способ реализации не важен (vba, power bi и тд.)
DAX. Создание вычисляемой таблицы. Дерево декомпозиции
 
Цитата
написал:
в ютюбе поищите. Вот  Лейла , например, очень похожую картинку нарисовала.
Спасибо, но мне скорее нужно хоть в vba? хоть без него что-такого типа, но как так сделать я не могу найти, кто-то может помочь?
https://www.youtube.com/watch?app=desktop&v=n77YvXCsDlg
DAX. Создание вычисляемой таблицы. Дерево декомпозиции
 
Цитата
написал:
Microsoft Visio Data Visualizer
я гуглил, но не нашел как в Microsoft Visio Data Visualizer можно сделать интерактивную схему с визуализацией как это сделано в power bi, буду премного благодарен за ссылку.
DAX. Создание вычисляемой таблицы. Дерево декомпозиции
 
Коллеги, я правильно понимаю что нет возможности реализации этого в эксель?
DAX. Создание вычисляемой таблицы. Дерево декомпозиции
 
Всем привет!
Подскажите, пож-ста, в эксель возможно сделать интерактивную визуализацию декомпозиции папок, аналогично как в power bi?
как это сделано в power bi

Я реализовал в эксель через макросы и поиск выбор пользователем критериев (15 штук) с последующей выдачей ссылки на папку где лежит необходимый (попадающий под критерии) файл, но из-за того периодически структура папок (критерии заданы названием папок) меняется, дополняется, обновляется, вручную заново обновлять и настраивать устал. Power bi ушел из РФ и если у пользователей нет программы, то и доступа не будет. Буду премного благодарен за помощь в подсказке как это сделать в эксель или другим способом (html  и тд)
Создание формы для сбора информации, Необходимо создать форму на VBA
 

Описание процесса:

Имеются порядка 20 пользователей, у каждого есть файл «Отчет» в формате Excel. Из указанного файла необходимо скопировать часть данных в имеющуюся форму в Excel. В Данной форме на основе подгружаемых данных необходимо сформировать форму для добавления пользователем информации из готовой работающей логики, а затем указанные данные добавить новыми столбцами в загружаемую форму из файла «Отчет» и сохранить получившиеся данные в новый файле.

Интересуют расценки и сроки.

Подобное ТЗ направлю через ЛС.

Зависимый выпадающий список, после выбора значения нет возможности выбрать другое
 
Коллеги, здравствуйте!
Нужна помощь.

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

Один вопрос - одна тема [МОДЕРАТОР]
Изменено: vikttur - 19.08.2021 14:10:59
Расчёт страховой премии, Расчёт страховой премии в Excel
 
Здравствуйте, просьба помочь с переносом формулы в эксель.Бюджет - 600 руб  
Расчёт страховой премии, Расчёт страховой премии в Excel
 
Я начал делать, но затык в сумме множеств  
Расчёт страховой премии, Расчёт страховой премии в Excel
 
В этом и проблема, что у меня затык с переносом этих формул в эксель
Изменено: vikttur - 07.05.2021 13:11:03
Расчёт страховой премии, Расчёт страховой премии в Excel
 
Здравствуйте, подскажите, пожалуйста как можно сделать расчёт страховой премии в эксель? Формула расчёт в приложении  
Страницы: 1
Наверх