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

Вход

Регистрация

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

 

= Мир MS Excel/Найти журнал с наибольшей прибылью. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найти журнал с наибольшей прибылью. (Макросы/Sub)
Найти журнал с наибольшей прибылью.
tweeker Дата: Четверг, 22.06.2017, 16:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем доброго времени суток.
Нужно найти журнал с наибольшей прибылью и вывести его значение.
Т.е. Нужно 8 строку умножить на строку 17 и выбрать максимум, и вывести наименование этого журнала,но не могу понять,как написать это на VBA.
Благодарю за ответы.
Скриншот:

Листинг программы:
[vba]
Код
Dim Journal(15) As Variant

Dim PriceJanuary(15) As Long
Dim PriceFebruary(15) As Long
Dim PriceMarch(15) As Long
Dim PriceApril(15) As Long
Dim PriceMay(15) As Long
Dim PriceJune(15) As Long

Dim January(15) As Long
Dim February(15) As Long
Dim March(15) As Long
Dim April(15) As Long
Dim May(15) As Long
Dim June(15) As Long

Dim TwoJournal As Integer

Sub AddJournals()
Journal(1) = InputBox("Введите название первого журнала")
Cells(2, 2) = Journal(1)
Cells(11, 2) = Journal(1)
Journal(2) = InputBox("Введите название второго журнала")
Cells(2, 3) = Journal(2)
Cells(11, 3) = Journal(2)
Journal(3) = InputBox("Введите название третьего журнала")
Cells(2, 4) = Journal(3)
Cells(11, 4) = Journal(3)
Journal(4) = InputBox("Введите название четвертого журнала")
Cells(2, 5) = Journal(4)
Cells(11, 5) = Journal(4)
Journal(5) = InputBox("Введите название пятого журнала")
Cells(2, 6) = Journal(5)
Cells(11, 6) = Journal(5)
Journal(6) = InputBox("Введите название шестого журнала")
Cells(2, 7) = Journal(6)
Cells(11, 7) = Journal(6)
Journal(7) = InputBox("Введите название седьмого журнала")
Cells(2, 8) = Journal(7)
Cells(11, 8) = Journal(7)
Journal(8) = InputBox("Введите название восьмого журнала")
Cells(2, 9) = Journal(8)
Cells(11, 9) = Journal(8)
Journal(9) = InputBox("Введите название девятого журнала")
Cells(2, 10) = Journal(9)
Cells(11, 10) = Journal(9)
Journal(10) = InputBox("Введите название десятый журнала")
Cells(2, 11) = Journal(10)
Cells(11, 11) = Journal(10)
Journal(11) = InputBox("Введите название одиннадцатый журнала")
Cells(2, 12) = Journal(11)
Cells(11, 12) = Journal(11)
Journal(12) = InputBox("Введите название двенадцатый журнала")
Cells(2, 13) = Journal(12)
Cells(11, 13) = Journal(12)
Journal(13) = InputBox("Введите название тринадцатый журнала")
Cells(2, 14) = Journal(13)
Cells(11, 14) = Journal(13)
Journal(14) = InputBox("Введите название четырнадцатый журнала")
Cells(2, 15) = Journal(14)
Cells(11, 15) = Journal(14)
Journal(15) = InputBox("Введите название пятнадцатый журнала")
Cells(2, 16) = Journal(15)
Cells(11, 16) = Journal(15)

End Sub

Sub AddPriceJournals()

