Страницы: 1
RSS
обновление связи с другим файлом
 
Здравствуйте, столкнулся с такой проблемкой: есть формула =впр(k25;\\svarog\контроль\[18.01.13.xlsm]лист1'!$c$h;5;0) она обновляется только если заново открыть файл или через данные\изменить связи, а мне нужно чтобы связи обновлялись каждый раз после сохранения файла. Подскажите пожалуйста как сделать?
 
Заметил такую вещь, если я держу открытым тот файл из которого беру информацию, то все ок, обновляется моментально
Изменено: Алексей Скворцов - 18.01.2013 03:26:56
 
Цитата
Алексей Скворцов пишет:
а мне нужно чтобы связи обновлялись каждый раз после сохранения файла.
Каждый раз - это когда и как?.. Если не устраивают настройки - при открытии, то скорее всего макросом...  ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
если подробно, то:
есть два файла, два плана, для контроля и отгрузки.
Я их связал впром, благодаря этому в файле отгрузки видно что проверено.
Если я открываю оба файла на компьютере то впр работает как и все формулы, обновляется моментально при каких либо изменениях, без всяких сохранений.
Но если файл контроля закрыт, то связи приходится обновлять вручную!
Двумя способами:
первый - закрыть и открыть файл отгрузки по новой, тогда связи обновятся
второй - через данные\изменить связи\обновить связь

Файлы имеют общий доступ.

Если нельзя настроить обновление автоматом при сохранении то помогите пожалуйста с макросом
 
что такое подключение ? с помощью него можно сделать то что мне нужно?

 
помогите пожалуйста, завтра на работу, хочу доделать свой мега план  :)  

З.ы. В итоге я умозаключения что нужен макросы который при сохранении файла обновляет все связи, все мои ячейки которые впром вытягивают данные с другого файла. Help me!?
Изменено: Алексей Скворцов - 20.01.2013 12:37:14
 
попробовал записать макрс, который обновляет связи

ActiveWorkbook.UpdateLink Name:= _
"G:\svarog\контроль\[18.01.13.xlsm", Type:=xlExcelLinks


Как сделать чтобы он обновлял не зависимо от пути к файлу? ведь каждый новый план будет на другое число
Как сделать что бы макрос обновлял все связи, при сохранении файла?

Помогите пожалуйста
 
Код модуля ЭтаКнига
Код
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  On Error Resume Next
  Me.UpdateLink Me.LinkSources
End Sub
 
Огромное спасибо!

Подскажите пожалуйста как сделать чтобы макрос игнорировал защиту?
Я хочу спасти формулы от любителей их портить, включил защиту всех ячеек с формулами и макрос перестал обновлять связи, пришлось отключить. (файл в общем доступе)

p.s. Вставил в ваш макрос строку
Worksheets("план"  ;)  .Protect Password:="555", UserInterfaceOnly:=True
После этого включил защиту, проверил связь обновляется, после этого открыл общий доступ и все перестало работать и вылезла ошибка 1004
Изменено: Алексей Скворцов - 28.01.2013 21:02:56
 
Код
Worksheets("план") .Protect Password:="555", UserInterfaceOnly:=True

код выполняется каждый раз при открытии книги. Но нига у Вас в общем доступе и получаете ошибку вполне очевидную, т.к. нельзя изменять имеющиеся параметры защиты для книг в общем доступе. Чтобы это сделать сначала необходимо снять общий доступ, установить защиту и заново установить общий доступ.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Если установлена защита листа, да еще и общий доступ, тогда лучше так:
(код необходимо поместить в модуль ЭтаКнига вместо того, что был раньше)
Код
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim x
  On Error Resume Next
  Application.ScreenUpdating = False
  For Each x In Me.LinkSources(xlExcelLinks)
    Workbooks.Open(Filename:=x, UpdateLinks:=False, ReadOnly:=True).Close
    'If Err Then MsgBox x & vbLf & Err.Description, vbExclamation, "Link Error"
  Next
  Application.ScreenUpdating = True
End Sub
Изменено: ZVI - 26.01.2013 12:54:39
 
The_Prist и ZVI!
Ваши консультации - всегда СУПЕР!
 
Цитата
The_Prist пишет: код выполняется каждый раз при открытии книги...
пытался смастерить сам) из того что нашёл в приёмах!
Цитата
Vladimir Zakharov пишет: Если установлена защита листа, да еще и общий доступ, тогда лучше так:
спасибо большое, в понедельник опробую!
 
Что то у меня ничего не получается. Макрос при сохранении файла просит сохранить файл из которого берутся данные?
При сохранении пытается еще сохранить квартир копию...
И зачем 7 строчка? Мне нужно её включать?
 
Очевидно, во внешних файлах применены "летучие" функции.
Тогда в 6-й строке кода нужно добавить в конце False, вот так:
Код
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim x
  On Error Resume Next
  Application.ScreenUpdating = False
  For Each x In Me.LinkSources(xlExcelLinks)
    Workbooks.Open(Filename:=x, UpdateLinks:=False, ReadOnly:=True).Close False
    'If Err Then MsgBox x & vbLf & Err.Description, vbExclamation, "Link Error"
  Next
  Application.ScreenUpdating = True
