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

Вход

Регистрация

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

 

= Мир MS Excel/Обновление связей с txt - Мир MS Excel

Старая форма входа
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обновление связей с txt (Макросы/Sub)
Обновление связей с txt
jurafenix Дата: Понедельник, 29.06.2015, 11:07 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, форумчане.
Помогите решить проблему?
Обновляю связи через ActiveWorkbook.RefreshAll. В параметрах связей стоит запрашивать имя каждый раз, т.к. имена файлов меняются в зависимости от даты.
Файлы имеют формат, например, 29062015_7777 или 29062015_5440. В одной папке лежит много файлов с разными датами.
Можно ли сделать так, чтобы excel автоматически выбирал нужный файл, беря начало имени из ячейки.
Т.е. если в ячейке будет написано 29062015, то файл автоматически выберет 29062015_7777?
Заранее спасибо!)
 
Ответить
СообщениеДоброго времени суток, форумчане.
Помогите решить проблему?
Обновляю связи через ActiveWorkbook.RefreshAll. В параметрах связей стоит запрашивать имя каждый раз, т.к. имена файлов меняются в зависимости от даты.
Файлы имеют формат, например, 29062015_7777 или 29062015_5440. В одной папке лежит много файлов с разными датами.
Можно ли сделать так, чтобы excel автоматически выбирал нужный файл, беря начало имени из ячейки.
Т.е. если в ячейке будет написано 29062015, то файл автоматически выберет 29062015_7777?
Заранее спасибо!)

Автор - jurafenix
Дата добавления - 29.06.2015 в 11:07
SLAVICK Дата: Понедельник, 29.06.2015, 11:31 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
На последнем шаге, или в свойствах подключения снимите галочку с "Запрашивать имя файла при обновлении" :D


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 29.06.2015, 11:34
 
Ответить
СообщениеНа последнем шаге, или в свойствах подключения снимите галочку с "Запрашивать имя файла при обновлении" :D

Автор - SLAVICK
Дата добавления - 29.06.2015 в 11:31
jurafenix Дата: Понедельник, 29.06.2015, 11:37 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
На последнем шаге, или в свойствах подключения снимите галочку с "Запрашивать имя файла при обновлении"

