Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2023, 11:26   #1
Иван559455
Новичок
Джуниор
 
Регистрация: 17.04.2023
Сообщений: 4
По умолчанию Макрос на кнопку, проход по папкам, сравнение с наименованием, создание гиперссы

Добрый день. Возникла необходимость в написании макроса, сам к сожалению только начал изучать данный вопрос.

Есть лист excel (рис.1). в нем указаны комплекты документов. В столбцах L-O сейчас руками созданы гиперссылки на необходимые папки.
Есть папка на диске с входящими и исходящими письмами (рис.2). Папок и входящих и исходящих писем очень много, и в ручную каждый раз добавлять гиперссылки очень трудозатратно.
Задача состоит в следующем, по нажатию кнопки делать проход по папкам и подпапкам, сравнивать наименование в столбце "B" листа excel и папках (рис3), и создавать столбцы с гиперссылками на папки.
Изображения
Тип файла: jpg рис1.jpg (129.4 Кб, 3 просмотров)
Тип файла: jpg рис2.jpg (100.5 Кб, 0 просмотров)
Тип файла: jpg рис3.jpg (86.5 Кб, 3 просмотров)
Иван559455 вне форума Ответить с цитированием
Старый 17.04.2023, 14:04   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Цитата:
Сообщение от Иван559455 Посмотреть сообщение
Папок и входящих и исходящих писем очень много, и в ручную каждый раз добавлять гиперссылки очень трудозатратно
с такими задачами все чаще люди переходят на ACCESS, где удобно смотреть такие длинные строки, применив 2 таблицы

