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

Вход

Регистрация

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

 

= Мир MS Excel/Прописать формулы макросом. - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Прописать формулы макросом. (Макросы/Sub)
Прописать формулы макросом.
Mark1976 Дата: Понедельник, 20.11.2017, 21:29 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
Всем доброго времени суток. Нужна помощь. Сможете прописать макросом формулы? Есть одно "но", в каждом файле разное кол-во строк. Формулы выделил желтым цветом. Может это можно сделать без макроса?
К сообщению приложен файл: 97_058-15.xls (21.0 Kb)
 
Ответить
СообщениеВсем доброго времени суток. Нужна помощь. Сможете прописать макросом формулы? Есть одно "но", в каждом файле разное кол-во строк. Формулы выделил желтым цветом. Может это можно сделать без макроса?

Автор - Mark1976
Дата добавления - 20.11.2017 в 21:29
_Boroda_ Дата: Понедельник, 20.11.2017, 21:38 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если снести суммы в другой столбец, то так можно
Код
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))

итоговая тогда так
Код
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))-СУММ(H1:ИНДЕКС(H:H;СЧЁТЗ(H:H)))
К сообщению приложен файл: 97_058-15_1.xls (27.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли снести суммы в другой столбец, то так можно
Код
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))

итоговая тогда так
Код
=СУММ(G1:ИНДЕКС(G:G;СЧЁТЗ(G:G)))-СУММ(H1:ИНДЕКС(H:H;СЧЁТЗ(H:H)))

Автор - _Boroda_
Дата добавления - 20.11.2017 в 21:38
Mark1976 Дата: Понедельник, 20.11.2017, 21:45 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Boroda_, спасибо. А вот как можно эти формулы автоматом посчитать
Код
=C1*B1
,
Код
=E1*B1
?
 
Ответить
Сообщение_Boroda_, спасибо. А вот как можно эти формулы автоматом посчитать
Код
=C1*B1
,
Код
=E1*B1
?

Автор - Mark1976
Дата добавления - 20.11.2017 в 21:45
Mark1976 Дата: Понедельник, 20.11.2017, 21:48 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
У меня это не шаблон. G1:G6 это диапазон, в котором формулы приходиться считать руками.
 
Ответить
СообщениеУ меня это не шаблон. G1:G6 это диапазон, в котором формулы приходиться считать руками.

Автор - Mark1976
Дата добавления - 20.11.2017 в 21:48
Mark1976 Дата: Понедельник, 20.11.2017, 21:50 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Boroda_, вот что я имею изначально. Файл приложил. Мне надо сделать, как файле в первом сообщении.
К сообщению приложен файл: 97_058-15_new.xls (20.5 Kb)
 
Ответить
Сообщение_Boroda_, вот что я имею изначально. Файл приложил. Мне надо сделать, как файле в первом сообщении.

Автор - Mark1976
Дата добавления - 20.11.2017 в 21:50
_Boroda_ Дата: Понедельник, 20.11.2017, 21:51 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А, понял, это? Зеленая ячейка
Код
=СУММПРОИЗВ((C1:ИНДЕКС(C:C;СЧЁТЗ(B:B))-E1:ИНДЕКС(E:E;СЧЁТЗ(B:B)))*B1:ИНДЕКС(B:B;СЧЁТЗ(B:B)))
К сообщению приложен файл: 97_058-15_2.xls (27.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА, понял, это? Зеленая ячейка
Код
=СУММПРОИЗВ((C1:ИНДЕКС(C:C;СЧЁТЗ(B:B))-E1:ИНДЕКС(E:E;СЧЁТЗ(B:B)))*B1:ИНДЕКС(B:B;СЧЁТЗ(B:B)))

Автор - _Boroda_
Дата добавления - 20.11.2017 в 21:51
Mark1976 Дата: Понедельник, 20.11.2017, 21:55 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Boroda_, немного не так. Формулу
Код
=C1*B1
, придется считать руками. И остальные формулы придется вставлять руками. Как можно это все вставить автоматом?
 
Ответить
Сообщение_Boroda_, немного не так. Формулу
Код
=C1*B1
, придется считать руками. И остальные формулы придется вставлять руками. Как можно это все вставить автоматом?

Автор - Mark1976
Дата добавления - 20.11.2017 в 21:55
_Igor_61 Дата: Понедельник, 20.11.2017, 21:59 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Наверное, макросом :)
К сообщению приложен файл: 0986204.xls (34.5 Kb)
 
Ответить
СообщениеЗдравствуйте! Наверное, макросом :)

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

2010
_Igor_61, может лучше так писать?
[vba]
Код
Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba]
и тянуть не надо.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение_Igor_61, может лучше так писать?
[vba]
Код
Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba]
и тянуть не надо.

Автор - RAN
Дата добавления - 20.11.2017 в 22:03
_Igor_61 Дата: Понедельник, 20.11.2017, 22:06 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Ну да, я просто про это не знал, что так можно, макрорекордер - мой учитель :) Спасибо, буду знать теперь! Хотя, блин, мог бы и сам догадаться! :)
 
Ответить
СообщениеНу да, я просто про это не знал, что так можно, макрорекордер - мой учитель :) Спасибо, буду знать теперь! Хотя, блин, мог бы и сам догадаться! :)

Автор - _Igor_61
Дата добавления - 20.11.2017 в 22:06
_Boroda_ Дата: Понедельник, 20.11.2017, 22:09 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Как можно это все вставить автоматом?

Зачем? Я Вам сразу итоговую сумму посчитал. Зачем Вам промежуточные нужны?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Как можно это все вставить автоматом?

Зачем? Я Вам сразу итоговую сумму посчитал. Зачем Вам промежуточные нужны?

