Возник вопрос - "Как можно связать 2 разные книги?"
Я связал выпадающий список из этой книги (1) со списком из другой (2), все как положено - переключением окон и т.д. Все хорошо, список отображается! Но стоит закрыть книгу (2) - то выпадающий список книги (1) перестает работать.
В чем дело, я разобраться не могу. Подсказки на сайтах не помогают.
Всем доброго времени суток!
Возник вопрос - "Как можно связать 2 разные книги?"
Я связал выпадающий список из этой книги (1) со списком из другой (2), все как положено - переключением окон и т.д. Все хорошо, список отображается! Но стоит закрыть книгу (2) - то выпадающий список книги (1) перестает работать.
В чем дело, я разобраться не могу. Подсказки на сайтах не помогают.GaLaXoN
GaLaXoN, с закрытой книгой не получится... А вывести нужный диапазон в эту книгу: ='C:\...\1_АЗ.xlsx'!Спис_001 например, на скрытый лист и сделать список из него не подходит?
GaLaXoN, с закрытой книгой не получится... А вывести нужный диапазон в эту книгу: ='C:\...\1_АЗ.xlsx'!Спис_001 например, на скрытый лист и сделать список из него не подходит?Manyasha
ЯД: 410013299366744 WM: R193491431804
Сообщение отредактировал Manyasha - Четверг, 29.10.2015, 13:15
Manyasha, там просто очень большие диапазоны и их много. не вариант их все перекидывать на эту книгу...... правильно понял: чтобы выпадающий список работал, нужно открывать книгу (2)? и никак это не исправить?...
Manyasha, там просто очень большие диапазоны и их много. не вариант их все перекидывать на эту книгу...... правильно понял: чтобы выпадающий список работал, нужно открывать книгу (2)? и никак это не исправить?...GaLaXoN
GaLaXoN, можно макросом формировать. Чтобы отслеживать изменения в исходном диапазоне, можно обновлять, например, при открытии, при сохранении и при активации листа. Но в коде 2-я книга все равно будет открываться.
GaLaXoN, можно макросом формировать. Чтобы отслеживать изменения в исходном диапазоне, можно обновлять, например, при открытии, при сохранении и при активации листа. Но в коде 2-я книга все равно будет открываться.Manyasha
Manyasha, да мне в принципе не нужно чтобы обновлялось.........просто нужно чтобы работал выпадающий список...... хм..... т.е. как не крути, а сделать этого без открывания 2 книги нельзя......печально!
Manyasha, спасибо большое за консультацию! =)))
Manyasha, да мне в принципе не нужно чтобы обновлялось.........просто нужно чтобы работал выпадающий список...... хм..... т.е. как не крути, а сделать этого без открывания 2 книги нельзя......печально!
Manyasha, спасибо большое за консультацию! =)))GaLaXoN
Если не нужно, чтобы обновлялось - можно макросом заменить во всех выпадающих списках ссылки на значения... тогда выпадать будет, но обновить не сможете. См. пример такого списка в файле
Если не нужно, чтобы обновлялось - можно макросом заменить во всех выпадающих списках ссылки на значения... тогда выпадать будет, но обновить не сможете. См. пример такого списка в файлеSLAVICK
GaLaXoN, самый простой вариант, сделать кнопочку для загрузки данных из книги 2. Нажали 1 раз, все данные из Книги 2 подгрузились в скрытый лист, и работайте с Книгой 1 сколько душе угодно сегодня-завтра-послезавтра. Через месяц захотели актуализировать данные, нажали во второй раз кнопку.
GaLaXoN, самый простой вариант, сделать кнопочку для загрузки данных из книги 2. Нажали 1 раз, все данные из Книги 2 подгрузились в скрытый лист, и работайте с Книгой 1 сколько душе угодно сегодня-завтра-послезавтра. Через месяц захотели актуализировать данные, нажали во второй раз кнопку.Мурад
Пожалуйста! Проверяйте. Основной файл - 9312974 Файл со списком для загрузки - zagr Сохраните только оба файла на диске D:\, либо пропишите другой путь в коде
Пожалуйста! Проверяйте. Основной файл - 9312974 Файл со списком для загрузки - zagr Сохраните только оба файла на диске D:\, либо пропишите другой путь в кодеМурад
как не крути, а сделать этого без открывания 2 книги нельзя......печально!
Открывать не обязательно, макросом можно формировать список "на лету" или временно записывать данные на скрытый лист и без открытия с помощью [vba]
Код
'file - полный путь к файлу 'list - наименование листа 'cel1_ - адрес ячейки (RC) arg1$ = "'" & file & list & "'!" & cel1_ zn1_ = ExecuteExcel4Macro(arg1$)
как не крути, а сделать этого без открывания 2 книги нельзя......печально!
Открывать не обязательно, макросом можно формировать список "на лету" или временно записывать данные на скрытый лист и без открытия с помощью [vba]
Код
'file - полный путь к файлу 'list - наименование листа 'cel1_ - адрес ячейки (RC) arg1$ = "'" & file & list & "'!" & cel1_ zn1_ = ExecuteExcel4Macro(arg1$)
Sub Замена_ссылок_в_вып_Сп_знач() Dim c As Range, r As Range, i&, ii&, s$, a For Each c In Selection On Error Resume Next a = c.Validation.Formula1 If Err.Number > 0 Then Err.Clear Else Set r = Range(a) If Not r Is Nothing Then m = r.Value For i = 1 To UBound(m) For ii = 1 To UBound(m, 2) If i > 1 Xor ii > 1 Then s = s & "," & m(i, ii) Else s = m(i, ii) Next Next With c.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=s End With End If End If Next End Sub
[/vba]
Работает так: Нужно открыть все файлы. выделить нужные ячейки Запустить макрос.
Он заменяет все ссылки в проверке данных на значения.
Ну получилось вот что:
[vba]
Код
Sub Замена_ссылок_в_вып_Сп_знач() Dim c As Range, r As Range, i&, ii&, s$, a For Each c In Selection On Error Resume Next a = c.Validation.Formula1 If Err.Number > 0 Then Err.Clear Else Set r = Range(a) If Not r Is Nothing Then m = r.Value For i = 1 To UBound(m) For ii = 1 To UBound(m, 2) If i > 1 Xor ii > 1 Then s = s & "," & m(i, ii) Else s = m(i, ii) Next Next With c.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=s End With End If End If Next End Sub
[/vba]
Работает так: Нужно открыть все файлы. выделить нужные ячейки Запустить макрос.
Он заменяет все ссылки в проверке данных на значения. SLAVICK