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

Страницы: 1
Разбить словарь на подстроку
 
Jack Famous, Как красиво Вы сделали, вещь. Адаптировал под свои хотелки, всё летает.
Спасибо огромное :excl:  
Изменено: Nekto - 02.12.2021 15:56:27
Разбить словарь на подстроку
 
Приветствую.
Что хочется. Есть 2 листа. ФИО и дата рождения с листа 1 ищутся на листе 2. Если таковые есть, то данные столбцов J,P,L листа 2 добавляются в столбцы FGH листа 1.
На текущий момент данные столбцов J,P,L листа 2 добавляются в столбец F листа 2. Никак не могу разбить найденное по столбцам, помогите плиз.
Словарь используется для ускорения работы, т.к. на каждом листе под полмиллиона строк.


Код
Sub Search()
    Dim a(), b(), t$, ii&, s$, i&, x&, ss$, d&, z&, Dict As Object, tt As Object
    Dim w As Workbook, v As Worksheet ', vm As Worksheet
    d = timeGetTime
    Set vm = Sheets("1")
    vm.Columns("F").ClearContents
    For Each w In Application.Workbooks
        If w.Name = "test.xlsm" Then
            With w.Sheets("2")
                ii = .Cells(.Rows.Count, 1).End(xlUp).Row
                a = Range(.Cells(2, "F"), .Cells(ii, "S"))
            End With
            Exit For
        End If
    Next
       With CreateObject("Scripting.Dictionary")
        For i = 2 To UBound(a)
            .Item(a(i, 1) & " " & a(i, 3)) = a(i, 5) & "|" & a(i, 11) & "|" & a(i, 7)
        Next
        vm.Activate
        ii = Cells(Rows.Count, 2).End(xlUp).Row
        a = Range("B2:C" & ii).Value
        b = Range("F2:F" & ii).Value
        
        For x = 2 To ii - 1
            t = a(x, 1) & " " & a(x, 2)
            If .Exists(t) Then
            b(x, 1) = .Item(t)
        
            End If
            z = z + 1
            
        Next x
    End With
  Range("F2:F" & ii).Value = b
     
    
End Sub
Изменено: Nekto - 02.12.2021 10:37:06
Открыть папку из Excel в запущенном Outlook
 
Добрый день.
Пытаюсь открыть папку Xyz в уже запущенном Outlook из Excel
Код
Dim objOutlook As Outlook.Application
Set objOutlook = GetObject(, "Outlook.Application")
objOutlook.Session.Folders("vasya@mail.ru").Folders("Xyz").Display 

Открывается новое окно Outlook и нужная папка открывается в нем. Подскажите плиз, где я неправ.Спасибо.
Изменено: Nekto - 15.08.2018 14:33:43
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
vikttur написал:
Вы помощь получили - так облегчите поиск ответа другими.
Вариант заголовка "Выборка и подсчет итогов. Массив" подходит? Предлагаю такой вариант, ну и лишнее в топике потрите.
Цитата
vikttur написал:
2.1. Название темы должно отражать смысл проблемы.
На момент создания темы заголовок и отражал смысл проблемы. Когда тема создавалась я был настроен использовать списки или словари. Уважаемый Hugo  предложил вариант решения с массивами. Это и оказалось "чем-то еще".
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
vikttur написал:
А как же уважение к тому месту, где помощь получили?
В чем проявилось мое неуважение?
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
kuklp написал:
Только не удивляйтесь, если в следующий раз придя за халявой, Вы ответов не увидите. До исправления нарушения в этой теме. Модеры могут скрывать ответы. Быковать не стоит.
Причем тут "быковать"? Вы о чем? "Закрытие" темы на других посещаемых мной форумах означает, что вопрос решен, дальнейшее обсуждение его не принесет ничего ТС, модератор делает пометку "тема закрыта", писать в нее никто не сможет. Здесь по-другому?
Цитата
vikttur написал:
Значит, вместо автор теперь помогающие будут отдуваться.
Nekto, нормально? Вам помогли да еще вместо Вас Ваш косяк исправлять будут.
Лично Вас не устроило название темы - ну так и переименуйте по своему разумению.  Меня вполне устраивает название, которое согласуется с заданным мной вопросом.
И да, в чем косяк поясните. Желательно со ссылкой на пункты правил, если уж разговор пошел в таком ключе.
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
vikttur написал:
Я только закрыть могу
На свой вопрос я ответ получил, посему можно и закрыть.
Общее количество однотипного оборудования , согласно признакам группировки
 
