Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Общий доступ к файлу и гиперссылки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Общий доступ к файлу и гиперссылки
fairylive Дата: Понедельник, 25.01.2016, 12:26 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Как можно сделать гиперссылки при совместном доступе к файлу? Если через Рецензирование - Доступ к книге включить возможность нескольким пользователям изменять файл, то пропадает возможность вставлять гиперссылки (хотя старые, созданные когда доступ был единоличный, работают).
Есть простая таблица - в ней список объектов и гиперссылки на файл имеющий отношение к объекту (например заказ материалов). Суть в том что с этим файлом должны работать одновременно несколько конструкторов и прочих начальников отделов (цех, снабжение, пто и т.д.).
 
Ответить
СообщениеДобрый день!
Как можно сделать гиперссылки при совместном доступе к файлу? Если через Рецензирование - Доступ к книге включить возможность нескольким пользователям изменять файл, то пропадает возможность вставлять гиперссылки (хотя старые, созданные когда доступ был единоличный, работают).
Есть простая таблица - в ней список объектов и гиперссылки на файл имеющий отношение к объекту (например заказ материалов). Суть в том что с этим файлом должны работать одновременно несколько конструкторов и прочих начальников отделов (цех, снабжение, пто и т.д.).

Автор - fairylive
Дата добавления - 25.01.2016 в 12:26
_Boroda_ Дата: Понедельник, 25.01.2016, 12:50 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16742
Репутация: 6534 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
А если использовать функцию ГИПЕРССЫЛКА?
https://support.office.com/ru-ru....76f577f


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА если использовать функцию ГИПЕРССЫЛКА?
https://support.office.com/ru-ru....76f577f

Автор - _Boroda_
Дата добавления - 25.01.2016 в 12:50
fairylive Дата: Понедельник, 25.01.2016, 13:00 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
А если использовать функцию ГИПЕРССЫЛКА?

Про функцию знал. Попробовать забыл. Спасибо. Так работает. Но будет не привычно ВСЕМ.
 
Ответить
Сообщение
А если использовать функцию ГИПЕРССЫЛКА?

Про функцию знал. Попробовать забыл. Спасибо. Так работает. Но будет не привычно ВСЕМ.

Автор - fairylive
Дата добавления - 25.01.2016 в 13:00
fairylive Дата: Вторник, 26.01.2016, 15:36 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Подскажите а нормально ли то что теперь данный файл безбожно тормозит. Медленно открывается и закрывается. Там пока не больше 25 строк. В одной из колонок есть гиперссылки. Это из за них или из-за общего доступа?

Есть ли что-то чем проверить файл на ошибки если он вдруг глючный какой-то? Или с excel такого не бывает? Дело в том что вчера один из сотрудников выключил свой комп, а данный файл на сервере считал что пользователь всё ещё использует этот файл. При этом файл тормозил даже когда я удалил подобных пользователей и открывал его в одиночку. Но днём его открывают одновременно 5-6 человек или может даже больше.
 
Ответить
СообщениеПодскажите а нормально ли то что теперь данный файл безбожно тормозит. Медленно открывается и закрывается. Там пока не больше 25 строк. В одной из колонок есть гиперссылки. Это из за них или из-за общего доступа?

Есть ли что-то чем проверить файл на ошибки если он вдруг глючный какой-то? Или с excel такого не бывает? Дело в том что вчера один из сотрудников выключил свой комп, а данный файл на сервере считал что пользователь всё ещё использует этот файл. При этом файл тормозил даже когда я удалил подобных пользователей и открывал его в одиночку. Но днём его открывают одновременно 5-6 человек или может даже больше.

Автор - fairylive
Дата добавления - 26.01.2016 в 15:36
Manyasha Дата: Вторник, 26.01.2016, 16:45 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
fairylive, а если удалить гиперссылки быстрее будет работать?
Можно еще макросом попробовать: если ссылки только в одном столбце (у меня в примере в 3-м), можно повесить событие, например на 2-й щелчок
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns(3)) Is Nothing Then
        If Target.Value <> "" Then Shell "explorer.exe " & Target.Value, vbNormalFocus: Cancel = True
    End If
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеfairylive, а если удалить гиперссылки быстрее будет работать?
Можно еще макросом попробовать: если ссылки только в одном столбце (у меня в примере в 3-м), можно повесить событие, например на 2-й щелчок
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns(3)) Is Nothing Then
        If Target.Value <> "" Then Shell "explorer.exe " & Target.Value, vbNormalFocus: Cancel = True
    End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 26.01.2016 в 16:45
fairylive Дата: Вторник, 26.01.2016, 17:02 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
fairylive, а если удалить гиперссылки быстрее будет работать?

Вечером попробую когда все уйдут уже.

С макросами сложнее будет. Записать я его могу. А вот написать на визуал бэйсике нет.
 
Ответить
Сообщение
fairylive, а если удалить гиперссылки быстрее будет работать?

Вечером попробую когда все уйдут уже.

С макросами сложнее будет. Записать я его могу. А вот написать на визуал бэйсике нет.

Автор - fairylive
Дата добавления - 26.01.2016 в 17:02
Manyasha Дата: Вторник, 26.01.2016, 17:36 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
Так Вы скопируйте то, что я написала в модуль листа (ПКМ по ярлычку листа - Исходный код).
В Columns(3) поставьте номер нужной колонки.

Если что-то не получится, покажете файл.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеТак Вы скопируйте то, что я написала в модуль листа (ПКМ по ярлычку листа - Исходный код).
В Columns(3) поставьте номер нужной колонки.

Если что-то не получится, покажете файл.

Автор - Manyasha
Дата добавления - 26.01.2016 в 17:36
fairylive Дата: Среда, 27.01.2016, 19:02 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Так Вы скопируйте то, что я написала в модуль листа

Скопировал. Теперь по двойному щелчку открывается проводник Мой компьютер - Мои документы. А как сделать чтобы открывался сразу сам файл? Я так понимаю это можно сделать. Решение очень крутое, за что вам большое спасибо!

PS Сейчас мы в этом файле с общим доступом вставляем гиперссылку через функцию. Это не сложно но немного долго (и многие сотрудники забивают на вторую часть формулы - на имя ссылки). По идее если в ячейке будет лежать просто адрес файла то с помощью макроса по двойному щелчку можно будет открыть сам файл. Так будет чуточку проще работать с этим файлом. И возможно он будет меньше тормозить.

PPS Вообще по поводу тормозов. Если файл скопировать с сервера к себе на локальный компьютер он будет открываться быстро. Если ещё вдобавок отключить общий доступ то ещё и размер файла в три раза уменьшится. Я думаю дело в журнале изменений. Сейчас там в настройках стоит хранить журнал 300 дней. Но по сути нам он не нужен вообще. Ну максимум неделю. Сейчас уже столкнулись с тем что при совместной работе постоянно возникают конфликты и некоторые строчки уже были перезаписаны и потеряны. По этому поводу договорились что тот кто хочет сделать изменения в новой строке сначала пишет резерв и свою фамилию и выходит с сохранением. Если есть конфликт то принимаются изменения которые вносились раньше, а данный человек резервирует строку снова. Пока это самое логичное что нам пришло в голову.

Но мне ещё сдаётся что надо бы замутить всё это дело в Access. Чтобы не трогать таблицу с данными вообще. Те кто должны внести изменения они сделают это через форму. Те кто должен открыть таблицу для просмотра они это тоже сделают независимо.

Прикрепил файл без заполненных данных. Просто чттобы было понимание о чём речь. До красной линии - то что надо заполнить тем кто составляет заявку. После разного рода контроль - пишется фамилия принявшего и ответственного и дата.

Судя по объёму файла за неделю (150кб) через месяц это будет многомегабайтный эксель. А через полгода боюсь представить. А тормозит он уже сейчас.
К сообщению приложен файл: ___.xlsm (51.7 Kb)
 
Ответить
Сообщение
Так Вы скопируйте то, что я написала в модуль листа

Скопировал. Теперь по двойному щелчку открывается проводник Мой компьютер - Мои документы. А как сделать чтобы открывался сразу сам файл? Я так понимаю это можно сделать. Решение очень крутое, за что вам большое спасибо!

PS Сейчас мы в этом файле с общим доступом вставляем гиперссылку через функцию. Это не сложно но немного долго (и многие сотрудники забивают на вторую часть формулы - на имя ссылки). По идее если в ячейке будет лежать просто адрес файла то с помощью макроса по двойному щелчку можно будет открыть сам файл. Так будет чуточку проще работать с этим файлом. И возможно он будет меньше тормозить.

PPS Вообще по поводу тормозов. Если файл скопировать с сервера к себе на локальный компьютер он будет открываться быстро. Если ещё вдобавок отключить общий доступ то ещё и размер файла в три раза уменьшится. Я думаю дело в журнале изменений. Сейчас там в настройках стоит хранить журнал 300 дней. Но по сути нам он не нужен вообще. Ну максимум неделю. Сейчас уже столкнулись с тем что при совместной работе постоянно возникают конфликты и некоторые строчки уже были перезаписаны и потеряны. По этому поводу договорились что тот кто хочет сделать изменения в новой строке сначала пишет резерв и свою фамилию и выходит с сохранением. Если есть конфликт то принимаются изменения которые вносились раньше, а данный человек резервирует строку снова. Пока это самое логичное что нам пришло в голову.