Автор - _Boroda_
Дата добавления - 20.11.2017 в 22:09
Mark1976 Дата: Понедельник, 20.11.2017, 22:14 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Boroda_, формулы руками не хочется прописывать. Я файлы сохраняю из сторойней программы (их у меня очень много), поэтому и формулы приходится каждый раз прописывать вручную. Вот и хотел автоматизировать.
 
Ответить
Сообщение_Boroda_, формулы руками не хочется прописывать. Я файлы сохраняю из сторойней программы (их у меня очень много), поэтому и формулы приходится каждый раз прописывать вручную. Вот и хотел автоматизировать.

Автор - Mark1976
Дата добавления - 20.11.2017 в 22:14
Mark1976 Дата: Понедельник, 20.11.2017, 22:15 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Igor_61, макрос работает. Поправил строку.


Сообщение отредактировал Mark1976 - Понедельник, 20.11.2017, 22:18
 
Ответить
Сообщение_Igor_61, макрос работает. Поправил строку.

Автор - Mark1976
Дата добавления - 20.11.2017 в 22:15
_Igor_61 Дата: Понедельник, 20.11.2017, 22:24 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Если хотите, чтобы код был покороче, то кто же мешает? Поправьте (см. сообщение №10) :) Ну еще наверное можно добавить "ThisWorkbook" и листы, если сразу с несколькими открытыми файлами работаете, чтобы случайно макрос в другую не залез и не пересчитал там все :)
 
Ответить
СообщениеЕсли хотите, чтобы код был покороче, то кто же мешает? Поправьте (см. сообщение №10) :) Ну еще наверное можно добавить "ThisWorkbook" и листы, если сразу с несколькими открытыми файлами работаете, чтобы случайно макрос в другую не залез и не пересчитал там все :)

Автор - _Igor_61
Дата добавления - 20.11.2017 в 22:24
Mark1976 Дата: Понедельник, 20.11.2017, 22:27 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Igor_61,
Вот так заменил. Главное, что работает.
[vba]
Код
Sub Формулы()

    Dim lCount As Long
    lCount = Cells(Rows.Count, 1).End(xlUp).Row

    Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
    Range("G1").AutoFill Destination:=Range("G1:G" & lCount), Type:=xlFillDefault
   
    Range("H1").FormulaR1C1 = "=RC[-3]*RC[-6]"
    Range("H1").AutoFill Destination:=Range("H1:H" & lCount), Type:=xlFillDefault
    
    Cells(lCount + 1, 7).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Cells(lCount + 1, 8).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]"
    
End Sub
[/vba]


Сообщение отредактировал Mark1976 - Понедельник, 20.11.2017, 22:28
 
Ответить
Сообщение_Igor_61,
Вот так заменил. Главное, что работает.
[vba]
Код
Sub Формулы()

    Dim lCount As Long
    lCount = Cells(Rows.Count, 1).End(xlUp).Row

    Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
    Range("G1").AutoFill Destination:=Range("G1:G" & lCount), Type:=xlFillDefault
   
    Range("H1").FormulaR1C1 = "=RC[-3]*RC[-6]"
    Range("H1").AutoFill Destination:=Range("H1:H" & lCount), Type:=xlFillDefault
    
    Cells(lCount + 1, 7).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Cells(lCount + 1, 8).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]"
    
End Sub
[/vba]

Автор - Mark1976
Дата добавления - 20.11.2017 в 22:27
Mark1976 Дата: Понедельник, 20.11.2017, 22:36 | Сообщение № 16
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Igor_61, на одной строчке вылетает (если всего 1 строка)
 
Ответить
Сообщение_Igor_61, на одной строчке вылетает (если всего 1 строка)

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

2010
[vba]
Код
Sub Формулы()

    Dim lCount As Long
    lCount = Cells(Rows.Count, 1).End(xlUp).Row
    Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
    Range("H1:H" & lCount").FormulaR1C1 = "=RC[-3]*RC[-6]"
    Cells(lCount + 1, 7)Resize(,2).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]"
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Формулы()

    Dim lCount As Long
    lCount = Cells(Rows.Count, 1).End(xlUp).Row
    Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
    Range("H1:H" & lCount").FormulaR1C1 = "=RC[-3]*RC[-6]"
    Cells(lCount + 1, 7)Resize(,2).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
    Cells(lCount + 1, 9).FormulaR1C1 = "=RC[-2]-RC[-1]"
End Sub
[/vba]

Автор - RAN
Дата добавления - 20.11.2017 в 22:36
Mark1976 Дата: Понедельник, 20.11.2017, 22:42 | Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
RAN, Syntax eror, при выполнении макроса.
 
Ответить
СообщениеRAN, Syntax eror, при выполнении макроса.

Автор - Mark1976
Дата добавления - 20.11.2017 в 22:42
_Igor_61 Дата: Понедельник, 20.11.2017, 22:58 | Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
У меня работает с одной строкой
К сообщению приложен файл: 0986204_2.xlsm (19.2 Kb)
 
Ответить
СообщениеУ меня работает с одной строкой

Автор - _Igor_61
Дата добавления - 20.11.2017 в 22:58
Mark1976 Дата: Понедельник, 20.11.2017, 23:06 | Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010, 2013
_Igor_61, после этого [vba]
Код
'Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] работает. Спасибо.
 
Ответить
Сообщение_Igor_61, после этого [vba]
Код
'Range("G1:G" & lCount).FormulaR1C1 = "=RC[-4]*RC[-5]"
[/vba] работает. Спасибо.

Автор - Mark1976
Дата добавления - 20.11.2017 в 23:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Прописать формулы макросом. (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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