Подбить сумму

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

Доброго времени суток, высоко уважаемые программисты!
Подскажите пожалуйста, как сделать чтобы в подобных ячейках MS EXCEL (замечу это строка в ячейке А1)
550+100-90=560
при редактировании, концовка заменялась на минс "-" т.е вот такое получать
550+100-90-
Добавив значение и после перехода в другую ячейку результат подбился. К примеру вот в такой(в одной и той же ячейке А1)
550+100-90+20=479
В конце концов подбить все вычисления в строках по столбцу А, а также подбить итоговую сумму результатов, в одну ячейку - B1. Надо учесть что в столбце будут попадаться пустые строки(тип которых- ДатаТайм) - их пропускать !
Наперед говорю Спасибо, т.к часто забываю это сделать после оказания помощи.
Подскажите пожалуйста код, если я вас неутружу. :confused:
550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

Если можно, то чтобы алгоритм учитывал тот факт что в ячейке встретиться и два знака "=" или больше
Чтобы промежуточный знак "=" со своим результатом исчезал. пример начальная
550+100-90=560
вносим данные 550+100-90+20=279-10, переходим в другую ячейку, а этой идет распознавание. Если есть промежуточное "=" то преобразовывается в
550+100-90+20-10=570 и если мы промежуточные свои "вноски" вводили не коректно т.е. определяеться если 550+100-90+20 неровно 279 то оповестить пользователя. Теже действия приминить и в случае если мы введем сами подсчитаную сумму в концовке.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

ваша задача решается написанием пользовательской функции на VBA

вот пример простейшей...

Код: Выделить всё

Public Function MyFunction()
MyFunction = 34
End Function
в справке Excel и на форуме поищите "пользователь" "Определенные пользователем" и т.д.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте 550953.
Объясните назначение строки "550+100-90+20-10=570".
Если это формула, Excel будет обрабатывать ее как логическое выражение и результатом будет ее значение истинности. При "накопительном" вводе данных, размещать их стоит в специально выделеном диаппазоне, а в ячейке "А1" разместить формулу подсчитывающую его змачение(=СУММ(A6:A15)). В любом случае редактировать ячейку проще "руками через F2", чем создавать программу (или функцию) создающую в ней "нагромождение".
Удачи Вам.
Евгений.
550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

Teslenko_EA писал(а):Здравствуйте 550953.
Объясните назначение строки "550+100-90+20-10=570".
Если это формула, Excel будет обрабатывать ее как логическое выражение и результатом будет ее значение истинности. При "накопительном" вводе данных, размещать их стоит в специально выделеном диаппазоне, а в ячейке "А1" разместить формулу подсчитывающую его змачение(=СУММ(A6:A15)). В любом случае редактировать ячейку проще "руками через F2", чем создавать программу (или функцию) создающую в ней "нагромождение".
Удачи Вам.
Евгений.
Чесно говоря незнаю уже как обьяснить, может я и зря ломаю голову, но всеже было бы приятнее если ексель проверял то что я ввожу. Вот я закинул рисунок того с чем мучаюсь
Изображение
Через Ф2 я то знаю, но ф2 не проверит мой ввод. Помогите, подскажите пожалуйста. Или всеже в данной ситуации выхода нет кроме ф2?
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте 550953.
"Объясните назначение строки "550+100-90+20-10=570"." осталось без ответа. Если "...незнаю уже как обьяснить..." - не знаю как отвечать, "...рисунок того с чем мучаюсь..." нисколько не объяснил назначение строк в колонке "D".
550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

В столбце D у меня есть ячейки. Как сделать чтобы при вводе в D13 excel реагировал?
1500+90=1590-600=990-500=490-
Под словом реагировал я имею, введу, значения “=1590”, “=990”. Проверить расчёт: 1500+90, равна ли сумма 1590 и 1590-600 равно ли 990?
Если я забуду сам вписать результат, т.е оставлю так
1500+90=1590-600=990-500- или так
1500+90-600-500- или так
1500+90-600-500, то чтобы excel заменил на
1500+90-600-500=490-
Ответьте пожалуйста, можно такое сделать и как?
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

ИМХО, изначально неправильное построение таблицы.
Помещать в одну ячейку значения вида:
1500+90=1590-600=990-500-
1500+90-600-500-
1500+90-600-500
1500+90-600-500=490-
по моему не есть гуд.
Я, конечно как и Teslenko_EA так и не понял, что же Вы хотите получить, но я бы сначала попробовал перестроить таблицу. Т.е. поместил все числовые данные в отдельные ячейки, а тогда уже проводил над ними необходимые операции.
550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

Не получается в каждую ячеку раскидывать, слишком растягивается на А4 не вмещается не по книжной, не по альбомной форме на распечатку
Dim_ok
Сообщения: 51
Зарегистрирован: 03 июл 2007, 09:17

Так если там теже цифры что и у Вас в строке, чего вдруг по столбцам таблица станет шире чем сейчас? притом что уйдут Ваши +, - и =.
Вы поясните страждущим конечную цель и что обозначают Ваши данные?
Может есть более другое решение впринципе.
Ответить