Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.01.2009, 12:21   #1
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию Создание отчета!!!

Добрый день!
У меня к Вам одна просьба. Кто сможет помогите в создании отчета.
Существует файл с данными "1.xls", эти данные необходимо перекинуть в файл "отчет.xls", (как показано в прикрепленных файлах). в реальности файл "1" содержит данные на 800 человек. и в ручную перекинуть их в отчет занимает очень много врмеени, и учитывая тот факт, что отчет является ежедневным, у меня крышу сносит.
Помогите кто сможет.
По возможности лучше было бы оформить эти действия через макрос.
Спасибо!
С Уважением Б.К.
Вложения
Тип файла: rar otchet.rar (7.5 Кб, 28 просмотров)
Viento вне форума
Старый 12.01.2009, 14:11   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
файл "1" содержит данные на 800 человек
В отчёте данные на каждого сотрудника занимают 1 столбец.
У Вас, наверное, Excel 2007, если на листе более 800 столбцов?

Всегда ли для каждого сотрудника имеется ровно 16 записей?

Записи начинаются с ячейки A2, или формат файла с данными может быть другим?

Последний раз редактировалось EducatedFool; 12.01.2009 в 14:13.
EducatedFool вне форума
Старый 12.01.2009, 14:31   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Откройте оба файла и запустите макрос "Main".
Что не так?
Вложения
Тип файла: rar отчет.rar (13.6 Кб, 36 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 12.01.2009, 14:34   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Или вот Вам ещё вариант.
Только этот макрос надо поместить в файл "отчёт".

И, конечно, оба файла должны быть открыты.

Код:
Sub CopyData()
    On Error Resume Next
    Application.ScreenUpdating = False

    With ThisWorkbook.Worksheets("Лист1").UsedRange.Rows(1).Offset(0, 2)
        .ClearContents: .Offset(4).Resize(16).ClearContents ' очистка от прежних данных
    End With

    Dim cell2 As Range, cell As Range
    Set cell2 = Workbooks("1.xls").Worksheets("1").[a2]
    Set cell = ThisWorkbook.Worksheets("Лист1").Cells(1, 3)

    While cell2.Value <> ""
        cell = cell2: cell2.Offset(, 2).Resize(16).Copy cell.Offset(4)
        Set cell2 = cell2.Offset(16): Set cell = cell.Next
    Wend
End Sub


2 SAS888

В Вашем варианте лучше заменить краткие имена книг полными:

Workbooks("1.xls").Sheets(1).Activate
With Workbooks("отчет.xls").Sheets(1)

А то на некоторых компах (в том числе и на моём) макрос выдаёт ошибку.

Последний раз редактировалось EducatedFool; 12.01.2009 в 14:45.
EducatedFool вне форума
Старый 12.01.2009, 15:16   #5
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

В отчёте данные на каждого сотрудника занимают 1 столбец. - Да

Всегда ли для каждого сотрудника имеется ровно 16 записей? - ДА

Записи начинаются с ячейки A2, или формат файла с данными может быть другим? - записи всегда будут начинаться с ячейки А2
Viento вне форума
Старый 12.01.2009, 15:20   #6
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

Макрос работает. Но он лежит в файле "1.xls" Мне не совсем подходит, тк он всегда формируется с нуля, те его формирует программа.

Если можно было макрос написать в файле отчета, это был бы лучший вариант.

И еще одно! Макрос написан только на 3 фамилии с данными ? Как сделать его на большее число?

Огромное Спасибо, за помощь!
Viento вне форума
Старый 12.01.2009, 15:27   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
2 SAS888
А то на некоторых компах (в том числе и на моём) макрос выдаёт ошибку.
У меня работает

Последний раз редактировалось valerij; 12.01.2009 в 15:34.
valerij вне форума
Старый 12.01.2009, 15:27   #8
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

Все работает. Скажите плз! Дело в том что у меня не эксель 2007 а 2003 , там в одну строчку могу вставить только 250 сотрудников,
как мне сделать так, чтобы остальные вставали на этом же листе.но под уже вставленными данными ?
Спасибо!
Viento вне форума
Старый 12.01.2009, 15:29   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Макрос написан только на 3 фамилии с данными ?
C чего Вы это взяли? Фамилий может быть сколько угодно.

Посмотрите вложение.

Цитата:
Дело в том что у меня не эксель 2007 а 2003 , там в одну строчку могу вставить только 250 сотрудников,
как мне сделать так, чтобы остальные вставали на этом же листе.но под уже вставленными данными ?
Проще установить Excel 2007.
В принципе можно сделать и несколько блоков по 250 человек.

Но проще изменить формат хранения данных в отчёте - заносить информацию по каждому сотруднику не в отдельный столбец, а в отдельную строку (как в файле 1.xls)
Вложения
Тип файла: rar отчёт.rar (13.6 Кб, 37 просмотров)

Последний раз редактировалось EducatedFool; 12.01.2009 в 15:32.
EducatedFool вне форума
Старый 12.01.2009, 15:47   #10
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

[QUOTE=EducatedFool;185234]

Огромное спасибо! Все работает как надо.

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

А что нужно изменить в макросе или добавть 2-й макрос чтобы вставала инфа свыше 250 фамилий вниз?
Viento вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание отчета в delphi Pang БД в Delphi 7 10.01.2012 16:35
Печать отчета Nikolaeva Общие вопросы Delphi 0 17.11.2008 13:53
Сохранение отчета Nikolaeva Общие вопросы Delphi 0 22.09.2008 11:24
RepoRTF: формирование отчета БД Lady_olga БД в Delphi 0 04.06.2008 13:13
Формирование отчета в Excel из Delphi Chals Общие вопросы Delphi 1 04.06.2007 19:25