Здравствуйте уважаемые специалисты. Вопрос обстоит так: существует некая папка в которой находится xcel файл, где как раз необходимо в одной из ячеек получить связь с ячекой в другом файле, который имеет определенное имя и находится в этой же папке. Загвоздка в том, что папка где будут храниться эти два или более файлов может копироваться в другие директории (на жостком диске или на флешку), а связ при этом нарушаться не должна. Нашол похожую тему, но не смог разобраться (http://www.planetaexcel.ru/forum.php?thread_id=4629). Спасибо.
{quote}{login=}{date=30.10.2009 05:42}{thema=}{post}ДВССЫЛ с указанием имени файла и листа если файл источник открыт, то соверш не важно, где он сохранен если источник закрыт, то в ячейке будет #ССЫЛКА!{/post}{/quote}Мало того, что файл источник будет закрыт, плюс ко всему он еще и не всегда будет присутствовать в этой папке. Источник будет сохраняться в результате работы для дальнейшего анализа данных.
{quote}{login=Анатолий}{date=30.10.2009 06:02}{thema=}{post}Жаль. Всеравно спасибо.{/post}{/quote} а алгоритм работы не изменяем? в источнике значения для ссылки меняются? - Если нет, то Макрос копирования да - Макрос с заданием в какой-либо ячейке книги пути, открытие книг, ввод нужных данных, закрытие
Слушай, Толян. А при копировании папки с файлами, в ячейке с формулой меняется путь источника!!! Создай источники пустые, а при работе вставляй туда данные...
Файл источник будет сохраняться из программы 1С в Excel файл, затем будет открываться готовый файл-шаблон для анализа данных, в котором автоматически появятся данные из этих источников сохраненных в этой же паке.
{quote}{login=Taylashev}{date=30.10.2009 06:22}{thema=}{post}Слушай, Толян. А при копировании папки с файлами, в ячейке с формулой меняется путь источника!!! Создай источники пустые, а при работе вставляй туда данные...{/post}{/quote}А смысл? Я могу тогда создать доп листы прямо в шаблоне и вставлять данные сразу туда. Без всяких проблем.
А Вам обязательно нужна СВЯЗЬ? Может просто копировать данные из фалов в папке в 1 для последующего анализа и обработки? Кстати такая проблемка поднималась не раз, и макрос обработки кучи файлов из 1 папки или с возможностью выбора заданной в различных вариациях на просторах лежит...
{quote}{login=}{date=30.10.2009 06:33}{thema=}{post}А Вам обязательно нужна СВЯЗЬ? Может просто копировать данные из фалов в папке в 1 для последующего анализа и обработки? Кстати такая проблемка поднималась не раз, и макрос обработки кучи файлов из 1 папки или с возможностью выбора заданной в различных вариациях на просторах лежит...{/post}{/quote}По большому счету меня устроит и копирование, лишь бы это было с минимальной потерей времени. Я сейчас сохраняю файлы из 1С потом копирую листы в шаблон, каждый в отдельности. Муторно и долго. А при учете, что этим приходится заниматься чуть ни каждый день. Вопщем порядком надоело. :)
Толян, все работает как ты хочешь, даже при отсутствии источника и последующем его появлении, только ссылка атоматически обновляется почему то при открытом источнике
{quote}{login=Taylashev}{date=30.10.2009 06:55}{thema=}{post}Толян, все работает как ты хочешь, даже при отсутствии источника и последующем его появлении, только ссылка атоматически обновляется почему то при открытом источнике{/post}{/quote}Можешь сбросить два файла? первый как шаблон, второй как источник и текст с объяснением.
И вопрос: что значит при открытом источнике? Это мне потом каждый файл-источник надо по очереди открыть?
Толян, сбрасывать нечего, взял два файла, в одном сделал ссылку просто равно ячейке другого файла (источника) закрыл оба... удалил источник, создал новый источник с таким же именем, но с другим значением, открылл основной файл - все данные обновились
Держите пример макроса от Павел55. В папке 1 общий для обработки с макросом. После запуска макроса информация собирается в общий файл со всех файлов, находящихся в данной папке.
{quote}{login=Igor67}{date=30.10.2009 09:22}{thema=}{post}Держите пример макроса от Павел55. В папке 1 общий для обработки с макросом. После запуска макроса информация собирается в общий файл со всех файлов, находящихся в данной папке.{/post}{/quote}Спасибо большое! А можно этот макрос немного подредактировать? Чтобы каждый файл-источник собирался в новый лист, которому будет присваеваться такое же имя как у файла-источника.
{quote}{login=Igor67}{date=31.10.2009 05:33}{thema=}{post}Посмотрите в приемах http://www.planetaexcel.ru/tip.php?aid=111{/post}{/quote}Вы знаете, меня этот макрос в принципе устраевает, но если говорить о полном удобстве, то можно было бы сделать его так, чтобы он при выборе файла источника открывал сразу папку в которой находится файл в котором этот макрос прописан и новый вставленный лист называл по имени файла из которого он скопирован.
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Не выбрано ни одного файла!" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub