Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 48
1
Excel

Перемножение определенных ячеек в таблице

23.06.2019, 13:42. Показов 3755. Ответов 10

Author24 — интернет-сервис помощи студентам
Суть проблемы следующая. ПО выводит шаблон, где в значениях в столбце L прописаны не те формулы, которые мне нужны. Напротив значений "зарплата", "нр от ФОТ" и "сп от ФОТ" из столбца D стоят значения из столба L.

Задача:

Написать макрос, который бы прописывал формулу перемножения каждой ячейки из столбца L на число (1) из соседнего столбца K. (L38*K38, L39*K38, L40*K38). Там стоит единица, но вместо неё коэффициент затем проставляется вручную какой нужно. Так необходимо сделать для всего файла, а не только для позиции 1. В итоге после срабатывания макроса должно получится так, чтобы при изменении коэффициента из столбца K пересчитывались значения из столба L.

Запись макроса не работает, потому что заранее неизвестно из скольки позиций будет фаил, может быть там 3 позиции, а может быть 100.



Перемножение определенных ячеек в таблице
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2019, 13:42
Ответы с готовыми решениями:

Макрос который суммирует значение из определённых ячеек к значению в других определённых ячейках
Нужен макрос который будет АВТОМАТИЧЕСКИ прибавлять значение из определённых ячеек в которых эти...

Отображение определенных филиалов для определенных пользователей в сводной таблице
Здравствуйте! Есть сводная таблица в которой есть колонка "Филиал". Мне нужно чтоб для...

Перемножение ячеек
есть ли в экселе формула, которая делает следующее: есть p1, p2, p3 (ячейки) нужно вычислить...

Перемножение ячеек StringGrid
Здравствуйте!!! Требуется перемножить ячейки столбца в StringGrid, и вывести сообщение с...

10
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
23.06.2019, 15:39 2
Магистр, уж сколько раз объяснять, что нужны не картинки, а файл, да и в правилах форума об этом написано, прочитайте
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 48
23.06.2019, 15:45  [ТС] 3
Burk, фаил весит 250 кб, больше 100 кб загрузить нельзя
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
23.06.2019, 16:10 4
Магистр, во-первых, можно отсылать архивированный, а проще послать не весь, а несколько блоков, например, те, которые видны на вашей картинке.
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 48
23.06.2019, 18:03  [ТС] 5
Архив вот 11.rar
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
23.06.2019, 18:32 6
Магистр, а что нельзя подправить формулу для ячейки L38 =Source!S146*$K$38 для L39 =СУММ(T37:T41)*$K$38
для L40 =СУММ(V37:V41)*$K$38 и так для всех блоков. Или заносить макросами в новые блоки эти формулы, ну либо, как вы писали, запускать макрос, который подсчитает значения в этих ячейках и тогда формулы в ячейках не нужны, всё перенесётся в макрос.
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 48
23.06.2019, 19:52  [ТС] 7
Цитата Сообщение от Burk Посмотреть сообщение
Магистр, а что нельзя подправить формулу для ячейки L38 =Source!S146*$K$38 для L39 =СУММ(T37:T41)*$K$38
для L40 =СУММ(V37:V41)*$K$38 и так для всех блоков.
нет, формула автоматически выгружается из ПО, поправить её невозможно, только переписать с помощью макроса, но я не знаю как.

Цитата Сообщение от Burk Посмотреть сообщение
Или заносить макросами в новые блоки эти формулы, ну либо, как вы писали, запускать макрос, который подсчитает значения в этих ячейках и тогда формулы в ячейках не нужны, всё перенесётся в макрос.
Написать макрос, который бы прописывал формулу перемножения каждой ячейки из столбца L на число (1) из соседнего столбца K.
0
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
23.06.2019, 20:13 8
Лучший ответ Сообщение было отмечено Магистр как решение

Решение

Магистр, Один из множества вариантов :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Test()
    Dim c As Range, a$, i&
    Set c = Range("D:D").Find("Зарплата", , xlValues, xlWhole)
    If Not c Is Nothing Then
       a = c.Address
       Do
            For i = 1 To 3
                c(i, 9).Formula = c(i, 9).Formula & "*" & c(1, 8).Address
            Next
            Set c = Range("D:D").FindNext(c)
       Loop Until c.Address = a
    End If
End Sub
1
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 48
23.06.2019, 20:29  [ТС] 9
Цитата Сообщение от pashulka Посмотреть сообщение
Магистр, Один из множества вариантов :
Сработало , я кстати немного не так себе представлял реализацию, но математика сходится. Спасибо
0
2737 / 1712 / 778
Регистрация: 23.03.2015
Сообщений: 5,423
23.06.2019, 21:01 10
Лучший ответ Сообщение было отмечено Магистр как решение

Решение

Магистр,

попробуйте :
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub or_Magistr ()
For i = 1 To Cells(Rows.Count, 4).End(xlUp).Row
    If Cells(i, 4).Value = "Зарплата" Then
        Cells(i, 12).Formula = Cells(i, 12).Formula & "*" & Cells(i, 11).Address
        Cells(i + 1, 12).Formula = Cells(i + 1, 12).Formula & "*" & Cells(i, 11).Address
        Cells(i + 2, 12).Formula = Cells(i + 2, 12).Formula & "*" & Cells(i, 11).Address
     End If
Next
 
End Sub
Добавлено через 1 минуту
Сорри , не видел решения...
1
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
24.06.2019, 17:52 11
Магистр, Те же яйца, только вид сбоку :

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Test2()
    Dim c As Range, i&, r&
    Set c = [D1] 'Cells(1, 4)
    For i = 1 To Application.CountIf([D:D], "Зарплата")
        Set c = [D:D].Find("Зарплата", c, xlValues, xlWhole)
        For r = 1 To 3
            c(r, 9).Formula = c(r, 9).Formula & "*" & c(1, 8).Address
        Next
    Next
End Sub
0
24.06.2019, 17:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2019, 17:52
Помогаю со студенческими работами здесь

Перемножение ячеек StringGrid
выдает ошибку при таком коде procedure TForm1.Button2Click(Sender: TObject); var i:integer;...

Изменить ширину ячеек одной таблицы, в зависимости от соответствующих ячеек в другой таблице
День добрый. Необходимо изменять ширину ячеек одной таблицы, в зависимости от соответствующих...

Перемножение ячеек с числом и текстом
Добрый день! Имеется таблица (пример в приложении), необходимо перемножить ячейки "Тара" и...

Перемножение ячеек StringGrid при нажатии кнопки
Здравствуйте, мне надо написать программу, где ячейки SrtingGrid при нажатии кнопки должны...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru