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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обновление связей с txt (Макросы/Sub)
Обновление связей с txt
SLAVICK Дата: Среда, 01.07.2015, 15:46 | Сообщение № 41
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
jurafenix,
Тогда вместо цикла по подключениям:
[vba]
Код
For Each c In con
[/vba]
Нужно прописать условия замены для каждого Вашего соединения:
например
[vba]
Код
Set c = con.Item("01012015")
[/vba]
Вот так: дальше поймете. :D
[vba]
Код
Sub FileName()
Dim wb As Workbook, con As Connections, c As Object, n$, d$, m
Set wb = ThisWorkbook
Set con = ThisWorkbook.Connections
Set c = con.Item("01012015")' начиная с этой строки все нужно повторять для каждого соединения, или в цикле указать исключения
d = Format(Now, "ddmmyyyy")
'For Each c In con
       On Error GoTo 10
       n = c.TextConnection.Connection
       n = RegExpReplace_(n, "[0-9]{8}", d)
       c.TextConnection.Connection = n
10
'Next
End Sub
[/vba]

Если не получится - приложите файл, с объяснением что когда откуда брать B)


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

Сообщение отредактировал SLAVICK - Среда, 01.07.2015, 15:49
 
Ответить
Сообщениеjurafenix,
Тогда вместо цикла по подключениям:
[vba]
Код
For Each c In con
[/vba]
Нужно прописать условия замены для каждого Вашего соединения:
например
[vba]
Код
Set c = con.Item("01012015")
[/vba]
Вот так: дальше поймете. :D
[vba]
Код
Sub FileName()
Dim wb As Workbook, con As Connections, c As Object, n$, d$, m
Set wb = ThisWorkbook
Set con = ThisWorkbook.Connections
Set c = con.Item("01012015")' начиная с этой строки все нужно повторять для каждого соединения, или в цикле указать исключения
d = Format(Now, "ddmmyyyy")
'For Each c In con
       On Error GoTo 10
       n = c.TextConnection.Connection
       n = RegExpReplace_(n, "[0-9]{8}", d)
       c.TextConnection.Connection = n
10
'Next
End Sub
[/vba]

Если не получится - приложите файл, с объяснением что когда откуда брать B)

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

Excel 2010
Pelena,
Ну не скажите? Я задавал НУЖНЫЕ вопросы кроме может нескольких постов, даже кусок кода прикладывал.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеPelena,
Ну не скажите? Я задавал НУЖНЫЕ вопросы кроме может нескольких постов, даже кусок кода прикладывал.

Автор - Макрописец
Дата добавления - 01.07.2015 в 16:07
Pelena Дата: Среда, 01.07.2015, 16:22 | Сообщение № 43
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Макрописец, я с Вами спорить не собираюсь, но честно предупреждаю, что Вы у меня на особом контроле
Будете троллить - забаню


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМакрописец, я с Вами спорить не собираюсь, но честно предупреждаю, что Вы у меня на особом контроле
Будете троллить - забаню

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

Excel 2010
Будете троллить - забаню

Тогда давайте разъясним, что вы понимаете под троллить? Ибо если как Вы описали - подобного рода постов можно поиском найти множество, причём даже от "Старейшин" форума: Hugo, ikki, Nerv, Z и других, но они не забанены. И я не издеваюсь. Я правда не совсем понимаю.
[moder]Вы получили предупреждение от модератора и продолжаете спорить, тем самым нарываясь на замечание "нарушение п. 5b правил форума".
Дальнейшее обсуждение этого вопроса к теме ТС не относиться[/moder]


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

Сообщение отредактировал Manyasha - Среда, 01.07.2015, 16:41
 
Ответить
Сообщение
Будете троллить - забаню

Тогда давайте разъясним, что вы понимаете под троллить? Ибо если как Вы описали - подобного рода постов можно поиском найти множество, причём даже от "Старейшин" форума: Hugo, ikki, Nerv, Z и других, но они не забанены. И я не издеваюсь. Я правда не совсем понимаю.
[moder]Вы получили предупреждение от модератора и продолжаете спорить, тем самым нарываясь на замечание "нарушение п. 5b правил форума".
Дальнейшее обсуждение этого вопроса к теме ТС не относиться[/moder]