Но мне ещё сдаётся что надо бы замутить всё это дело в Access. Чтобы не трогать таблицу с данными вообще. Те кто должны внести изменения они сделают это через форму. Те кто должен открыть таблицу для просмотра они это тоже сделают независимо.

Прикрепил файл без заполненных данных. Просто чттобы было понимание о чём речь. До красной линии - то что надо заполнить тем кто составляет заявку. После разного рода контроль - пишется фамилия принявшего и ответственного и дата.

Судя по объёму файла за неделю (150кб) через месяц это будет многомегабайтный эксель. А через полгода боюсь представить. А тормозит он уже сейчас.

Автор - fairylive
Дата добавления - 27.01.2016 в 19:02
Manyasha Дата: Четверг, 28.01.2016, 11:43 | Сообщение № 9
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
А как сделать чтобы открывался сразу сам файл?

У меня вроде и так все открывается... Только спрашивает сначала открыть или сохранить.

Если вот так написать, не будет спрашивать
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns(5)) Is Nothing Then
        If Target.Value <> "" Then
            fPath = "start " & """"" " & """" & Target.Value & """"""
            Shell "cmd /c" & fPath, vbHide: Cancel = True
        End If
    End If
End Sub
[/vba]
Только имейте ввиду, если у кого-то сетевой диск не подключен или называется не так, как у Вас, Ваши ссылки могут не открыться. Так что лучше написать проверку для сетевых дисков, или ставить путь к файлу не "Z:\папка\файл", а "\\xxx.xxx.xxx.xxx\Share\папка\файл"


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
А как сделать чтобы открывался сразу сам файл?

У меня вроде и так все открывается... Только спрашивает сначала открыть или сохранить.

Если вот так написать, не будет спрашивать
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns(5)) Is Nothing Then
        If Target.Value <> "" Then
            fPath = "start " & """"" " & """" & Target.Value & """"""
            Shell "cmd /c" & fPath, vbHide: Cancel = True
        End If
    End If
End Sub
[/vba]
Только имейте ввиду, если у кого-то сетевой диск не подключен или называется не так, как у Вас, Ваши ссылки могут не открыться. Так что лучше написать проверку для сетевых дисков, или ставить путь к файлу не "Z:\папка\файл", а "\\xxx.xxx.xxx.xxx\Share\папка\файл"

Автор - Manyasha
Дата добавления - 28.01.2016 в 11:43
Manyasha Дата: Четверг, 28.01.2016, 12:19 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
написать проверку

решила дописать )
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim l As String
    Set rLinks = Intersect(Target, Columns(5))
    If rLinks Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For Each cell In rLinks
        If InStr(cell.Value, ":") Then
            l = Mid$(cell.Value, 1, InStr(cell.Value, ":") - 1)
            cell.Value = Replace(cell.Value, l & ":", GetNetworkDriveAddress(l))
        End If
    Next cell
    Application.EnableEvents = True
End Sub
[/vba][vba]
Код
Function GetNetworkDriveAddress(drLetter As String)
    Dim fso, d
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each d In fso.Drives
        If d.DriveType = 3 And drLetter = d.DriveLetter Then
            GetNetworkDriveAddress = d.ShareName: Exit Function
        End If
    Next d
    GetNetworkDriveAddress = drLetter & ":"
End Function
[/vba]
К сообщению приложен файл: 111111.xlsm (56.0 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
написать проверку

решила дописать )
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim l As String
    Set rLinks = Intersect(Target, Columns(5))
    If rLinks Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For Each cell In rLinks
        If InStr(cell.Value, ":") Then
            l = Mid$(cell.Value, 1, InStr(cell.Value, ":") - 1)
            cell.Value = Replace(cell.Value, l & ":", GetNetworkDriveAddress(l))
        End If
    Next cell
    Application.EnableEvents = True
End Sub
[/vba][vba]
Код
Function GetNetworkDriveAddress(drLetter As String)
    Dim fso, d
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each d In fso.Drives
        If d.DriveType = 3 And drLetter = d.DriveLetter Then
            GetNetworkDriveAddress = d.ShareName: Exit Function
        End If
    Next d
    GetNetworkDriveAddress = drLetter & ":"
End Function
[/vba]

Автор - Manyasha
Дата добавления - 28.01.2016 в 12:19
fairylive Дата: Четверг, 28.01.2016, 14:06 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
решила дописать )

Магия какая-то))) Спасибо! Теперь открывается.
Сетевых дисков нет. Есть просто сеть от куда заходим на сервер ссылки что-то типа \\server\doc\proect\file.xls

ЗЫ Кажется пришла пора учиться программировать)))
 
Ответить
Сообщение
решила дописать )

Магия какая-то))) Спасибо! Теперь открывается.
Сетевых дисков нет. Есть просто сеть от куда заходим на сервер ссылки что-то типа \\server\doc\proect\file.xls

ЗЫ Кажется пришла пора учиться программировать)))

Автор - fairylive
Дата добавления - 28.01.2016 в 14:06
fairylive Дата: Пятница, 29.01.2016, 17:01 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Если вот так написать, не будет спрашивать
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns(5)) Is Nothing Then
        If Target.Value <> "" Then
            fPath = "start " & """"" " & """" & Target.Value & """"""
            Shell "cmd /c" & fPath, vbHide: Cancel = True
        End If
    End If
End Sub
[/vba]


А как дописать данный код чтобы в ячейке отображалось только имя файла без пути до него. Но по двойному щелчку надо бы чтобы открывался сам файл. Можно как-то сделать видимым не весь текст в ячейке, а избирательно. В данном случае из всего пути файла хотелось бы видеть только имя файла.
[moder]К данной теме это не относится, создайте новую.[/moder]


Сообщение отредактировал Manyasha - Пятница, 29.01.2016, 17:53
 
Ответить
Сообщение
Если вот так написать, не будет спрашивать
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns(5)) Is Nothing Then
        If Target.Value <> "" Then
            fPath = "start " & """"" " & """" & Target.Value & """"""
            Shell "cmd /c" & fPath, vbHide: Cancel = True
        End If
    End If
End Sub
[/vba]


А как дописать данный код чтобы в ячейке отображалось только имя файла без пути до него. Но по двойному щелчку надо бы чтобы открывался сам файл. Можно как-то сделать видимым не весь текст в ячейке, а избирательно. В данном случае из всего пути файла хотелось бы видеть только имя файла.
[moder]К данной теме это не относится, создайте новую.[/moder]

Автор - fairylive
Дата добавления - 29.01.2016 в 17:01
Proff_BMS Дата: Четверг, 22.10.2020, 13:52 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Может кому ещё такой способ подойдёт. Нашёл вот здесь.
Сначала отключаются сообщения с предупреждениями и удаляется общий доступ к книге. Затем добавляется гиперссылка и возвращается доступ к книге. Конечно, при таком спососбе удаляется история изменений книги, да и в больших книгах может сохранять долго.

[vba]
Код
Sub AddHyperlink()
    Dim cell As Range

    Application.DisplayAlerts = False

    ' Unshare the Workbook
    If ActiveWorkbook.MultiUserEditing Then
        ActiveWorkbook.ExclusiveAccess
    End If

    ' Change address in cell to a hyperlink.
    If ActiveCell = "" Then
        ActiveCell.Hyperlinks.Delete
    Else
        For Each cell In Intersect(Selection, _
          Selection.SpecialCells(xlConstants, xlTextValues))
            With Worksheets(1)
                .Hyperlinks.Add Anchor:=cell, _
                  Address:=cell.Value, _
                  ScreenTip:=cell.Value, _
                  TextToDisplay:=cell.Value
            End With
        Next cell
    End If

    ' Reshare the Workbook
    If Not ActiveWorkbook.MultiUserEditing Then
        ActiveWorkbook.SaveAs _
          Filename:=ActiveWorkbook.FullName, _
          AccessMode:=xlShared
    End If
End Sub
[/vba]
 
Ответить
СообщениеМожет кому ещё такой способ подойдёт. Нашёл вот здесь.
Сначала отключаются сообщения с предупреждениями и удаляется общий доступ к книге. Затем добавляется гиперссылка и возвращается доступ к книге. Конечно, при таком спососбе удаляется история изменений книги, да и в больших книгах может сохранять долго.

[vba]
Код
Sub AddHyperlink()
    Dim cell As Range

    Application.DisplayAlerts = False

    ' Unshare the Workbook
    If ActiveWorkbook.MultiUserEditing Then
        ActiveWorkbook.ExclusiveAccess
    End If

    ' Change address in cell to a hyperlink.
    If ActiveCell = "" Then
        ActiveCell.Hyperlinks.Delete
    Else
        For Each cell In Intersect(Selection, _
          Selection.SpecialCells(xlConstants, xlTextValues))
            With Worksheets(1)
                .Hyperlinks.Add Anchor:=cell, _
                  Address:=cell.Value, _
                  ScreenTip:=cell.Value, _
                  TextToDisplay:=cell.Value
            End With
        Next cell
    End If

    ' Reshare the Workbook
    If Not ActiveWorkbook.MultiUserEditing Then
        ActiveWorkbook.SaveAs _
          Filename:=ActiveWorkbook.FullName, _
          AccessMode:=xlShared
    End If
End Sub
[/vba]

Автор - Proff_BMS
Дата добавления - 22.10.2020 в 13:52
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!