Здравствуйте! Прошу помощи. Существует реестр с номером заявки на материал, наименованием объекта и названием материала. Как можно сделать, чтобы при выборе ячейки А1 (номер заявки) макрос создавал папку , которая называется по значению ячеек А1_F1_G1 и создавал гиперссылку в ячейке А1 на созданную папку? Желательно, чтобы все происходило при нажатии кнопки "создать папку" (в примере). То есть я жму кнопку, появляется окошко "выбери номер звявки" , я выбираю ячейку А1, создается папка + гиперссылка на нее в ячейке А1. И так далее по следующим строкам. Сам только начал изучать VBA, но многого не понимаю. Буду очень благодарен
Здравствуйте! Прошу помощи. Существует реестр с номером заявки на материал, наименованием объекта и названием материала. Как можно сделать, чтобы при выборе ячейки А1 (номер заявки) макрос создавал папку , которая называется по значению ячеек А1_F1_G1 и создавал гиперссылку в ячейке А1 на созданную папку? Желательно, чтобы все происходило при нажатии кнопки "создать папку" (в примере). То есть я жму кнопку, появляется окошко "выбери номер звявки" , я выбираю ячейку А1, создается папка + гиперссылка на нее в ячейке А1. И так далее по следующим строкам. Сам только начал изучать VBA, но многого не понимаю. Буду очень благодаренhalfcat
iMrTidy, пока все вызывает сложность. Просто много работаю с Excel, хочется упростить свой труд. Начал интересоваться макросами, но пока только читаю книгу John_Walkenbach. Как мне самому решить свою задачу я не понимаю
iMrTidy, пока все вызывает сложность. Просто много работаю с Excel, хочется упростить свой труд. Начал интересоваться макросами, но пока только читаю книгу John_Walkenbach. Как мне самому решить свою задачу я не понимаю halfcat
Sub HiperFolder() 01 If ActiveCell.Column > 1 Or ActiveCell.Row < 2 Then Exit Sub 02 Dim mypath, shName, str, r, c 03 mypath = ThisWorkbook.Path 04 shName = ActiveSheet.Name 05 r = ActiveCell.Row 06 c = ActiveCell.Column 07 str = ThisWorkbook.Sheets(shName).Cells(r, c).Value & ThisWorkbook.Sheets(shName).Cells(r, c + 5).Value & ThisWorkbook.Sheets(shName).Cells(r, c + 6).Value 08 str = mypath & "/" & str 09 MkDir (str) 10 ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=str, TextToDisplay:=ThisWorkbook.Sheets(shName).Cells(r, c).Value 11 End Sub
[/vba] по просьбе ТС комментарии: 01 делаем проверку, если выделена ячейка не первом столбце или в первой строке, выходим из макроса 02 объявляем переменные, которые будут использованы в этой процедуре 03 запоминаем в переменную путь откуда открыта эта книга 04 запоминаем имя активного листа книги 05 запоминаем номер строки выделенной ячейки 06 запоминаем номер столбца выделенной ячейки 07 создаем в переменной str имя папки из значений трех ячеек 08 добавляем к имени папки путь хранения этой книги, получаем полный путь к папке 09 создаем папку по этому пути 10 создаем гиперссылку в выделенной ячейке(Anchor), путь гиперссылки (Address), текст отражаемый в ячейке (TextToDisplay)
Sub HiperFolder() 01 If ActiveCell.Column > 1 Or ActiveCell.Row < 2 Then Exit Sub 02 Dim mypath, shName, str, r, c 03 mypath = ThisWorkbook.Path 04 shName = ActiveSheet.Name 05 r = ActiveCell.Row 06 c = ActiveCell.Column 07 str = ThisWorkbook.Sheets(shName).Cells(r, c).Value & ThisWorkbook.Sheets(shName).Cells(r, c + 5).Value & ThisWorkbook.Sheets(shName).Cells(r, c + 6).Value 08 str = mypath & "/" & str 09 MkDir (str) 10 ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=str, TextToDisplay:=ThisWorkbook.Sheets(shName).Cells(r, c).Value 11 End Sub
[/vba] по просьбе ТС комментарии: 01 делаем проверку, если выделена ячейка не первом столбце или в первой строке, выходим из макроса 02 объявляем переменные, которые будут использованы в этой процедуре 03 запоминаем в переменную путь откуда открыта эта книга 04 запоминаем имя активного листа книги 05 запоминаем номер строки выделенной ячейки 06 запоминаем номер столбца выделенной ячейки 07 создаем в переменной str имя папки из значений трех ячеек 08 добавляем к имени папки путь хранения этой книги, получаем полный путь к папке 09 создаем папку по этому пути 10 создаем гиперссылку в выделенной ячейке(Anchor), путь гиперссылки (Address), текст отражаемый в ячейке (TextToDisplay)K-SerJC
halfcat, тогда начать нужно с того, что разбить задачу на подзадачи. Попробуйте с создания пути, что и предложил sboy. В процессе, наверняка, возникнуть вопросы, мы с радостью помжем и подскажем, что делать дальше после первой подзадачи.
halfcat, тогда начать нужно с того, что разбить задачу на подзадачи. Попробуйте с создания пути, что и предложил sboy. В процессе, наверняка, возникнуть вопросы, мы с радостью помжем и подскажем, что делать дальше после первой подзадачи.iMrTidy
Вышенаписанное мной не является истиной, но лишь моя точка зрения, которая скорее всего ошибочна.
iMrTidy, ок. в свободное время набросаю себе подзадачи и буду пытаться отрабатывать. надеюсь на ваши подсказки. так даже будет лучше, если сам все сделаю
iMrTidy, ок. в свободное время набросаю себе подзадачи и буду пытаться отрабатывать. надеюсь на ваши подсказки. так даже будет лучше, если сам все сделаюhalfcat
добрый день, работает так, выделяете ячейку в первом столбце, на которую надо создать гиперссылку, затем кликаете кнопку макрос создает папку с названием, которое собирает из трех указанных вами ячеек, и в выделенной ячейке создает гиперссылку на эту папку папка создается там, где лежит сам файл. при создании гиперссылки текст в ячейке не меняется.
добрый день, работает так, выделяете ячейку в первом столбце, на которую надо создать гиперссылку, затем кликаете кнопку макрос создает папку с названием, которое собирает из трех указанных вами ячеек, и в выделенной ячейке создает гиперссылку на эту папку папка создается там, где лежит сам файл. при создании гиперссылки текст в ячейке не меняется.
K-SerJC, Здравствуйте. Немного поменял код под свои нужды и столкнулся с проблемой. Если "номер заявки" это цифры, то папка создается, но на строке в коде, где должна создаваться гиперссылка, макрос останавливается с ошибкой. Если "номер заявки" это текст, то все работает как надо. Не могу понять в чем проблема Например если в ячейку "номер заявки" вписать "текст1" или "1 1"(с пробелом) , то так же все замечательно работает. А если просто "1", то ошибка Было предположение, что дело в формате ячейки, но изменения не помогают
K-SerJC, Здравствуйте. Немного поменял код под свои нужды и столкнулся с проблемой. Если "номер заявки" это цифры, то папка создается, но на строке в коде, где должна создаваться гиперссылка, макрос останавливается с ошибкой. Если "номер заявки" это текст, то все работает как надо. Не могу понять в чем проблема Например если в ячейку "номер заявки" вписать "текст1" или "1 1"(с пробелом) , то так же все замечательно работает. А если просто "1", то ошибка Было предположение, что дело в формате ячейки, но изменения не помогаютhalfcat
Добрый день. Помогите немного переделать макрос из 5 сообщения. Папка должна создаваться по пути S:\IL6S\14. БАЗЫ ДАННЫХ\08. РЕГИСТРАЦИЯ ДЕФЕКТОВ\8. Регистрация дефектов_Склады\фото, сам файл будет в другой папке Название папки береться из первой ячейки А Гиперссылка должна отображаться в ячейке N Ссылка на фото Спасибо.
Добрый день. Помогите немного переделать макрос из 5 сообщения. Папка должна создаваться по пути S:\IL6S\14. БАЗЫ ДАННЫХ\08. РЕГИСТРАЦИЯ ДЕФЕКТОВ\8. Регистрация дефектов_Склады\фото, сам файл будет в другой папке Название папки береться из первой ячейки А Гиперссылка должна отображаться в ячейке N Ссылка на фото Спасибо.flatron78