ну тогда он будет выбирать один и тот же файл, а имена файлов постоянно изменяются((
 
Ответить
Сообщение
На последнем шаге, или в свойствах подключения снимите галочку с "Запрашивать имя файла при обновлении"

ну тогда он будет выбирать один и тот же файл, а имена файлов постоянно изменяются((

Автор - jurafenix
Дата добавления - 29.06.2015 в 11:37
SLAVICK Дата: Понедельник, 29.06.2015, 11:52 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
ну тогда он будет выбирать один и тот же файл, а имена файлов постоянно изменяются((

Ну тогда нужно писать макрос, который будет изменять свойство подключения, но галочку нужно снять. :D
Что-то вроде макроса:
[vba]
Код
With Sheets("Лист1")
With .Range("a1").QueryTable
.Connection = "TEXT;Z:\временный\sni_150619_102857.csv"
.Refresh
End With
End With
[/vba]

Детальнее только с примером. rules
Если не разберетесь - положите в архив файлы - примеры.


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 29.06.2015, 12:03
 
Ответить
Сообщение
ну тогда он будет выбирать один и тот же файл, а имена файлов постоянно изменяются((

Ну тогда нужно писать макрос, который будет изменять свойство подключения, но галочку нужно снять. :D
Что-то вроде макроса:
[vba]
Код
With Sheets("Лист1")
With .Range("a1").QueryTable
.Connection = "TEXT;Z:\временный\sni_150619_102857.csv"
.Refresh
End With
End With
[/vba]

Детальнее только с примером. rules
Если не разберетесь - положите в архив файлы - примеры.

Автор - SLAVICK
Дата добавления - 29.06.2015 в 11:52
Макрописец Дата: Понедельник, 29.06.2015, 16:35 | Сообщение № 5
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Если не разберетесь - положите в архив файлы - примеры.

И зачем? Ведь юзер спрашивает про выбор ИМЕНИ файла? Какой тут пример и зачем? Пример имён он привёл.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
Сообщение
Если не разберетесь - положите в архив файлы - примеры.

И зачем? Ведь юзер спрашивает про выбор ИМЕНИ файла? Какой тут пример и зачем? Пример имён он привёл.

Автор - Макрописец
Дата добавления - 29.06.2015 в 16:35
SLAVICK Дата: Вторник, 30.06.2015, 08:45 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Цитата Макрописец, 29.06.2015 в 16:35, в сообщении № 5
И зачем? Ведь юзер спрашивает про выбор ИМЕНИ файла?

Если бы Вы читали внимательно, то Вы бы увидели:
Что-то вроде макроса:
.........
Детальнее только с примером.


Поскольку ответ дан, то ТС будет задавать вопросы, которые касаются именно его файла :D .
А далее читайте правила форума П 3. deal

Цитата Макрописец, 29.06.2015 в 16:35, в сообщении № 5
Пример имён он привёл.

И что он указал в какой именно момент нужно?:
чтобы excel автоматически выбирал нужный файл,

Это можно сделать при открытии книги, по изменению листа, по кнопке ....
Именно для этого и нужны примеры.
И еще раз повторю :"На общий вопрос был дан общий ответ. Дальше см. П.3 правил форума :D


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Вторник, 30.06.2015, 08:52
 
Ответить
Сообщение
Цитата Макрописец, 29.06.2015 в 16:35, в сообщении № 5
И зачем? Ведь юзер спрашивает про выбор ИМЕНИ файла?

Если бы Вы читали внимательно, то Вы бы увидели:
Что-то вроде макроса:
.........
Детальнее только с примером.


Поскольку ответ дан, то ТС будет задавать вопросы, которые касаются именно его файла :D .
А далее читайте правила форума П 3. deal

Цитата Макрописец, 29.06.2015 в 16:35, в сообщении № 5
Пример имён он привёл.

И что он указал в какой именно момент нужно?:
чтобы excel автоматически выбирал нужный файл,

Это можно сделать при открытии книги, по изменению листа, по кнопке ....
Именно для этого и нужны примеры.
И еще раз повторю :"На общий вопрос был дан общий ответ. Дальше см. П.3 правил форума :D

Автор - SLAVICK
Дата добавления - 30.06.2015 в 08:45
jurafenix Дата: Вторник, 30.06.2015, 18:43 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Вот и сам файл)) Извините, что с задержкой)) Просто файл используется для обработки банковской инфы, поэтому все данные нужно было стереть(( Но сами макросы на месте) На каждом листе по источнику данных))

Заранее спасибо за участие)
К сообщению приложен файл: 1377700.xlsm (70.5 Kb)
 
Ответить
СообщениеВот и сам файл)) Извините, что с задержкой)) Просто файл используется для обработки банковской инфы, поэтому все данные нужно было стереть(( Но сами макросы на месте) На каждом листе по источнику данных))

Заранее спасибо за участие)

