Уважаемые форумчане! Есть вопрос. Подскажите пожалуйста, можно ли в файле Excel сделать, допустим в ячейке A1, будет надпись "Добавить файл" нажимаем, открывается окно, в которой можно перетащить файл и он упадет в заранее подготовленную папку. Ну типа документы по авто, которые мы можем посмотреть потом нажав на ячейку A1. Я просто раньше не видел такой реализации в Excel, думал как решить и возник вопрос: "А возможно ли вообще это реализовать?".
Уважаемые форумчане! Есть вопрос. Подскажите пожалуйста, можно ли в файле Excel сделать, допустим в ячейке A1, будет надпись "Добавить файл" нажимаем, открывается окно, в которой можно перетащить файл и он упадет в заранее подготовленную папку. Ну типа документы по авто, которые мы можем посмотреть потом нажав на ячейку A1. Я просто раньше не видел такой реализации в Excel, думал как решить и возник вопрос: "А возможно ли вообще это реализовать?".Булат
Булат, У Вас два вопроса в одном. Ответ - да, можно, но какими силами зависит от того что нужно реализовать . Загрузка файла, ссылка на него и открытие по клику- не проблема. Drag and drop - наверно не просто, но тоже можно, вопрос , есть ли смысл в этом или достаточно стандартного диалого открытия файла.
Булат, У Вас два вопроса в одном. Ответ - да, можно, но какими силами зависит от того что нужно реализовать . Загрузка файла, ссылка на него и открытие по клику- не проблема. Drag and drop - наверно не просто, но тоже можно, вопрос , есть ли смысл в этом или достаточно стандартного диалого открытия файла.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Sub tt() Dim x x = GetFolderPath("Кидайте сюда!", "c:\Temp") End Sub
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", Optional ByVal InitialPath As String = "c:\") As String GetFolderPath = "": PS = Application.PathSeparator With Application.FileDialog(msoFileDialogFolderPicker) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath If .Show = -1 Then GetFolderPath = .SelectedItems(1): If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS End With End Function
[/vba]
Можно так: [vba]
Код
Sub tt() Dim x x = GetFolderPath("Кидайте сюда!", "c:\Temp") End Sub
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", Optional ByVal InitialPath As String = "c:\") As String GetFolderPath = "": PS = Application.PathSeparator With Application.FileDialog(msoFileDialogFolderPicker) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath If .Show = -1 Then GetFolderPath = .SelectedItems(1): If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS End With End Function
(Здорово, работает, но к сожалению есть минусы: - при выполнении макроса, сам Excel блокируется, что не позволит, например, перетащить файл с рабочего стола. - ну самая печалька, что файла то не видно в папке, я имею виду в окне "Кидай сюда!")
(Здорово, работает, но к сожалению есть минусы: - при выполнении макроса, сам Excel блокируется, что не позволит, например, перетащить файл с рабочего стола. - ну самая печалька, что файла то не видно в папке, я имею виду в окне "Кидай сюда!")Булат
Суть в том, что с основным файлом будут работать, разные, простите меня, "косячники" и надо чтобы они не искали папку в которую надо положить файл а просто перетащили в окошко, нажали "ок" и все. А еще есть такие пользователи, для которых создание простой гиперссылки на файл, вообще верх совершенства по владению Excel (это к теме если не заморачиваться с Drag and drop)
bmv98rus,
Суть в том, что с основным файлом будут работать, разные, простите меня, "косячники" и надо чтобы они не искали папку в которую надо положить файл а просто перетащили в окошко, нажали "ок" и все. А еще есть такие пользователи, для которых создание простой гиперссылки на файл, вообще верх совершенства по владению Excel (это к теме если не заморачиваться с Drag and drop)Булат
Сообщение отредактировал Булат - Воскресенье, 22.01.2017, 04:49
Булат, Вы меня не поняли немного. Предложенный вариант от Hugo, и есть использование стандартного диалого открытия файла. Обработать полученный путь, перенести указанный файл в "хранилище" и оформить туда ссылку каким-либо образом -это фопрос реализации скрипта , и это возможно. Drag and Drop реализуем при определенных умениях через дополнительные Controls
Булат, Вы меня не поняли немного. Предложенный вариант от Hugo, и есть использование стандартного диалого открытия файла. Обработать полученный путь, перенести указанный файл в "хранилище" и оформить туда ссылку каким-либо образом -это фопрос реализации скрипта , и это возможно. Drag and Drop реализуем при определенных умениях через дополнительные Controlsbmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Воскресенье, 22.01.2017, 12:07
Я думаю что если использовать диалог для указания файла - то этому неумёхе-пользователю придётся в этом диалоге искать по дереву свой файл, что не факт что получится Но если заранее известно что файл будет всегда в одном каталоге - то можно сразу этот каталог и подставить, и так обычно и делают. Ну а как там на самом деле будет происходить процесс - нам неведомо...
Я думаю что если использовать диалог для указания файла - то этому неумёхе-пользователю придётся в этом диалоге искать по дереву свой файл, что не факт что получится Но если заранее известно что файл будет всегда в одном каталоге - то можно сразу этот каталог и подставить, и так обычно и делают. Ну а как там на самом деле будет происходить процесс - нам неведомо...Hugo
Я думаю что если использовать диалог для указания файла - то этому неумёхе-пользователю придётся в этом диалоге искать по дереву свой файл, что не факт что получится
Я думаю что если использовать диалог для указания файла - то этому неумёхе-пользователю придётся в этом диалоге искать по дереву свой файл, что не факт что получится
Булат, Не увидел развития идеи. Вы её в общих чертах сформулировали в первом сообщении. По быстрому у меня проверить работу Drag&Drop не вышло если интересно то ищите информацию по событию OLEDragDrop https://msdn.microsoft.com/en-us/library/aa445522(v=vs.60).aspx , которые есть, как минимум, в дополнительных Microsoft ListView control и Microsoft TreeView control. Есть упоминания о том что и в Excel при опции у этих объектов OLEDropMode = 1 пути к файлу(файлам) получаются из массива. У меня массив пуст, но долго я копать не стал. Если найдется доброволец который уже делал такое, или готов покапаться и сделать все это, то остальная часть - примитивна.
Успехов. P.S. Странно, сдела все форме Access. DragAndDrop Работает. Сделал в Excel то что делал день назад и неработало - тоже заработало.
Булат, Не увидел развития идеи. Вы её в общих чертах сформулировали в первом сообщении. По быстрому у меня проверить работу Drag&Drop не вышло если интересно то ищите информацию по событию OLEDragDrop https://msdn.microsoft.com/en-us/library/aa445522(v=vs.60).aspx , которые есть, как минимум, в дополнительных Microsoft ListView control и Microsoft TreeView control. Есть упоминания о том что и в Excel при опции у этих объектов OLEDropMode = 1 пути к файлу(файлам) получаются из массива. У меня массив пуст, но долго я копать не стал. Если найдется доброволец который уже делал такое, или готов покапаться и сделать все это, то остальная часть - примитивна.
Успехов. P.S. Странно, сдела все форме Access. DragAndDrop Работает. Сделал в Excel то что делал день назад и неработало - тоже заработало.bmv98rus
Вот только бесит предупреждения безопасности, как бы его макросом отключить???
А еще, подскажите пожалуйста, возможно, чтобы при перемещении файла в окно "UserForm1" он копировался в установленную папку и ссылка формировалась на эту папку. Если возможно, то помогите в реализации, пооожааалууйстаа
bmv98rus, Большое спасибо
Просто и в точку
Вот только бесит предупреждения безопасности, как бы его макросом отключить???
А еще, подскажите пожалуйста, возможно, чтобы при перемещении файла в окно "UserForm1" он копировался в установленную папку и ссылка формировалась на эту папку. Если возможно, то помогите в реализации, пооожааалууйстаа Булат
Любой каприз за ваши деньги. Если серьезно, то для нормального рабочего варианта надо много чего допиливать. Я простые проверки вставил, но не прорабатывал. Я не цену набиваю, одно дело показать как, другое дело сделать рабочее решение.
Булат,
Любой каприз за ваши деньги. Если серьезно, то для нормального рабочего варианта надо много чего допиливать. Я простые проверки вставил, но не прорабатывал. Я не цену набиваю, одно дело показать как, другое дело сделать рабочее решение.bmv98rus
одно дело показать как, другое дело сделать рабочее решение.
Согласен с Вами, благодарю за пример, теперь ясно, что штука реальная и осуществимая, буду пытаться допилить под себя. Насчет реальных "спасибо", тут Вы тоже, конечно правы, но я пока не знаю точно выгорит ли проект, а спонсорского бюджета к сожалению нет:( Честно, думал в случае успеха списаться с помощниками и обсудить количество бонусов ("Да он знатный врун, подумала толпа" )
одно дело показать как, другое дело сделать рабочее решение.
Согласен с Вами, благодарю за пример, теперь ясно, что штука реальная и осуществимая, буду пытаться допилить под себя. Насчет реальных "спасибо", тут Вы тоже, конечно правы, но я пока не знаю точно выгорит ли проект, а спонсорского бюджета к сожалению нет:( Честно, думал в случае успеха списаться с помощниками и обсудить количество бонусов ("Да он знатный врун, подумала толпа" )
Не в деньгах счастье :-) . Просто одно дело "сдать под ключ" когда тратишь время на оформление , сверки с тем, что хотел получить заказчик, на тесты и варианты кривых ручек пользователе, и просто накидать на коленке концепт. Вот например тут я придумал как показать имя файла без пути, но и путь сохранить в ячейке, а может вам это и не надо. Разное время, желание , интерес. Мне было интересно почему не запустилось сходу Drag&Drop, вот и добил.
Файл перезалил выше. Недоглядел и вставляя проверки фигню сделал.
Булат,
Не в деньгах счастье :-) . Просто одно дело "сдать под ключ" когда тратишь время на оформление , сверки с тем, что хотел получить заказчик, на тесты и варианты кривых ручек пользователе, и просто накидать на коленке концепт. Вот например тут я придумал как показать имя файла без пути, но и путь сохранить в ячейке, а может вам это и не надо. Разное время, желание , интерес. Мне было интересно почему не запустилось сходу Drag&Drop, вот и добил.
Файл перезалил выше. Недоглядел и вставляя проверки фигню сделал.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Среда, 25.01.2017, 14:23
Какие тут вознаграждения :-) . Даже еслиб захотели, то я б не взял. Уже были прецеденты. Конкретно тут я не для этого. Если уж обратили внимание на тему , мне глаз режет некорректный урл. в сообщении. Исправить сам не могу поздно заметил.[/offtop]
[offtop] Pelena,
Какие тут вознаграждения :-) . Даже еслиб захотели, то я б не взял. Уже были прецеденты. Конкретно тут я не для этого. Если уж обратили внимание на тему , мне глаз режет некорректный урл. в сообщении. Исправить сам не могу поздно заметил.[/offtop]bmv98rus
Замечательный Временно просто медведь , процентов на 20.