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

Вход

Регистрация

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

 

= Мир MS Excel/Подтягивание данных из предыдущей таблицы - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Подтягивание данных из предыдущей таблицы
dimon171 Дата: Пятница, 13.07.2018, 10:26 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет. Так вот. Каждую неделю готовится отчет о планируемых, заключенных и проданных контрактах. Файл отчета всегда имеет имя Отчет "номер недели". Т.е. отчет на 28 недели имеет имя Отчет 28 неделя. В отчете соответственно есть три поля с количеством. Каждую неделю в папке появляется новый файл соответственно в который вручную вносятся данные из предыдущего файла, и в отдельной колонке смотрится изменение величин по отношению к предыдущей недели. Хотел бы автоматизировать данный процесс т.е. написать внутри файла макрос чтобы он брал значения из предыдущего файла. Если с самой задачей как взять данные я почти понимаю, то не понимаю как написать его таким образом чтобы он учитывал смену имени файла внутри макроса. Те. на 29 неделе макрос должен будет взять данные из 28, а на 30й уже из 29. Подскажите или направьте пожалуйста.
С уважением, Дмитрий
К сообщению приложен файл: _28_.xlsx (8.1 Kb)


С уважением, Дмитрий
 
Ответить
СообщениеВсем привет. Так вот. Каждую неделю готовится отчет о планируемых, заключенных и проданных контрактах. Файл отчета всегда имеет имя Отчет "номер недели". Т.е. отчет на 28 недели имеет имя Отчет 28 неделя. В отчете соответственно есть три поля с количеством. Каждую неделю в папке появляется новый файл соответственно в который вручную вносятся данные из предыдущего файла, и в отдельной колонке смотрится изменение величин по отношению к предыдущей недели. Хотел бы автоматизировать данный процесс т.е. написать внутри файла макрос чтобы он брал значения из предыдущего файла. Если с самой задачей как взять данные я почти понимаю, то не понимаю как написать его таким образом чтобы он учитывал смену имени файла внутри макроса. Те. на 29 неделе макрос должен будет взять данные из 28, а на 30й уже из 29. Подскажите или направьте пожалуйста.
С уважением, Дмитрий

Автор - dimon171
Дата добавления - 13.07.2018 в 10:26
Kuzmich Дата: Пятница, 13.07.2018, 10:57 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 717
Репутация: 159 ±
Замечаний: 0% ±

Excel 2003
Цитата
Файл отчета всегда имеет имя Отчет "номер недели".

Почему тогда пример называется _28_.xlsx
И надо приводить два примера за текущую и предыдущую недели.
Цитата
Подскажите или направьте пожалуйста.

Пишите макрос.
Из имени файла выделяете номер недели, вычитаете 1, формируете имя предыдущего файла и открываете его.
 
Ответить
Сообщение
Цитата
Файл отчета всегда имеет имя Отчет "номер недели".

Почему тогда пример называется _28_.xlsx
И надо приводить два примера за текущую и предыдущую недели.
Цитата
Подскажите или направьте пожалуйста.

Пишите макрос.
Из имени файла выделяете номер недели, вычитаете 1, формируете имя предыдущего файла и открываете его.

Автор - Kuzmich
Дата добавления - 13.07.2018 в 10:57
_Boroda_ Дата: Пятница, 13.07.2018, 11:07 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Такой вариант. Вешаем на событие открытия файла. Все файлы должны называться с двумя цифрами - "Отчет_00". Если предыдущего файла нет или он называется как-то не так, то предложит его выбрать вручную. Расширение должно быть ".xlsm"
[vba]
Код
Private Sub Workbook_Open()
    r0_ = 3
    c_ = 5
    r1_ = Cells(Rows.Count, 3).End(3).Row
    p_ = ThisWorkbook.Path
    fnom_ = Mid(ThisWorkbook.Name, 7, 2) - 1
    If fnom_ Then
        pred_ = "'" & p_ & "\[Отчет_" & fnom_ & ".xlsm]Sheet1'!RC[-1]"
    Else
        pred_ = 0
    End If
    Cells(r0_, c_).Resize(r1_ - r0_ + 1).FormulaR1C1 = "=RC[-1]-" & pred_
End Sub
[/vba]

Форум стирает в названиях приложенных файлов русские буквы, переназовите файл сами потом
К сообщению приложен файл: _29.xlsm (16.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант. Вешаем на событие открытия файла. Все файлы должны называться с двумя цифрами - "Отчет_00". Если предыдущего файла нет или он называется как-то не так, то предложит его выбрать вручную. Расширение должно быть ".xlsm"
[vba]
Код
Private Sub Workbook_Open()
    r0_ = 3
    c_ = 5
    r1_ = Cells(Rows.Count, 3).End(3).Row
    p_ = ThisWorkbook.Path
    fnom_ = Mid(ThisWorkbook.Name, 7, 2) - 1
    If fnom_ Then
        pred_ = "'" & p_ & "\[Отчет_" & fnom_ & ".xlsm]Sheet1'!RC[-1]"
    Else
        pred_ = 0
    End If
    Cells(r0_, c_).Resize(r1_ - r0_ + 1).FormulaR1C1 = "=RC[-1]-" & pred_
End Sub
[/vba]

Форум стирает в названиях приложенных файлов русские буквы, переназовите файл сами потом

Автор - _Boroda_
Дата добавления - 13.07.2018 в 11:07
dimon171 Дата: Пятница, 27.07.2018, 15:13 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо за совет
С уважением, Дмитрий


С уважением, Дмитрий
 
Ответить
СообщениеСпасибо за совет
С уважением, Дмитрий

Автор - dimon171
Дата добавления - 27.07.2018 в 15:13
dimon171 Дата: Вторник, 31.07.2018, 16:58 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Обновленные вводные. После пересмотра действий решил что задача несколько упрощается и в файле необходимо иметь кнопку макроса при нажатии на которую excel выделит область из предыдущей книги с названием (неделя-1) и все. Как это реализовать?Но скопировать он должен только значения без формул
Также если не затруднит зайдите пожалуйста в эту тему


С уважением, Дмитрий

Сообщение отредактировал dimon171 - Вторник, 31.07.2018, 17:20
 
Ответить
СообщениеОбновленные вводные. После пересмотра действий решил что задача несколько упрощается и в файле необходимо иметь кнопку макроса при нажатии на которую excel выделит область из предыдущей книги с названием (неделя-1) и все. Как это реализовать?Но скопировать он должен только значения без формул
Также если не затруднит зайдите пожалуйста в эту тему

Автор - dimon171
Дата добавления - 31.07.2018 в 16:58
  • Страница 1 из 1
  • 1
Поиск:

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