Автор - Макрописец
Дата добавления - 01.07.2015 в 16:30
ShAM Дата: Четверг, 02.07.2015, 07:08 | Сообщение № 45
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
[offtop]
Макрописец, хватит троллить.
Наконец, кто-то из Модераторов среагировал. Хотя предупреждали: http://www.excelworld.ru/forum/2-18030-148287-16-1435172547
[/offtop]
 
Ответить
Сообщение[offtop]
Макрописец, хватит троллить.
Наконец, кто-то из Модераторов среагировал. Хотя предупреждали: http://www.excelworld.ru/forum/2-18030-148287-16-1435172547
[/offtop]

Автор - ShAM
Дата добавления - 02.07.2015 в 07:08
Макрописец Дата: Четверг, 02.07.2015, 10:49 | Сообщение № 46
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
ShAM,
А где тут троллиннг? Я не пойму. Я же не пишу ХРЕНЬ.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеShAM,
А где тут троллиннг? Я не пойму. Я же не пишу ХРЕНЬ.

Автор - Макрописец
Дата добавления - 02.07.2015 в 10:49
_Boroda_ Дата: Четверг, 02.07.2015, 15:29 | Сообщение № 47
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата Макрописец, 02.07.2015 в 10:49, в сообщении № 46
А где тут троллиннг?

Хорошо, давайте назовем не троллингом, а словесным недержанием. Я полностью согласен с Еленой и Мариной - заколебал уже.
Вас предупреждали -
Цитата Макрописец, 01.07.2015 в 16:30, в сообщении № 44
Дальнейшее обсуждение этого вопроса к теме ТС не относиться

Через сообщение - опять Вы и опять пост без всякого смысла. Налицо "игнорирование указаний администрации" - см. п. 5 Правил форума.
Ловите замечание очередное.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Цитата Макрописец, 02.07.2015 в 10:49, в сообщении № 46
А где тут троллиннг?

Хорошо, давайте назовем не троллингом, а словесным недержанием. Я полностью согласен с Еленой и Мариной - заколебал уже.
Вас предупреждали -
Цитата Макрописец, 01.07.2015 в 16:30, в сообщении № 44
Дальнейшее обсуждение этого вопроса к теме ТС не относиться

Через сообщение - опять Вы и опять пост без всякого смысла. Налицо "игнорирование указаний администрации" - см. п. 5 Правил форума.
Ловите замечание очередное.

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

Excel 2010
Если не получится - приложите файл, с объяснением что когда откуда брать


Скажите, а как сделать обращение к файлу, например, 01072015_4440 ?)

