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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.04.2008, 09:51   #1
yourself
Пользователь
 
Аватар для yourself
 
Регистрация: 10.11.2007
Сообщений: 38
По умолчанию Учет платежей

Задачка: есть таблица в Excel. В верхней строке - названия месяцев, каждый содержится в двух объединенных ячейках. В следующей строке под названием каждого месяца по две графы: "Начислено" и "Оплачено". В конце таблицы есть графа "Последний месяц оплаты". Она должна показывать, в каком месяце произведена последняя оплата. Алгоритм по идее простенький, но я сломал голову над его реализацией. Не могу понять, как в цикле сделать проход по столбцам с проверкой заполненности ячеек. Помогите плиз
P.S.: Если я непонятно написал словами, посмотрите на вложение...
Изображения
Тип файла: jpg table.jpg (24.5 Кб, 174 просмотров)
yourself вне форума
Старый 14.04.2008, 10:53   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Т.к Вы пишите
Цитата:
как в цикле сделать проход по столбцам с проверкой заполненности ячеек
, Значит, как я понял, нужно сделать с помощью VBA. Посмотрите вложение. Запустите макрос "Mes".
Вложения
Тип файла: rar Мес_опл.rar (7.1 Кб, 25 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 14.04.2008, 13:36   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

или на формулах. см.вложение.
Вложения
Тип файла: rar Книга12.rar (2.4 Кб, 36 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 14.04.2008, 14:44   #4
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Лампочка Еще один вариант макроса

Код:
'Перед первым запуском макроса:
'1. Выделить ячейку "Январь".
'2. "Правка -- Перейти... -- Выделить -- текущую область".
'3. "Вставка -- Имя -- Создать...", флажок только "в строке выше".
'
'Поскольку это только пример, то
'при запуске макроса лист с таблицей должен быть активен.

Sub LastPaymentMonth()
    Const JanName = "Январь"
    Const MonthsCount = 6&
    Const LastPaymentMonthName = "Месяц_последней_оплаты"
    Const HeaderRowsCount = 2&
    Const MinPayment = 0.00005

    Dim iJan As Long, jJan As Long, jLPM As Long, j As Long
    Dim r As Range, c As Range, v

    'Осмотреться в отсеках!

    With Range(JanName)
        iJan = .Row - 1&
        jJan = .Column
    End With
    jLPM = Range(LastPaymentMonthName).Column
    
    With Cells(iJan, jJan).CurrentRegion
        Set r = Range(Cells(iJan + HeaderRowsCount, jLPM), _
            Cells(.Rows(.Rows.Count).Row, jLPM))
    End With

    'Собственно работа

    For Each c In r.Cells
        v = Empty
        For j = MonthsCount - 1 To 0& Step -1&
            'Проверка "> MinPayment" вместо IsEmpty()
            '- на случай, если в ячейке будет не константа, а формула
            If Cells(c.Row,  j * 2& + jJan + 1&) > MinPayment Then
                v = Cells(iJan,  j * 2& + jJan)
                Exit For 'j
            End If
        Next 'j
        c = v
    Next 'c
End Sub

Последний раз редактировалось дмидми; 14.04.2008 в 14:56. Причина: Введены константы для первого полугодия
дмидми вне форума
Старый 15.04.2008, 01:55   #5
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Предложу еще пару решений:
Вложения
Тип файла: rar Книга14.rar (2.3 Кб, 33 просмотров)
Тип файла: rar Книга15.rar (2.5 Кб, 31 просмотров)

Последний раз редактировалось ZORRO2005; 15.04.2008 в 02:24.
ZORRO2005 вне форума
Старый 16.04.2008, 07:39   #6
yourself
Пользователь
 
Аватар для yourself
 
Регистрация: 10.11.2007
Сообщений: 38
По умолчанию

Всем большое спасибо Буду сидеть и разбирать примеры
yourself вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учет работ строительной компании Droid БД в Delphi 3 04.06.2014 20:21
требуется написать программу для приема платежей ольга55 Фриланс 1 28.04.2008 20:27
Учет движения денежных средств в паскале SEREG@ Помощь студентам 4 22.04.2008 08:00
Надо разработать базу данных. Для учета карт-экспресс оплаты, платежей и т.д. Coolern Помощь студентам 1 12.06.2007 23:56
Учет Траффика Stakanosid Работа с сетью в Delphi 3 15.01.2007 13:51