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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование строк раб. графика на нов. лист (в нов. книгу) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Копирование строк раб. графика на нов. лист (в нов. книгу)
kubhome Дата: Воскресенье, 06.01.2013, 11:41 | Сообщение № 1
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Есть готовый график работы (Лист "График"). Необходимо скопировать ЗНАЧЕНИЯ продолжительности рабочего времени на новый лист ("График"), а лучше в новую книгу.
Трудность в следующем:
1. В листе "График" строки на 31 день, а лист "Табель" - двухстрочный на одного работника.
2. В листе "График" запись на одного работника или 3 строки + итоговая, или 6 строк + итоговая, причём записи следуют в любом порядке (всего до 350 записей).
3. В некоторых записях могут быть буквы (Б, О, ДО, У и, возможно, ещё что-либо) - всегда в строке "Обед" - желательно скопировать их в "Табель" в те же числа месяца.
4. После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом).
Как я понимаю, все это можно сделать только макросом, а в VBA я могу только макрорекордером (для данной задачи не подходит), или немного подправить под себя чужой макрос.
Поиском по форумам находил некоторые из элементов задачи (очень приблизительно), но "слепить" их вместе - выше моих познаний.
Прошу любой помощи: ссылки, идеи, коды. Очень нужно!
К сообщению приложен файл: _2013.rar (22.8 Kb)
 
Ответить
СообщениеЕсть готовый график работы (Лист "График"). Необходимо скопировать ЗНАЧЕНИЯ продолжительности рабочего времени на новый лист ("График"), а лучше в новую книгу.
Трудность в следующем:
1. В листе "График" строки на 31 день, а лист "Табель" - двухстрочный на одного работника.
2. В листе "График" запись на одного работника или 3 строки + итоговая, или 6 строк + итоговая, причём записи следуют в любом порядке (всего до 350 записей).
3. В некоторых записях могут быть буквы (Б, О, ДО, У и, возможно, ещё что-либо) - всегда в строке "Обед" - желательно скопировать их в "Табель" в те же числа месяца.
4. После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом).
Как я понимаю, все это можно сделать только макросом, а в VBA я могу только макрорекордером (для данной задачи не подходит), или немного подправить под себя чужой макрос.
Поиском по форумам находил некоторые из элементов задачи (очень приблизительно), но "слепить" их вместе - выше моих познаний.
Прошу любой помощи: ссылки, идеи, коды. Очень нужно!

Автор - kubhome
Дата добавления - 06.01.2013 в 11:41
RAN Дата: Воскресенье, 06.01.2013, 17:55 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (kubhome)
После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом)

Самая дурацкая идея. Табельный номер, как и ИНН, являются УНИКАЛЬНЫМ идентификатором, а вы по ФИО, которые могут совпадать, предполагаете подтягивать УНИКАЛЬНЫЙ идентификатор. И без того в ваших табличках проблем хватает. Решите вопрос с табельным номером - поглядим.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (kubhome)
После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом)

Самая дурацкая идея. Табельный номер, как и ИНН, являются УНИКАЛЬНЫМ идентификатором, а вы по ФИО, которые могут совпадать, предполагаете подтягивать УНИКАЛЬНЫЙ идентификатор. И без того в ваших табличках проблем хватает. Решите вопрос с табельным номером - поглядим.

Автор - RAN
Дата добавления - 06.01.2013 в 17:55
kubhome Дата: Воскресенье, 06.01.2013, 18:09 | Сообщение № 3
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Я понимаю, что сортировка двухстрочных записей проблематиична.
По поводу таб. № - пока у меня ФИО уникальные.
А если без сортировки? Возможно мне придется вручную, или что-нибудь придумаю.
Для меня самые трудоемкие и актуальные первые 2 пункта.
Спасибо!
 
Ответить
СообщениеЯ понимаю, что сортировка двухстрочных записей проблематиична.
По поводу таб. № - пока у меня ФИО уникальные.
А если без сортировки? Возможно мне придется вручную, или что-нибудь придумаю.
Для меня самые трудоемкие и актуальные первые 2 пункта.
Спасибо!

Автор - kubhome
Дата добавления - 06.01.2013 в 18:09
RAN Дата: Понедельник, 07.01.2013, 17:11 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Добавил табельный номер в график.