Автор - jurafenix
Дата добавления - 30.06.2015 в 18:43
jurafenix Дата: Вторник, 30.06.2015, 18:45 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А источники данных не могу выложить((( Только файл, который загружает данные исходники)
 
Ответить
СообщениеА источники данных не могу выложить((( Только файл, который загружает данные исходники)

Автор - jurafenix
Дата добавления - 30.06.2015 в 18:45
Макрописец Дата: Вторник, 30.06.2015, 20:02 | Сообщение № 9
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
jurafenix,

Создайте пару-тройку файлов аналогичных Вашим файлам-источникам, положите их в архив и прикрепите к своему сообщению.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
Сообщениеjurafenix,

Создайте пару-тройку файлов аналогичных Вашим файлам-источникам, положите их в архив и прикрепите к своему сообщению.

Автор - Макрописец
Дата добавления - 30.06.2015 в 20:02
jurafenix Дата: Среда, 01.07.2015, 09:17 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Макрописец, 30.06.2015 в 20:02, в сообщении № 9
Создайте пару-тройку файлов аналогичных Вашим файлам-источникам, положите их в архив и прикрепите к своему сообщению.


А это критично? Файлы создаются банковским программами и изменить данные без потери смысла сложно((
 
Ответить
Сообщение
Цитата Макрописец, 30.06.2015 в 20:02, в сообщении № 9
Создайте пару-тройку файлов аналогичных Вашим файлам-источникам, положите их в архив и прикрепите к своему сообщению.


А это критично? Файлы создаются банковским программами и изменить данные без потери смысла сложно((

Автор - jurafenix
Дата добавления - 01.07.2015 в 09:17
Макрописец Дата: Среда, 01.07.2015, 09:48 | Сообщение № 11
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Файлы создаются банковским прогр

Да какая разница, как они создаются? И зачем данные менять? Просто создайте новый файл, скопируйте туда Ваши данные с заменой секретных данных на что-нибудь и сохраните под таким же именем, как и файл источник. И приложите сюда. Иначе не понятно, что у Вас не работает.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
Сообщение
Файлы создаются банковским прогр

Да какая разница, как они создаются? И зачем данные менять? Просто создайте новый файл, скопируйте туда Ваши данные с заменой секретных данных на что-нибудь и сохраните под таким же именем, как и файл источник. И приложите сюда. Иначе не понятно, что у Вас не работает.

Автор - Макрописец
Дата добавления - 01.07.2015 в 09:48
jurafenix Дата: Среда, 01.07.2015, 11:18 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Макрописец, 01.07.2015 в 09:48, в сообщении № 11
Да какая разница, как они создаются? И зачем данные менять? Просто создайте новый файл, скопируйте туда Ваши данные с заменой секретных данных на что-нибудь и сохраните под таким же именем, как и файл источник. И приложите сюда. Иначе не понятно, что у Вас не работает.


Вси имена файлов в формате дата_4440 ил дата_7777. Я вечером скину примеры) Всё работает, но каждый раз, формируя отчё, мне приходится вручную выбирать файл с названиями "заданная дата_4440" и "заданная дата_7777". Вот примеры имен:
01042015
01042015_4440
01042015_7777
01012015.
В принципе, название обновляемых источников и из каких папок берутся можно посмотреть в самом файле. Вкладка данные - Подключения - там будет 6 подключений. На каждом подключении, можно нажать кнопку свойства - вкладка определение. И там есть строка "Файл подключения", в которой и можно увидеть название файла и откуда он берётся. Но суть в том, что мне требуется, чтобы имя файла выбиралось автоматически и дата определялась из какой-нибудь ячейки)
 
Ответить
Сообщение
Цитата Макрописец, 01.07.2015 в 09:48, в сообщении № 11
Да какая разница, как они создаются? И зачем данные менять? Просто создайте новый файл, скопируйте туда Ваши данные с заменой секретных данных на что-нибудь и сохраните под таким же именем, как и файл источник. И приложите сюда. Иначе не понятно, что у Вас не работает.


Вси имена файлов в формате дата_4440 ил дата_7777. Я вечером скину примеры) Всё работает, но каждый раз, формируя отчё, мне приходится вручную выбирать файл с названиями "заданная дата_4440" и "заданная дата_7777". Вот примеры имен:
01042015
01042015_4440
01042015_7777
01012015.
В принципе, название обновляемых источников и из каких папок берутся можно посмотреть в самом файле. Вкладка данные - Подключения - там будет 6 подключений. На каждом подключении, можно нажать кнопку свойства - вкладка определение. И там есть строка "Файл подключения", в которой и можно увидеть название файла и откуда он берётся. Но суть в том, что мне требуется, чтобы имя файла выбиралось автоматически и дата определялась из какой-нибудь ячейки)

Автор - jurafenix
Дата добавления - 01.07.2015 в 11:18
Макрописец Дата: Среда, 01.07.2015, 11:28 | Сообщение № 13
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
01042015
01042015_4440
01042015_7777
01012015.

То есть я правильно понял, что файлы у Вас называются: 01042015_4440.xls; 01042015_7777.xls и т.д.?
И нельзя ли изменить название файлов на: 4440_01042015.xls; 7777_01042015.xls


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!

Сообщение отредактировал Макрописец - Среда, 01.07.2015, 11:30
 
Ответить
Сообщение
01042015
01042015_4440
01042015_7777
01012015.

То есть я правильно понял, что файлы у Вас называются: 01042015_4440.xls; 01042015_7777.xls и т.д.?
И нельзя ли изменить название файлов на: 4440_01042015.xls; 7777_01042015.xls

Автор - Макрописец
Дата добавления - 01.07.2015 в 11:28
jurafenix Дата: Среда, 01.07.2015, 11:34 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Макрописец, 01.07.2015 в 11:28, в сообщении № 13
То есть я правильно понял, что файлы у Вас называются: 01042015_4440.xls; 01042015_7777.xls и т.д.?
И нельзя ли изменить название файлов на: 4440_01042015.xls; 7777_01042015.xls


Названия файлов:
01042015.txt
01042015_4440.txt
01042015_7777.txt
01012015.txt
Предлагаемый вами вариант названия файлов возможен)
 
Ответить
Сообщение
Цитата Макрописец, 01.07.2015 в 11:28, в сообщении № 13
То есть я правильно понял, что файлы у Вас называются: 01042015_4440.xls; 01042015_7777.xls и т.д.?
И нельзя ли изменить название файлов на: 4440_01042015.xls; 7777_01042015.xls


Названия файлов:
01042015.txt
01042015_4440.txt
01042015_7777.txt
01012015.txt
Предлагаемый вами вариант названия файлов возможен)

Автор - jurafenix
Дата добавления - 01.07.2015 в 11:34
Макрописец Дата: Среда, 01.07.2015, 11:49 | Сообщение № 15
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
jurafenix,
И вот в таких: 01012015. названиях уберите точку.

А так полный код написать не могу, но если будет мой вариант названия (не важно расширение тхт или хлс), то начать код можно так:
[vba]
Код
Sub DateFiles1()
       Dim NameTXTM1 As String  'Имя открываемого файла с расширением
       Dim Name1 As String  'Имя открываемого файла без расширения
       Dim NameTXTM0 As String  'Имя предыдущего файла с расширением
       Dim NameFull0 As String  'Полное имя предыдущего файла с расширением
       Dim Name0 As String  'Имя предыдущего файла без расширения
       Dim dtName As Date  'Дата для преобразования (для вычитания 1)
       Dim intLenght As Integer  'Длина имени открываемого файла с расширением
           
       'Определение имени текущего (открываемого) файла и преобразование его в дату.
       NameXLSM1 = ActiveWorkbook.Name
       intLenght = Len(NameTXTM1)
       Name1 = Left(NameTXTM1, intLenght - 4)    ' Отсекает 4 знака справа
       dtName = CDate(Name1)
[/vba]
а дальше добавить отсечение слева 5 знаков (например, 4440_) при условии наличия нижней чёрточки, а потом сделать поиск и перебор всех файлов с названиями, включающими в себя 4440_(или др. вариант)+полученную в части кода выше этого предложения дату+расширение файла (так и пишется в макросе - и макрос сам собирает имя файла) и обновление ссылок на них в текущей книге.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!

Сообщение отредактировал Макрописец - Среда, 01.07.2015, 11:50
 
Ответить
Сообщениеjurafenix,
И вот в таких: 01012015. названиях уберите точку.

А так полный код написать не могу, но если будет мой вариант названия (не важно расширение тхт или хлс), то начать код можно так:
[vba]
Код
Sub DateFiles1()
       Dim NameTXTM1 As String  'Имя открываемого файла с расширением
       Dim Name1 As String  'Имя открываемого файла без расширения
       Dim NameTXTM0 As String  'Имя предыдущего файла с расширением
       Dim NameFull0 As String  'Полное имя предыдущего файла с расширением
       Dim Name0 As String  'Имя предыдущего файла без расширения
       Dim dtName As Date  'Дата для преобразования (для вычитания 1)
       Dim intLenght As Integer  'Длина имени открываемого файла с расширением
           
       'Определение имени текущего (открываемого) файла и преобразование его в дату.
       NameXLSM1 = ActiveWorkbook.Name
       intLenght = Len(NameTXTM1)
       Name1 = Left(NameTXTM1, intLenght - 4)    ' Отсекает 4 знака справа
       dtName = CDate(Name1)
[/vba]
а дальше добавить отсечение слева 5 знаков (например, 4440_) при условии наличия нижней чёрточки, а потом сделать поиск и перебор всех файлов с названиями, включающими в себя 4440_(или др. вариант)+полученную в части кода выше этого предложения дату+расширение файла (так и пишется в макросе - и макрос сам собирает имя файла) и обновление ссылок на них в текущей книге.

Автор - Макрописец
Дата добавления - 01.07.2015 в 11:49
jurafenix Дата: Среда, 01.07.2015, 11:54 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Макрописец, 01.07.2015 в 11:49, в сообщении № 15
И вот в таких: 01012015. названиях уберите точку.


Так там точки нет) Это перед расщирением) Если честно, то я не понимаю как этим файлом открыть файлы формата txt)
 
Ответить
Сообщение
Цитата Макрописец, 01.07.2015 в 11:49, в сообщении № 15
И вот в таких: 01012015. названиях уберите точку.


Так там точки нет) Это перед расщирением) Если честно, то я не понимаю как этим файлом открыть файлы формата txt)

Автор - jurafenix
Дата добавления - 01.07.2015 в 11:54
jurafenix Дата: Среда, 01.07.2015, 11:57 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Я так понял данный макрос просто задает имя) А как дальше это использовать?) Тем более источников 8)
 
Ответить
СообщениеЯ так понял данный макрос просто задает имя) А как дальше это использовать?) Тем более источников 8)

Автор - jurafenix
Дата добавления - 01.07.2015 в 11:57
Макрописец Дата: Среда, 01.07.2015, 12:00 | Сообщение № 18
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
jurafenix,
Увы моих знаний недостаточно, чтобы продолжить этот макрос. Ждите более опытных макрописцев.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
Сообщениеjurafenix,
Увы моих знаний недостаточно, чтобы продолжить этот макрос. Ждите более опытных макрописцев.

Автор - Макрописец
Дата добавления - 01.07.2015 в 12:00
Макрописец Дата: Среда, 01.07.2015, 12:00 | Сообщение № 19
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Тем более источников 8)

Вот это не понял


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
Сообщение
Тем более источников 8)

Вот это не понял

Автор - Макрописец
Дата добавления - 01.07.2015 в 12:00
jurafenix Дата: Среда, 01.07.2015, 12:06 | Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Ой, точнее подключений 6)) Во вкладке Данные - Подключения. Всего 6 источников) Причем существует две пары файлов с одинаковыми названиями, но в разных папках) Тут всё хитро работает, но увы эти файлы приходится копировать вручную((
 
Ответить
СообщениеОй, точнее подключений 6)) Во вкладке Данные - Подключения. Всего 6 источников) Причем существует две пары файлов с одинаковыми названиями, но в разных папках) Тут всё хитро работает, но увы эти файлы приходится копировать вручную((

Автор - jurafenix
Дата добавления - 01.07.2015 в 12:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обновление связей с txt (Макросы/Sub)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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