End Sub


А 7-я строка, если её раскомментировать, будет выводить предупреждение в случае, когда отсутствует файл, на который ссылаются формулы.
 
Предлагаю VBS скрипт:
В файле "AutoRefreshScr.txt" пропишите путь к папке, где необходимо обновить файлы:
Код
sPath = "C:\Documents and Settings\User\Мои документы\Загрузки\"

Проставьте в файле "AutoRefreshScr.txt" расширение AutoRefreshScr.vbs
Запустите скрипт - все файлы в указанной папке обновляться.
 
Цитата
Бонифаций пишет:
Предлагаю VBS скрипт:.
Скрипт интересный, но, к сожалению, таким скриптом ячейки со ссылками на другие файлы не обновятся. Ваш скрипт написан для обновления сводных таблиц и внешних запросов, но не для обновления прямых внешних ссылок.  В первом сообщении Алексей уточнял, что "нужно, чтобы связи обновлялись каждый раз после сохранения файла", и позже ещё добавил, что "нужен макрос, который при сохранении файла обновляет все связи, все мои ячейки которые ВПРом вытягивают данные с другого файла".
 
ZVI, проверял всё отлично работает.
Но возникли проблемы, когда запустил файл на работе и его открыли 3 человека.
По началу всё работало нормально, конечно дольше чем обычно, файл немного тяжеловат, но потом начались страшные глюки, перечислю:
на одном компе наблюдалось что то очень странное, на экране начиналась цветомузыка, водишь мышкой по excel а там всё мигает, пропадает, появляется, кусками, или кнопками, в общем пока не вырубил excel в диспетчере всё мигало.
Ещё excel зависал при переключении между файлами, при этом в диспетчере размер вырастал до 702 мегабайт и всё висело, только принудительно выключался, иногда вылетала ошибка про недостаточно ресурсов...

В итоге придётся объединить 2 файла, что бы убрать связи.
 
подскажите как менять путь  в формуле..... например у меня файлы январь , февраль, март и т д... в февраль берется с января в март с февраля в формуле прописывать каждый раз месяц неудобно есть ли выход формулы у меня выглядит вот так  ='\\Pros5\Мои документы\20  свод 2013 год\[апрель 2013 год.xls]223'!C37
 
Обновление связей и измение связей - совсем разное. Не находите?
Похоже, Вам не в эту тему.
 
У меня почти тоже самая проблема. Поэтому, если можно, не буду открывать новую тему,

Только разница в том что,  если я держу открытым обе  файлы, в 1-м комп.  все ок, а в другом комп. ни как.
Не пойму в чем проблема.

И еще хотела использувать Ваш код, почему-то у меня не получается. Посмотрите пожалуйста мои файлы, может быт я что-то не так делаю
 
Цитата
Elmira пишет:
если я держу открытым обефайлы, в 1-м комп.все ок, а в другом комп. ни как. Не пойму в чем проблема.
Возможная проблема: на втором компьютере файлы открыты в разных приложениях.
 
Ребят, такой же вопрос - файлы лежат рядом, но один берет данные из другого только когда тот открыт, EXCEL 2010. При открытии спрашивает "Обновить?", но после обновления дает ошибку #ЗНАЧ. При этом, даже если файлы с требуемыми данными не открыты, в "Изменить связи" во всех зависимых связях пишет состояние "ОК".

Неужели нельзя без макроса сделать так, чтобы данные обновлялись без открытия файла данных? На Excel 2003 вроде работало, но там нету СУММЕСЛИМН.

Спасибо!
Изменено: thalamix - 22.01.2014 14:53:33 (Подписался на тему)
 
А если я хочу сделать так чтобы по нажатию кнопки макрос открывал определенный лист который заранее скрыт и обновлял только его? подскажите что надо изменить в вышеперечисленных кодах? (тоже защищенные ячейки с формулами которые находятся в общем доступе)
Изменено: meshkale - 30.01.2014 15:04:23
 
Цитата
На Excel 2003 вроде работало, но там нету СУММЕСЛИМН
СУММЕСЛИМН не работает с закрытыми книгами.  СУММЕСЛИ тоже.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
хм. интересно, жива ли тема...
вопрос в следующем. формула ссылается на файл, который лежит в каталоге к которому у меня есть доступ, и у меня при открытии все данные нормально обновляются. но, если этот же файл открывает человек, у которого групповыми политиками запрещен доступ к папке, где лежит файл, на который ссылается формула, у него ничего не происходит. так вот, можно ли это как нибудь обойти, чтобы формулы обновлялись, невзирая на групповые политики?

спасибо за ответ!
 
Доброго времени суток, скачал файл скрипт AutoRefreshScr, а он из 5 запросов обновляет только 4 это в одном файле, в другом из 6 запросов обновляет только 3.  
Страницы: 1
Наверх