Видимо у меня кривые руки и я не могу код дописать((( Файл ваш подойдет. А даты брать Лист1 (а1) - будет дата отчёта, а Лист1 (а2) - дата начала квартала.
Источники данных должны обращаться к следующим адресам (для примера дата формирования отчёта 30.06.2015, а дата начала квартала - 01.04.2015:
01012015 на файл 30062015.txt
24022015 на файл 01042015.txt
неделя_4440 на файл 30062015_4440.txt
неделя_44401 на файл 30062015_4440.txt
неделя_7777 на файл 30062015_7777.txt
неделя_77771 на файл 30062015_7777.txt

сможете код сделать?)


Сообщение отредактировал jurafenix - Пятница, 03.07.2015, 11:52
 
Ответить
Сообщение
Если не получится - приложите файл, с объяснением что когда откуда брать


Скажите, а как сделать обращение к файлу, например, 01072015_4440 ?)

Видимо у меня кривые руки и я не могу код дописать((( Файл ваш подойдет. А даты брать Лист1 (а1) - будет дата отчёта, а Лист1 (а2) - дата начала квартала.
Источники данных должны обращаться к следующим адресам (для примера дата формирования отчёта 30.06.2015, а дата начала квартала - 01.04.2015:
01012015 на файл 30062015.txt
24022015 на файл 01042015.txt
неделя_4440 на файл 30062015_4440.txt
неделя_44401 на файл 30062015_4440.txt
неделя_7777 на файл 30062015_7777.txt
неделя_77771 на файл 30062015_7777.txt

сможете код сделать?)

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

2019
Скажите, а как сделать обращение к файлу, например, 01072015_4440 ?)

Зачем? Т.е. что Вы хотите сделать с ТХТ. Способов много.
Но если это не касается этой темы - создавайте новую rules :D


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Скажите, а как сделать обращение к файлу, например, 01072015_4440 ?)

Зачем? Т.е. что Вы хотите сделать с ТХТ. Способов много.
Но если это не касается этой темы - создавайте новую rules :D

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

Excel 2010
Зачем? Т.е. что Вы хотите сделать с ТХТ. Способов много.
Но если это не касается этой темы - создавайте новую


Нет это всё в рамках темы)) У вас это всё было реализовано... Т.е. работало как нужно и меняло только первые 8 символов, но как сделат так, чтобы:

Источники данных должны обращаться к следующим адресам (для примера дата формирования отчёта 30.06.2015, а дата начала квартала - 01.04.2015:
01012015 на файл 0104015.txt
24022015 на файл 30062015.txt
неделя_4440 на файл 30062015_4440.txt
неделя_44401 на файл 30062015_4440.txt
неделя_7777 на файл 30062015_7777.txt
неделя_77771 на файл 30062015_7777.txt

поможете?..))
 
Ответить
Сообщение
Зачем? Т.е. что Вы хотите сделать с ТХТ. Способов много.
Но если это не касается этой темы - создавайте новую


Нет это всё в рамках темы)) У вас это всё было реализовано... Т.е. работало как нужно и меняло только первые 8 символов, но как сделат так, чтобы:

Источники данных должны обращаться к следующим адресам (для примера дата формирования отчёта 30.06.2015, а дата начала квартала - 01.04.2015:
01012015 на файл 0104015.txt
24022015 на файл 30062015.txt
неделя_4440 на файл 30062015_4440.txt
неделя_44401 на файл 30062015_4440.txt
неделя_7777 на файл 30062015_7777.txt
неделя_77771 на файл 30062015_7777.txt

поможете?..))

Автор - jurafenix
Дата добавления - 03.07.2015 в 11:57
SLAVICK Дата: Пятница, 03.07.2015, 12:39 | Сообщение № 51
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Вот. B)
см. лист настройка. Зеленые поля.
Я сделал, чтобы изменялись свойства соединений в столбце А на значения столбца С.
Формулы можете подгонять под свои нужды... это мало касается этой темы :D
К сообщению приложен файл: 7847818.xlsm (74.7 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеВот. B)
см. лист настройка. Зеленые поля.
Я сделал, чтобы изменялись свойства соединений в столбце А на значения столбца С.
Формулы можете подгонять под свои нужды... это мало касается этой темы :D

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

Excel 2010
. лист настройка. Зеленые поля.