Всем спасибо. Отдельное спасибо Hugo
Смысл понятен, предложенный код работает, переделываю под свои хотелки, причесываю.
Цитата
vikttur написал:
Название темы должно отражать суть задачи
Переименуйте плиз, если требуется, на свое усмотрение, у меня с фантазией плохо.
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
Hugo написал:
Я так и вижу алгоритм - сперва справочник вносим в словарь - каждому ключу/варианту (которые перечислены через запятую) присваиваем значение/наименование....
..... если данных немного - можно писать суммы сразу на лист, получая адрес ячейки из подготовленного словаря пар наименование-адрес.
Именно так и предполагал. Только не знаю, как реализовать сиё на практитке - никогда со словарями и списками не работал.
Буду рад любой подсказке.
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
Hugo написал:
- так уже в этом простом примере нет всех достаточных вариантов. Нет
Точка доступа WIFI
ККТ Ритейл
ККТ Атол
ФР Ритейл
Ага, понял про что Вы. Пример привел плохой, посему немного изменил его.
Тонкий клиент - однозначно описывается содержанием в строке либо "ТК", либо "тонкий"
Принтеры - "Принтеры HP", либо "Samsung" соответственно. Ну и т.д.
Т.е. словарь однозначно описывает уникальную подстроку, которая может содержаться в строке какого-либо оборудования.
В случае, если такая подстрока находится в столбце, необходимо просуммировать соответствующее оборудование и результат записать в столбец "F".
Общее количество однотипного оборудования , согласно признакам группировки
 
Цитата
Hugo написал:
Можно сделать используя словари, но недостаточно корректные данные. Например, что будете делать если вдруг будет какой-нибудь WIFI принтер?
Варианты будут достаточно точные. Так и напишу в словаре "WIFI принтер". В случае появления разногласий словарь будет изменяться, это не проблема. Не надо на этом зацикливаться, это просто пример
Цитата
Дмитрий Тарковский написал:
Это по простому, без макросов.
Надо VBA, т.к. на самом деле все гораздо сложнее :)
Изменено: Nekto - 06.09.2017 09:24:03
Общее количество однотипного оборудования , согласно признакам группировки
 
И снова здравствуйте.
Есть табличка с различным ИТ оборудованием (столбцы А и В). Есть табличка, где расписаны признаки группировки (ну или варианты написания) этого оборудования (столбцы D и Е). Задача - подсчитать общее количество однотипного оборудования (столбец F), согласно признакам группировки. Для удобства понимания одинаковые группы пометил одинаковым цветом.  Чет не могу сообразить, как лучше это сделать (на VBA), помогите плиз.
Изменено: Nekto - 07.09.2017 09:03:15
Выборка по дате, Выбрать строки с одинаковой датой и загнать в строковые переменные
 
Всем спасибо, особенно webley )
То, что надо!
Выборка по дате, Выбрать строки с одинаковой датой и загнать в строковые переменные
 
Добрый день. Чет не могу сообразить. Нужно чтобы из столбца с датой отбирались данные по каждому дню и сохранялись в переменную:
Msg(1)="08.08.2017: Номер 1, Адрес1; Номер 2, Адрес2; Номер 3, Адрес 3; Номер 4, Адрес 4"
Msg(2)="09.08.2017: Номер 5, Адрес5" и так далее.
Msg(N)=...
Подскажите плиз, как реализовать задуманное
Изменено: Nekto - 08.08.2017 17:07:41
Страницы: 1
Наверх