For i = 1 To 15
1 PriceJanuary(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Январь")
Cells(3, i + 1) = PriceJanuary(i)
Next i

For i = 1 To 15
PriceFebruary(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Февраль")
Cells(4, i + 1) = PriceFebruary(i)
Next i

For i = 1 To 15
PriceMarch(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Март")
Cells(5, i + 1) = PriceMarch(i)
Next i

For i = 1 To 15
PriceApril(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Апрель")
Cells(6, i + 1) = PriceApril(i)
Next i

For i = 1 To 15
PriceMay(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Май")
Cells(7, i + 1) = PriceMay(i)
Next i

For i = 1 To 15
PriceJune(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Июнь")
Cells(8, i + 1) = PriceJune(i)
Next i

End Sub

Sub Sell()

For i = 1 To 15
January(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Январь")
Cells(12, i + 1) = January(i)
Next i

For i = 1 To 15
February(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Февраль")
Cells(13, i + 1) = February(i)
Next i

For i = 1 To 15
March(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Март")
Cells(14, i + 1) = March(i)
Next i

For i = 1 To 15
April(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Апрель")
Cells(15, i + 1) = April(i)
Next i

For i = 1 To 15
May(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Май")
Cells(16, i + 1) = May(i)
Next i

For i = 1 To 15
June(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Июнь")
Cells(17, i + 1) = June(i)
Next i

End Sub

Sub TwoSell()
For i = 1 To 15
Cells(18, 1 + i) = (January(i) * PriceJanuary(i)) + (February(i) * PriceFebruary(i))
Next i

End Sub

Sub AllSell()

Dim One As Integer
Dim Two As Integer
Dim Three As Integer
Dim Four As Integer
Dim Five As Integer
Dim Six As Integer

For i = 1 To 15
One = One + January(i) * PriceJanuary(i)
Cells(12, 17) = One
Next i

For i = 1 To 15
Two = Two + February(i) * PriceFebruary(i)
Cells(13, 17) = Two
Next i

For i = 1 To 15
Three = Three + March(i) * PriceMarch(i)
Cells(14, 17) = Three
Next i

For i = 1 To 15
Four = Four + April(i) * PriceApril(i)
Cells(15, 17) = Four
Next i

For i = 1 To 15
Five = Five + May(i) * PriceMay(i)
Cells(16, 17) = Five
Next i

For i = 1 To 15
Six = Six + June(i) * PriceJune(i)
Cells(17, 17) = Six
Next i
End Sub

Sub FullAll()
Dim Full As Integer

For i = 1 To 15
Full = Full + (January(i) * PriceJanuary(i)) + (February(i) * PriceFebruary(i)) + (March(i) * PriceMarch(i)) + (April(i) * PriceApril(i)) + (May(i) * PriceMay(i)) + (June(i) * PriceJune(i))
Cells(19, 2) = Full
Next i
End Sub
[/vba]
К сообщению приложен файл: 9488980.xlsm (32.1 Kb)
 
Ответить
СообщениеВсем доброго времени суток.
Нужно найти журнал с наибольшей прибылью и вывести его значение.
Т.е. Нужно 8 строку умножить на строку 17 и выбрать максимум, и вывести наименование этого журнала,но не могу понять,как написать это на VBA.
Благодарю за ответы.
Скриншот:

Листинг программы:
[vba]
Код
Dim Journal(15) As Variant

Dim PriceJanuary(15) As Long
Dim PriceFebruary(15) As Long
Dim PriceMarch(15) As Long
Dim PriceApril(15) As Long
Dim PriceMay(15) As Long
Dim PriceJune(15) As Long

Dim January(15) As Long
Dim February(15) As Long
Dim March(15) As Long
Dim April(15) As Long
Dim May(15) As Long
Dim June(15) As Long

Dim TwoJournal As Integer

Sub AddJournals()
Journal(1) = InputBox("Введите название первого журнала")
Cells(2, 2) = Journal(1)
Cells(11, 2) = Journal(1)
Journal(2) = InputBox("Введите название второго журнала")
Cells(2, 3) = Journal(2)
Cells(11, 3) = Journal(2)
Journal(3) = InputBox("Введите название третьего журнала")
Cells(2, 4) = Journal(3)
Cells(11, 4) = Journal(3)
Journal(4) = InputBox("Введите название четвертого журнала")
Cells(2, 5) = Journal(4)
Cells(11, 5) = Journal(4)
Journal(5) = InputBox("Введите название пятого журнала")
Cells(2, 6) = Journal(5)
Cells(11, 6) = Journal(5)
Journal(6) = InputBox("Введите название шестого журнала")
Cells(2, 7) = Journal(6)
Cells(11, 7) = Journal(6)
Journal(7) = InputBox("Введите название седьмого журнала")
Cells(2, 8) = Journal(7)
Cells(11, 8) = Journal(7)
Journal(8) = InputBox("Введите название восьмого журнала")
Cells(2, 9) = Journal(8)
Cells(11, 9) = Journal(8)
Journal(9) = InputBox("Введите название девятого журнала")
Cells(2, 10) = Journal(9)
Cells(11, 10) = Journal(9)
Journal(10) = InputBox("Введите название десятый журнала")
Cells(2, 11) = Journal(10)
Cells(11, 11) = Journal(10)
Journal(11) = InputBox("Введите название одиннадцатый журнала")
Cells(2, 12) = Journal(11)
Cells(11, 12) = Journal(11)
Journal(12) = InputBox("Введите название двенадцатый журнала")
Cells(2, 13) = Journal(12)
Cells(11, 13) = Journal(12)
Journal(13) = InputBox("Введите название тринадцатый журнала")
Cells(2, 14) = Journal(13)
Cells(11, 14) = Journal(13)
Journal(14) = InputBox("Введите название четырнадцатый журнала")
Cells(2, 15) = Journal(14)
Cells(11, 15) = Journal(14)
Journal(15) = InputBox("Введите название пятнадцатый журнала")
Cells(2, 16) = Journal(15)
Cells(11, 16) = Journal(15)

End Sub

Sub AddPriceJournals()

For i = 1 To 15
1 PriceJanuary(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Январь")
Cells(3, i + 1) = PriceJanuary(i)
Next i

For i = 1 To 15
PriceFebruary(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Февраль")
Cells(4, i + 1) = PriceFebruary(i)
Next i

For i = 1 To 15
PriceMarch(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Март")
Cells(5, i + 1) = PriceMarch(i)
Next i

For i = 1 To 15
PriceApril(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Апрель")
Cells(6, i + 1) = PriceApril(i)
Next i

For i = 1 To 15
PriceMay(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Май")
Cells(7, i + 1) = PriceMay(i)
Next i

For i = 1 To 15
PriceJune(i) = InputBox("Введите цену для журнала " & Journal(i) & " за Июнь")
Cells(8, i + 1) = PriceJune(i)
Next i

End Sub

Sub Sell()

For i = 1 To 15
January(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Январь")
Cells(12, i + 1) = January(i)
Next i

For i = 1 To 15
February(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Февраль")
Cells(13, i + 1) = February(i)
Next i

For i = 1 To 15
March(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Март")
Cells(14, i + 1) = March(i)
Next i

For i = 1 To 15
April(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Апрель")
Cells(15, i + 1) = April(i)
Next i

For i = 1 To 15
May(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Май")
Cells(16, i + 1) = May(i)
Next i

For i = 1 To 15
June(i) = InputBox("Введите кол-во проданных журналов " & Journal(i) & " за Июнь")
Cells(17, i + 1) = June(i)
Next i

End Sub

Sub TwoSell()
For i = 1 To 15
Cells(18, 1 + i) = (January(i) * PriceJanuary(i)) + (February(i) * PriceFebruary(i))
Next i

End Sub

Sub AllSell()

Dim One As Integer
Dim Two As Integer
Dim Three As Integer
Dim Four As Integer
Dim Five As Integer
Dim Six As Integer

For i = 1 To 15
One = One + January(i) * PriceJanuary(i)
Cells(12, 17) = One
Next i

For i = 1 To 15
Two = Two + February(i) * PriceFebruary(i)
Cells(13, 17) = Two
Next i

For i = 1 To 15
Three = Three + March(i) * PriceMarch(i)
Cells(14, 17) = Three
Next i

For i = 1 To 15
Four = Four + April(i) * PriceApril(i)
Cells(15, 17) = Four
Next i

For i = 1 To 15
Five = Five + May(i) * PriceMay(i)
Cells(16, 17) = Five
Next i

For i = 1 To 15
Six = Six + June(i) * PriceJune(i)
Cells(17, 17) = Six
Next i
End Sub

Sub FullAll()
Dim Full As Integer

For i = 1 To 15
Full = Full + (January(i) * PriceJanuary(i)) + (February(i) * PriceFebruary(i)) + (March(i) * PriceMarch(i)) + (April(i) * PriceApril(i)) + (May(i) * PriceMay(i)) + (June(i) * PriceJune(i))
Cells(19, 2) = Full
Next i
End Sub
[/vba]

Автор - tweeker
Дата добавления - 22.06.2017 в 16:09
buchlotnik Дата: Четверг, 22.06.2017, 16:11 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
tweeker, так а формульное решение чем не устроило?
 
Ответить
Сообщениеtweeker, так а формульное решение чем не устроило?

Автор - buchlotnik
Дата добавления - 22.06.2017 в 16:11
tweeker Дата: Четверг, 22.06.2017, 16:34 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
buchlotnik, такое задание :С
Можете помочь?
 
Ответить
Сообщениеbuchlotnik, такое задание :С
Можете помочь?

Автор - tweeker
Дата добавления - 22.06.2017 в 16:34
_Boroda_ Дата: Четверг, 22.06.2017, 18:07 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Такой вариант
[vba]
Код
Sub tt()
    c1_ = Cells(2, Columns.Count).End(1).Column
    r1_ = Cells(Rows.Count, c1_).End(3).Row - 1
    r0_ = 3
    mes_ = Range("A" & r1_)
    For i = r0_ To r1_
        If Range("A" & i) = mes_ Then
            Exit For
        End If
    Next i
    For j = 2 To c1_
        z1_ = Cells(i, j) * Cells(r1_, j)
        If z1_ > z2_ Then
            z2_ = z1_
            nc_ = j
        End If
    Next j
    Range("B" & r1_ + 3) = Cells(2, nc_)
End Sub
[/vba]
К сообщению приложен файл: 9488980_1.xlsm (31.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант
[vba]
Код
Sub tt()
    c1_ = Cells(2, Columns.Count).End(1).Column
    r1_ = Cells(Rows.Count, c1_).End(3).Row - 1
    r0_ = 3
    mes_ = Range("A" & r1_)
    For i = r0_ To r1_
        If Range("A" & i) = mes_ Then
            Exit For
        End If
    Next i
    For j = 2 To c1_
        z1_ = Cells(i, j) * Cells(r1_, j)
        If z1_ > z2_ Then
            z2_ = z1_
            nc_ = j
        End If
    Next j
    Range("B" & r1_ + 3) = Cells(2, nc_)
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 22.06.2017 в 18:07
tweeker Дата: Четверг, 22.06.2017, 19:14 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Такой вариант

Спасибо большое,очень помогли)
 
Ответить
Сообщение
Такой вариант

Спасибо большое,очень помогли)

Автор - tweeker
Дата добавления - 22.06.2017 в 19:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найти журнал с наибольшей прибылью. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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