таб1 - проекты(код1, название, подрядчик)
таб2 - собственно переписка(код2,код1, дата, статус, письмо, может даже краткое содержание

например
таб1
1, прокладка труб, чп Антонов

таб2
1,1,02/02/2023,начальное письмо, имя, составитель
2,1,03/02/2023, отправка
3,1,05/02,2023, ответ, имя , содержание.....

всегда можно
-выбрать письма, на которые нет ответа
-выдать краткий отчет по переписке по задаче ....
- выдать отчет по исп. Петушкову
.......

и конечно всевозможная выборка/фильтрация по всем полям, даже если не знаете точной даты или исполнителя
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 17.04.2023, 16:11   #3
Иван559455
Новичок
Джуниор
 
Регистрация: 17.04.2023
Сообщений: 4
По умолчанию

shanemac51,
Цитата:
Сообщение от shanemac51 Посмотреть сообщение
с такими задачами все чаще люди переходят на ACCESS, где удобно смотреть такие длинные строки, применив 2 таблицы

таб1 - проекты(код1, название, подрядчик)
таб2 - собственно переписка(код2,код1, дата, статус, письмо, может даже краткое содержание

например
таб1
1, прокладка труб, чп Антонов

таб2
1,1,02/02/2023,начальное письмо, имя, составитель
2,1,03/02/2023, отправка
3,1,05/02,2023, ответ, имя , содержание.....

всегда можно
-выбрать письма, на которые нет ответа
-выдать краткий отчет по переписке по задаче ....
- выдать отчет по исп. Петушкову
.......

и конечно всевозможная выборка/фильтрация по всем полям, даже если не знаете точной даты или исполнителя


Добрый день, да я понимаю что в Access было бы удобнее, но работаем в экселе.
Иван559455 вне форума Ответить с цитированием
Старый 17.04.2023, 17:24   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Значит пора переходить в Access, если возможностей Excel не хватает...
macomics вне форума Ответить с цитированием
Старый 17.04.2023, 17:46   #5
Иван559455
Новичок
Джуниор
 
Регистрация: 17.04.2023
Сообщений: 4
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Значит пора переходить в Access, если возможностей Excel не хватает...
Спасибо. Понял вас.
Иван559455 вне форума Ответить с цитированием
Старый 17.04.2023, 18:12   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Цитата:
Сообщение от Иван559455 Посмотреть сообщение
но работаем в экселе.
в екселе возможно применила бы такую методику
- первый лист - оглавление, сейчас листов может быть много , хватит, в крайнем случае можно разбить по годам

- каждый следующий - это проект
первая строка -имя проекта, место проекта, дата начала, ответственный
остальные строки - ваша переписка
дата, статус письма,имя письма/гиперссылка, возможно вх/исх номер, кратное содержание

при таком подходе будет больше толку, чем от ваших гиперссылок , в них невозможно что-то найти
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 18.04.2023, 00:07   #7
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

В чём загвоздка?
  • Делайте отдельную колонку с необходимой строкой поиска в имени файла. (необязательно)
  • В макросе проходите все папки u ищете файл содержащий эту строку.

Например:
Код:
B2: "31/12/2019/1-РД1-001.2-КЖ4"
-> 
K2: "001.2-КЖ4"

   Dim DirList(100) As String
...
    For I = 0 To FoldersCount - 1
        ReDim FileList(100) As String   ' clear list
        FilesCount = GetFileList(FileList, "T:\" & DirList(I) & "\", vbNormal)
        If FilesCount <> 0 Then
            For fc = 0 To FilesCount - 1
                If  InStr(1, FileList(i), Range("K" & (i+2)).Value, vbTextCompare) <> 0 Then
                        Debug.Print "FOUND:"; DirList(I) & "\" & FileList(fc)
   ... вставляете гиперссылку
                End If
            Next
        End If
    Next
jillitil вне форума Ответить с цитированием
Старый 18.04.2023, 10:55   #8
Иван559455
Новичок
Джуниор
 
Регистрация: 17.04.2023
Сообщений: 4
По умолчанию

Цитата:
Сообщение от jillitil Посмотреть сообщение
В чём загвоздка?
  • Делайте отдельную колонку с необходимой строкой поиска в имени файла. (необязательно)
  • В макросе проходите все папки u ищете файл содержащий эту строку.

Например:
Код:
B2: "31/12/2019/1-РД1-001.2-КЖ4"
-> 
K2: "001.2-КЖ4"

   Dim DirList(100) As String
...
    For I = 0 To FoldersCount - 1
        ReDim FileList(100) As String   ' clear list
        FilesCount = GetFileList(FileList, "T:\" & DirList(I) & "\", vbNormal)
        If FilesCount <> 0 Then
            For fc = 0 To FilesCount - 1
                If  InStr(1, FileList(i), Range("K" & (i+2)).Value, vbTextCompare) <> 0 Then
                        Debug.Print "FOUND:"; DirList(I) & "\" & FileList(fc)
   ... вставляете гиперссылку
                End If
            Next
        End If
    Next
Добрый день, а можно по подробнее рассказать как это работает. Приложил пример файла эксель и папки с файлами.
Вложения
Тип файла: zip Пример.zip (135.8 Кб, 3 просмотров)
Иван559455 вне форума Ответить с цитированием
Старый 18.04.2023, 12:55   #9
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Иван559455, не забывайте указывать про решения, полученные в этой теме: Макрос на кнопку, проход по папкам, сравнение с наименование
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 18.04.2023, 13:58   #10
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Жмакаете кнопку и таблица сама заполняется ссылками на найденные файлы.
☺ Укажите свой путь к папке с письмами.
☺ Сетевые пути в локалке понимает. "\\COMPUTER2600\ZAVODMARGANCOVKI\PI SMA"
☺ Настройте в какие колонки помещать результат
...
В общем 97,5% сделано, за вами только косметика.
Изображения
Тип файла: jpg screenshot.6.jpg (97.9 Кб, 28 просмотров)
Вложения
Тип файла: 7z Пример.7z (39.5 Кб, 5 просмотров)
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bat создание папок и задать имя папкам otto_cc Помощь студентам 1 23.05.2017 23:25
Создание программы в ДЕЛФИ (Листинг содержимого папки, привязка программы к папкам) Staziah2 Общие вопросы Delphi 8 19.03.2015 13:07
поиск и сравнение данных по папкам php tytona Помощь студентам 0 10.12.2014 18:57
а как завязать макрос на одну кнопку, Евгений_39 Microsoft Office Excel 3 07.09.2012 22:15
Сделать красивую кнопку на макрос Uralmaster Microsoft Office Excel 7 13.02.2011 06:47