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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.01.2009, 13:45   #1
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию Сложение данных в разных ячейках

Имеется таблицаP_and_G_reports.rar. Там есть поля:
«Общий вес», «Собрано», «Сварено», «Окрашено», «Готово к отгрузке».
Также есть даты проведения каждого процесса, т.е. дата сборки, сварки, покраски, упаковки. У каждой конструкции есть масса.
Задача в том, чтобы в ячейки, расположенные слева от вышеуказанных полей вводить сумму масс конструкций, но только если указана дата проведения процесса. Т.е. если для конструкции указана дата сборки, то масса этой конструкции должна учитываться и суммироваться в поле «Собрано», и т.д.
Можно ли это решить формулами, или нужно использовать макросы? Макросов не боюсь
Знаю, что есть системы управления проектами, но они сложны для быстрого освоения, особенно, когда не очень понимаешь сам процесс. Поэтому пока такой простенький вариант.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 13.01.2009, 14:33   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Вполне можно (и нужно) обойтись формулами. Но в них я не разбираюсь...

Цитата:
Макросов не боюсь
Макросов-то и я не боюсь, а вот формулы бывают весьма страшными
EducatedFool вне форума
Старый 13.01.2009, 14:48   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А где прописан лист, который был активным при закрытии файла?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 13.01.2009, 15:40   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
А где прописан лист, который был активным при закрытии файла?
Если файл при закрытии не был сохранён - то этой информации не получить...

При открытии книги Excel активным становится тот лист, который был активен в момент сохранения книги.
EducatedFool вне форума
Старый 13.01.2009, 15:43   #5
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Так я про это и говорю. Как его узнать при открытии книги?

И еще. Я копирую ячейки с одного листа на другой. Как указывать строку и столбец цифрами, а не буквами, т.е. не «А1», а «R1C1», ну и, соответственно, как указать диапазон таким же образом?
Как сохранить форматирование при копировании? Имеется ввиду ширина столбца и строки?

С Word много работал. А здесь больше вопросов пока, чем ответов.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.01.2009 в 15:52.
viter.alex вне форума
Старый 13.01.2009, 16:09   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Обращайся к свойствам переменной ActiveSheet, представляющей активный рабочий лист.
То есть программно открыл книгу, и сразу обращаешься к объекту ActiveSheet, например, Msgbox ActiveSheet.name

Цитата:
Как указывать строку и столбец цифрами, а не буквами
Например, cells(2,5) - ячейка во 2 строке в 5 столбце
Вообще, существует около сотни разных способов обратиться к ячейке.
(подробности узнаешь, пройдя по приведённой ниже ссылке)

Здесь ты найдешь ответы на большинство вопросов по Excel.
Прочитай полностью хотя бы оглавление, потом будешь знать, где искать, да и вообще, что может делать Excel.
EducatedFool вне форума
Старый 13.01.2009, 16:56   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Что здесь неправильно? Добавляю новый лист, даю ему имя, пытаюсь диапазон ячеек из листа oWorksheet вставить в новый лист. Пишет: «Application-defined or object-defined error».
Код:
  For Each oWorksheet In ActiveWorkbook.Sheets
    Set oNewWorksheet = Worksheets.Add(, Worksheets(Worksheets.Count), , xlWorksheet)
    oNewWorksheet.Name = "Изменения в «" & oWorksheet.Name & "»"
    oWorksheet.Range(Cells(1, 1), Cells(2, 12)).Copy oNewWorksheet.Cells(1, 1)
  Next oWorksheet
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 13.01.2009, 17:21   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Код:
Sub test()
    For Each oWorksheet In ActiveWorkbook.Sheets
        Set oNewWorksheet = Worksheets.Add(, Worksheets(Worksheets.Count), , xlWorksheet)
        oNewWorksheet.Name = "Изменения в «" & oWorksheet.Name & "»"
        oWorksheet.Range(oWorksheet.Cells(1, 1), oWorksheet.Cells(2, 12)).Copy oNewWorksheet.Cells(1, 1)
    Next oWorksheet
End Sub
В твоём коде Cells(1, 1) и Cells(2, 12) ссылались на соответствующие ячейки активного листа, которым на момент выполнения команды являлся вновь созданный лист.


Я бы сделал так:
Код:
Sub test2()
    Application.ScreenUpdating = False    ' отключаем обновление экрана
    For Each oWorksheet In ThisWorkbook.Worksheets
        oWorksheet.Copy ThisWorkbook.Worksheets(1)    ' копируем лист (новый лист становится активным)
        With ActiveSheet
            .UsedRange.Offset(2).Clear    ' стираем всё, начиная с 3-й строки
            .Name = "Изменения в «" & oWorksheet.Name & "»"
        End With
    Next oWorksheet
End Sub
поскольку такой вариант позволяет сохранить всё форматирование первых 2-х строк, и все настройки листа (типа параметров печати, и т.п.)

Последний раз редактировалось EducatedFool; 13.01.2009 в 17:27.
EducatedFool вне форума
Старый 13.01.2009, 18:05   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот такие формулы.
возможно будет полезной такая возможность: задать период за который необходимо собрать данные. Если начальную, конечную дату не указывать будут собраны общие данные.
Вложения
Тип файла: rar P_and_G_reports.rar (9.7 Кб, 20 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 13.01.2009, 19:16   #10
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
вот такие формулы.
возможно будет полезной такая возможность: задать период за который необходимо собрать данные. Если начальную, конечную дату не указывать будут собраны общие данные.
Я пока домой ехал в метро, тоже додумался до суммы произведений, только произведение нужно брать ячейки с массой на результат операции сравнения ячейки с датой и пустой строки. Т.е. если результат сравнения False, получим 0, если True, получим массу.
Добавлено после долгих раздумий
Чего-то я не пойму как работает эта формула.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.01.2009 в 19:54.
viter.alex вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод данных в разных падежах с access. sashaslam БД в Delphi 3 28.05.2010 22:48
удаление значений в ячейках pirat:) Microsoft Office Excel 4 23.12.2008 20:54
Суммирование данных в ячейках запроса Kikobuster Microsoft Office Access 5 28.11.2008 14:39
Выплывающий календарь в определенных ячейках Neo007 Microsoft Office Excel 1 12.09.2008 12:50
как ограничить возможность ввода формата в ячейках? Ivo4ka Microsoft Office Excel 23 14.02.2008 09:02