а мне выдает ощибку 468((( на строку
con.Item(m(i, 1)).TextConnection.Connection = m(i, 3)
 
Ответить
Сообщение
. лист настройка. Зеленые поля.


а мне выдает ощибку 468((( на строку
con.Item(m(i, 1)).TextConnection.Connection = m(i, 3)

Автор - jurafenix
Дата добавления - 03.07.2015 в 12:57
RAN Дата: Пятница, 03.07.2015, 13:03 | Сообщение № 53
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Исходя из кодов, тут вообще никакое соединение не нужно.
Открыл txt, прочитал, обработал в памяти, выгрузил.
Дешево и сердито. :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИсходя из кодов, тут вообще никакое соединение не нужно.
Открыл txt, прочитал, обработал в памяти, выгрузил.
Дешево и сердито. :)

Автор - RAN
Дата добавления - 03.07.2015 в 13:03
SLAVICK Дата: Пятница, 03.07.2015, 13:05 | Сообщение № 54
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
В этом файле, или в другом.? У меня все отрабатывает...
Может соединения не так называются?
посмотрите на каком элементе выдает ошибку. (i)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеВ этом файле, или в другом.? У меня все отрабатывает...
Может соединения не так называются?
посмотрите на каком элементе выдает ошибку. (i)

Автор - SLAVICK
Дата добавления - 03.07.2015 в 13:05
SLAVICK Дата: Пятница, 03.07.2015, 13:06 | Сообщение № 55
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Открыл txt, прочитал, обработал в памяти, выгрузил.

Можно и так.
Просто считывать инфу с нужных ТХТ файлов... hands
Но изначально так вопрос не стоял...
Конечно так намного проще. yes


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

Сообщение отредактировал SLAVICK - Пятница, 03.07.2015, 13:07
 
Ответить
Сообщение
Открыл txt, прочитал, обработал в памяти, выгрузил.

Можно и так.
Просто считывать инфу с нужных ТХТ файлов... hands
Но изначально так вопрос не стоял...
Конечно так намного проще. yes

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

Excel 2010
а можно сделать так?)))
Мнек бы и такой вариант подошёл)) просто делал по наличию знаний((
 
Ответить
Сообщениеа можно сделать так?)))
Мнек бы и такой вариант подошёл)) просто делал по наличию знаний((

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

Excel 2010
ошибку выдает на i=2. запускал именно этот файл. и при пересчете ячеек, он мне в столбце С обнулил все зеленые ячейки


Сообщение отредактировал jurafenix - Пятница, 03.07.2015, 13:37
 
Ответить
Сообщениеошибку выдает на i=2. запускал именно этот файл. и при пересчете ячеек, он мне в столбце С обнулил все зеленые ячейки

Автор - jurafenix
Дата добавления - 03.07.2015 в 13:30
SLAVICK Дата: Пятница, 03.07.2015, 14:19 | Сообщение № 58
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Да... действительно на 2010 ом выдает ошибку.
Попробуйте это.

и еще формула:у меня работает в 2010 вот так:
Код
=RReplace_(B3;"[0-9]{8}";ТЕКСТ($C$1;"ddmmyyyy"))

а в 2013-ом так:
Код
=RReplace_(B3;"[0-9]{8}";ТЕКСТ($C$1;"ддммгггг"))
%)
К сообщению приложен файл: 7847818-3-.xlsm (75.9 Kb)


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

Сообщение отредактировал SLAVICK - Пятница, 03.07.2015, 14:22
 
Ответить
СообщениеДа... действительно на 2010 ом выдает ошибку.
Попробуйте это.

и еще формула:у меня работает в 2010 вот так:
Код
=RReplace_(B3;"[0-9]{8}";ТЕКСТ($C$1;"ddmmyyyy"))

а в 2013-ом так:
Код
=RReplace_(B3;"[0-9]{8}";ТЕКСТ($C$1;"ддммгггг"))
%)

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

Excel 2010
Вот теперь всё работает)) Теперь возникла с этим новая проблема((( У меня файлы в кодировке Кириллица (DOS). Когда я в ручную выбирал файлы у меня Excel автоматом перекодировал нормально, видимо помнил мой выбор. А сейчас кракозябры((((( как-нибудь можно сделать, чтобы при изменении имён файлов, все остальные параметры запросов не менялись?) Или лучше другой технологией воспользоваться?..
[moder]Новая проблема - новая тема. Читаем Правила форума[/moder]


Сообщение отредактировал Pelena - Воскресенье, 05.07.2015, 08:21
 
Ответить
СообщениеВот теперь всё работает)) Теперь возникла с этим новая проблема((( У меня файлы в кодировке Кириллица (DOS). Когда я в ручную выбирал файлы у меня Excel автоматом перекодировал нормально, видимо помнил мой выбор. А сейчас кракозябры((((( как-нибудь можно сделать, чтобы при изменении имён файлов, все остальные параметры запросов не менялись?) Или лучше другой технологией воспользоваться?..
[moder]Новая проблема - новая тема. Читаем Правила форума[/moder]

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

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