Копирование данных из файла, не зная открыт ли он
Мурад
Дата: Четверг, 13.08.2015, 16:16 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Добрый день! В продолжение бурной беседы в теме ссылка . 2 сотрудника хотят вести свой файлы в одинаковых таблицах самостоятельно. Один сотрудник работает с данными, который занес в свою таблицу другой сотрудник. Задача. При открытии файла "2" таблица заполняется данными из файла "1". Сотрудники сидят в разных углах разных кабинетов в разных зданиях в разных странах... Сотрудник 2 не знает, работает ли в данный момент со своим файлом Сотрудник 1. Но ему надо уже работать с данными, которые успел занести Сотрудник 1 и нажавший кнопку "Сохранить". Такие случаи встречались вам, уважаемые программисты?
Добрый день! В продолжение бурной беседы в теме ссылка . 2 сотрудника хотят вести свой файлы в одинаковых таблицах самостоятельно. Один сотрудник работает с данными, который занес в свою таблицу другой сотрудник. Задача. При открытии файла "2" таблица заполняется данными из файла "1". Сотрудники сидят в разных углах разных кабинетов в разных зданиях в разных странах... Сотрудник 2 не знает, работает ли в данный момент со своим файлом Сотрудник 1. Но ему надо уже работать с данными, которые успел занести Сотрудник 1 и нажавший кнопку "Сохранить". Такие случаи встречались вам, уважаемые программисты? Мурад
Ответить
Сообщение Добрый день! В продолжение бурной беседы в теме ссылка . 2 сотрудника хотят вести свой файлы в одинаковых таблицах самостоятельно. Один сотрудник работает с данными, который занес в свою таблицу другой сотрудник. Задача. При открытии файла "2" таблица заполняется данными из файла "1". Сотрудники сидят в разных углах разных кабинетов в разных зданиях в разных странах... Сотрудник 2 не знает, работает ли в данный момент со своим файлом Сотрудник 1. Но ему надо уже работать с данными, которые успел занести Сотрудник 1 и нажавший кнопку "Сохранить". Такие случаи встречались вам, уважаемые программисты? Автор - Мурад Дата добавления - 13.08.2015 в 16:16
RAN
Дата: Четверг, 13.08.2015, 16:21 |
Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
И в чем проблема? Открыли файл для чтения, и читайте.
И в чем проблема? Открыли файл для чтения, и читайте. RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение И в чем проблема? Открыли файл для чтения, и читайте. Автор - RAN Дата добавления - 13.08.2015 в 16:21
Мурад
Дата: Четверг, 13.08.2015, 16:25 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
RAN , нужно скопировать данные из одного файла в другой...Вы имеете в виду, копипастом переносить каждый раз? В принципе, Сотрудник 2 у нас молчаливый и готов сверять 2 таблицы, в поисках отличий и копирования новых кусков
RAN , нужно скопировать данные из одного файла в другой...Вы имеете в виду, копипастом переносить каждый раз? В принципе, Сотрудник 2 у нас молчаливый и готов сверять 2 таблицы, в поисках отличий и копирования новых кусковМурад
Ответить
Сообщение RAN , нужно скопировать данные из одного файла в другой...Вы имеете в виду, копипастом переносить каждый раз? В принципе, Сотрудник 2 у нас молчаливый и готов сверять 2 таблицы, в поисках отличий и копирования новых кусковАвтор - Мурад Дата добавления - 13.08.2015 в 16:25
RAN
Дата: Четверг, 13.08.2015, 17:23 |
Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Такие случаи встречались вам, уважаемые программисты?
Такие не встречались, встерались только случаи, когда с этими двумя файлами нужно работать как с единой базой. Ваш случай проще. Как сделать, я ответил. Если вам нужно не "как", а готовое решение - заказывайте, сделаю. Или можете ручками.
Такие случаи встречались вам, уважаемые программисты?
Такие не встречались, встерались только случаи, когда с этими двумя файлами нужно работать как с единой базой. Ваш случай проще. Как сделать, я ответил. Если вам нужно не "как", а готовое решение - заказывайте, сделаю. Или можете ручками.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Такие случаи встречались вам, уважаемые программисты?
Такие не встречались, встерались только случаи, когда с этими двумя файлами нужно работать как с единой базой. Ваш случай проще. Как сделать, я ответил. Если вам нужно не "как", а готовое решение - заказывайте, сделаю. Или можете ручками.Автор - RAN Дата добавления - 13.08.2015 в 17:23
Hugo
Дата: Четверг, 13.08.2015, 20:15 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3689
Репутация:
790
±
Замечаний:
0% ±
365
Чтоб вообще никак не влиять одному сотруднику на другого - можно кодом сделать копию файла (не открывать и сохранять, а скопировать средствами файловой системы) и работать как угодно с этой копией.
Чтоб вообще никак не влиять одному сотруднику на другого - можно кодом сделать копию файла (не открывать и сохранять, а скопировать средствами файловой системы) и работать как угодно с этой копией. Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Ответить
Сообщение Чтоб вообще никак не влиять одному сотруднику на другого - можно кодом сделать копию файла (не открывать и сохранять, а скопировать средствами файловой системы) и работать как угодно с этой копией. Автор - Hugo Дата добавления - 13.08.2015 в 20:15
Мурад
Дата: Пятница, 14.08.2015, 09:19 |
Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
RAN , а каким образом открывать файл только для чтения? Что необходимо изменить в коде: [vba]Код
Sub copy_data_from_Polina() Application.DisplayAlerts = False Application.CutCopyMode = False wb1 = "Казакова.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Workbooks.Open Filename:=MyPath Workbooks(wb1).Sheets(1).Range("A7:M500").copy ThisWorkbook.Activate Range("A7").Select ActiveSheet.Paste Windows(wb1).Activate ActiveWindow.Close Application.DisplayAlerts = True End Sub
[/vba] , чтобы компилятор, открывая файл, проверял, работает ли в нем автор, и если да, то открывал его в режиме чтения. Далее копировал необходимый диапазон, вставлял этот диапазон в другом файле. В конце закрывал файл автора без сохранения данных и уничтожением буфера..
RAN , а каким образом открывать файл только для чтения? Что необходимо изменить в коде: [vba]Код
Sub copy_data_from_Polina() Application.DisplayAlerts = False Application.CutCopyMode = False wb1 = "Казакова.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Workbooks.Open Filename:=MyPath Workbooks(wb1).Sheets(1).Range("A7:M500").copy ThisWorkbook.Activate Range("A7").Select ActiveSheet.Paste Windows(wb1).Activate ActiveWindow.Close Application.DisplayAlerts = True End Sub
[/vba] , чтобы компилятор, открывая файл, проверял, работает ли в нем автор, и если да, то открывал его в режиме чтения. Далее копировал необходимый диапазон, вставлял этот диапазон в другом файле. В конце закрывал файл автора без сохранения данных и уничтожением буфера..Мурад
Ответить
Сообщение RAN , а каким образом открывать файл только для чтения? Что необходимо изменить в коде: [vba]Код
Sub copy_data_from_Polina() Application.DisplayAlerts = False Application.CutCopyMode = False wb1 = "Казакова.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Workbooks.Open Filename:=MyPath Workbooks(wb1).Sheets(1).Range("A7:M500").copy ThisWorkbook.Activate Range("A7").Select ActiveSheet.Paste Windows(wb1).Activate ActiveWindow.Close Application.DisplayAlerts = True End Sub
[/vba] , чтобы компилятор, открывая файл, проверял, работает ли в нем автор, и если да, то открывал его в режиме чтения. Далее копировал необходимый диапазон, вставлял этот диапазон в другом файле. В конце закрывал файл автора без сохранения данных и уничтожением буфера..Автор - Мурад Дата добавления - 14.08.2015 в 09:19
Мурад
Дата: Пятница, 14.08.2015, 09:26 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Если есть возможность ручками открыть общий файл в режиме чтения, скопировать из него что надо, значит...можно это автоматизировать. Или нет?
Если есть возможность ручками открыть общий файл в режиме чтения, скопировать из него что надо, значит...можно это автоматизировать. Или нет? Мурад
Ответить
Сообщение Если есть возможность ручками открыть общий файл в режиме чтения, скопировать из него что надо, значит...можно это автоматизировать. Или нет? Автор - Мурад Дата добавления - 14.08.2015 в 09:26
RAN
Дата: Пятница, 14.08.2015, 09:44 |
Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Слабо справку по методу Open поглядеть?
Слабо справку по методу Open поглядеть? RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Слабо справку по методу Open поглядеть? Автор - RAN Дата добавления - 14.08.2015 в 09:44
Мурад
Дата: Пятница, 14.08.2015, 09:47 |
Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
[vba]Код
Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
[/vba] ?
[vba]Код
Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
[/vba] ? Мурад
Ответить
Сообщение [vba]Код
Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
[/vba] ? Автор - Мурад Дата добавления - 14.08.2015 в 09:47
Мурад
Дата: Пятница, 14.08.2015, 09:56 |
Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
RAN , спасибо что подталкиваете на самостоятельные исследования! Но вот, часть кода, который пытался использовать для вставки значений: [vba]Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba] выдает ошибку 400... Поэтому оставил только [vba][/vba]
RAN , спасибо что подталкиваете на самостоятельные исследования! Но вот, часть кода, который пытался использовать для вставки значений: [vba]Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba] выдает ошибку 400... Поэтому оставил только [vba][/vba]Мурад
Ответить
Сообщение RAN , спасибо что подталкиваете на самостоятельные исследования! Но вот, часть кода, который пытался использовать для вставки значений: [vba]Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba] выдает ошибку 400... Поэтому оставил только [vba][/vba]Автор - Мурад Дата добавления - 14.08.2015 в 09:56
Мурад
Дата: Пятница, 14.08.2015, 10:51 |
Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Поюзал в интернете... С ошибкой 400 сталкивались многие, как я понял... Анализируя код до и после, ошибка связана с заменой кода [vba][/vba] на этот код [vba]Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba]: [vba]Код
Sub copy_data_from_Polina() Application.DisplayAlerts = False Application.CutCopyMode = False wb1 = "Казакова.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True Workbooks(wb1).Sheets(1).Range("A7:M500").copy ThisWorkbook.Activate Range("A7").Select ActiveSheet.PasteSpecial Paste:=xlPasteValues Windows(wb1).Activate ActiveWindow.Close Application.DisplayAlerts = True End Sub
[/vba] Макрос запускается нажатием кнопки на листе.
Поюзал в интернете... С ошибкой 400 сталкивались многие, как я понял... Анализируя код до и после, ошибка связана с заменой кода [vba][/vba] на этот код [vba]Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba]: [vba]Код
Sub copy_data_from_Polina() Application.DisplayAlerts = False Application.CutCopyMode = False wb1 = "Казакова.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True Workbooks(wb1).Sheets(1).Range("A7:M500").copy ThisWorkbook.Activate Range("A7").Select ActiveSheet.PasteSpecial Paste:=xlPasteValues Windows(wb1).Activate ActiveWindow.Close Application.DisplayAlerts = True End Sub
[/vba] Макрос запускается нажатием кнопки на листе. Мурад
Ответить
Сообщение Поюзал в интернете... С ошибкой 400 сталкивались многие, как я понял... Анализируя код до и после, ошибка связана с заменой кода [vba][/vba] на этот код [vba]Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba]: [vba]Код
Sub copy_data_from_Polina() Application.DisplayAlerts = False Application.CutCopyMode = False wb1 = "Казакова.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True Workbooks(wb1).Sheets(1).Range("A7:M500").copy ThisWorkbook.Activate Range("A7").Select ActiveSheet.PasteSpecial Paste:=xlPasteValues Windows(wb1).Activate ActiveWindow.Close Application.DisplayAlerts = True End Sub
[/vba] Макрос запускается нажатием кнопки на листе. Автор - Мурад Дата добавления - 14.08.2015 в 10:51
RAN
Дата: Пятница, 14.08.2015, 10:57 |
Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Бросьте бубен! [vba]Код
ThisWorkbook.Sheets("Нужный").Range("A7:M500").Value = Workbooks(wb1).Sheets(1).Range("A7:M500").Value
[/vba]
Бросьте бубен! [vba]Код
ThisWorkbook.Sheets("Нужный").Range("A7:M500").Value = Workbooks(wb1).Sheets(1).Range("A7:M500").Value
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Бросьте бубен! [vba]Код
ThisWorkbook.Sheets("Нужный").Range("A7:M500").Value = Workbooks(wb1).Sheets(1).Range("A7:M500").Value
[/vba] Автор - RAN Дата добавления - 14.08.2015 в 10:57
Мурад
Дата: Пятница, 14.08.2015, 11:03 |
Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Ответить
Сообщение RAN , Автор - Мурад Дата добавления - 14.08.2015 в 11:03