Велика у стула ножка... wink
К сообщению приложен файл: 1073126.rar (34.1 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 07.01.2013, 17:13
 
Ответить
СообщениеДобавил табельный номер в график.

Велика у стула ножка... wink

Автор - RAN
Дата добавления - 07.01.2013 в 17:11
kubhome Дата: Понедельник, 07.01.2013, 17:15 | Сообщение № 5
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Чувствую, моя задача или слишком сложная, или не интересная!
Может быть хоть примерное решение (направление) - дальше попробую "докрутить"?
Иначе - я в тупике, только пошагово копи-паст.
 
Ответить
СообщениеЧувствую, моя задача или слишком сложная, или не интересная!
Может быть хоть примерное решение (направление) - дальше попробую "докрутить"?
Иначе - я в тупике, только пошагово копи-паст.

Автор - kubhome
Дата добавления - 07.01.2013 в 17:15
kubhome Дата: Понедельник, 07.01.2013, 18:06 | Сообщение № 6
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Вариант, предложенный RAN, похоже делает то, что нужно. Спасибо Вам.
Сейчас буду тестировать на рабочем файле.
Извините, я упустил из виду, что в столбце V листа "Табель" формула суммирования рабочих часов за месяц; можно ли её сохранить? Т.к. по факту часы по дням придется корректировать.
 
Ответить
СообщениеВариант, предложенный RAN, похоже делает то, что нужно. Спасибо Вам.
Сейчас буду тестировать на рабочем файле.
Извините, я упустил из виду, что в столбце V листа "Табель" формула суммирования рабочих часов за месяц; можно ли её сохранить? Т.к. по факту часы по дням придется корректировать.

Автор - kubhome
Дата добавления - 07.01.2013 в 18:06
RAN Дата: Понедельник, 07.01.2013, 18:16 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Не понял, но можно.
Формулы на значения меняет строка

[vba]
Код
ActiveWorkbook.Sheets(1).UsedRange.Value = ActiveWorkbook.Sheets(1).UsedRange.Value
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНе понял, но можно.
Формулы на значения меняет строка

[vba]
Код
ActiveWorkbook.Sheets(1).UsedRange.Value = ActiveWorkbook.Sheets(1).UsedRange.Value
[/vba]

Автор - RAN
Дата добавления - 07.01.2013 в 18:16
kubhome Дата: Понедельник, 07.01.2013, 18:38 | Сообщение № 8
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Извините, я не понял, что надо изменить в указанной строке.
Хотелось бы, чтобы в листе "Табель" в ячейке V12 (V14, V16, ...) вставлялась формула =СУММ(F11:T11;F12:U12) для V12 и т.д.
 
Ответить
СообщениеИзвините, я не понял, что надо изменить в указанной строке.
Хотелось бы, чтобы в листе "Табель" в ячейке V12 (V14, V16, ...) вставлялась формула =СУММ(F11:T11;F12:U12) для V12 и т.д.

Автор - kubhome
Дата добавления - 07.01.2013 в 18:38
RAN Дата: Понедельник, 07.01.2013, 18:43 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Удалить. smile

Или заменить на
[vba]
Код
ActiveWorkbook.Sheets(1).Range("A1:W10").Value = ActiveWorkbook.Sheets(1).Range("A1:W10").Value
[/vba]

И небольшая поправка. Правильно так

[vba]
Код
saveName = ThisWorkbook.Path & "\" & Sheets("ТабельШаблон").Range("B3").Value
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 07.01.2013, 19:03
 
Ответить
СообщениеУдалить. smile

Или заменить на
[vba]
Код
ActiveWorkbook.Sheets(1).Range("A1:W10").Value = ActiveWorkbook.Sheets(1).Range("A1:W10").Value
[/vba]

И небольшая поправка. Правильно так

[vba]
Код
saveName = ThisWorkbook.Path & "\" & Sheets("ТабельШаблон").Range("B3").Value
[/vba]

Автор - RAN
Дата добавления - 07.01.2013 в 18:43
kubhome Дата: Понедельник, 07.01.2013, 20:57 | Сообщение № 10
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

К сожалению на рабочем файле данный макрос не работает.
Вставляет 4 пустые строки в шапку таблицы "ТабельШаблон" и в таком виде сохраняет результат (см. вложение)
К сообщению приложен файл: 3865858.xlsx (14.0 Kb)
 
Ответить
СообщениеК сожалению на рабочем файле данный макрос не работает.
Вставляет 4 пустые строки в шапку таблицы "ТабельШаблон" и в таком виде сохраняет результат (см. вложение)

Автор - kubhome
Дата добавления - 07.01.2013 в 20:57
kubhome Дата: Вторник, 08.01.2013, 01:53 | Сообщение № 11
Группа: Проверенные
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Прошу прощения!
Недоглядел в одном месте при переносе решения на мой рабочий файл.
Теперm все работает отлично!
Огромное спасибо, RAN!
 
Ответить
СообщениеПрошу прощения!
Недоглядел в одном месте при переносе решения на мой рабочий файл.
Теперm все работает отлично!
Огромное спасибо, RAN!

Автор - kubhome
Дата добавления - 08.01.2013 в 01:53
seherot Дата: Четверг, 18.04.2013, 11:02 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Привет всем.
У меня аналогичная задача, есть документ с кучей листов по параметрам. Задача состоит в том чтобы делать отчет по результатам раз месяц. С помощью рекордера и своих небольших познаний в VBA сделал возможность создания нового документа и переноса туда данных. Проблема в том что в формуле

[vba]
Код
Set new = Workbooks.Add
  new.Sheets("Лист1").Activate
Range("C5").Select
     ActiveCell.FormulaR1C1 = _
         "=IFERROR(VLOOKUP(RC1,'[Отчет.xls]база1'!R7C11:R1870C24,14,0),"""")"
[/vba]

'[Отчет.xls]база1'! ссылается только на конкретный лист, а у меня таких листов 10. Как можно сделать, чтобы при запуске макрос, определялась страница, предпологал что как то с помощью SheetName = ActiveSheet.name
Но не хватает знаний чтобы привязать к формуле.

Заранее спасибо!
 
Ответить
СообщениеПривет всем.
У меня аналогичная задача, есть документ с кучей листов по параметрам. Задача состоит в том чтобы делать отчет по результатам раз месяц. С помощью рекордера и своих небольших познаний в VBA сделал возможность создания нового документа и переноса туда данных. Проблема в том что в формуле

[vba]
Код
Set new = Workbooks.Add
  new.Sheets("Лист1").Activate
Range("C5").Select
     ActiveCell.FormulaR1C1 = _
         "=IFERROR(VLOOKUP(RC1,'[Отчет.xls]база1'!R7C11:R1870C24,14,0),"""")"
[/vba]

'[Отчет.xls]база1'! ссылается только на конкретный лист, а у меня таких листов 10. Как можно сделать, чтобы при запуске макрос, определялась страница, предпологал что как то с помощью SheetName = ActiveSheet.name
Но не хватает знаний чтобы привязать к формуле.

Заранее спасибо!

Автор - seherot
Дата добавления - 18.04.2013 в 11:02
  • Страница 1 из 1
  • 1
Поиск:

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