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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.01.2007, 12:06   #1
Albert
 
Регистрация: 06.01.2007
Сообщений: 4
По умолчанию суммирование вводимых чисел в одной ячейке

Подскажите пожалуйста, как организовать подсчет суммы в одной ячейке. Например: в ячейку A1 записываю число 6, нажимаю Enter, ячейка A1 отображает число 6, затем в эту же ячейку A1 записываю число 3, нажимаю Enter, ячейка отображает число 3. А мне нужно, чтобы эти числа суммировались т.е. в ячейке A1 отображалось число 9. Как это сделать? Спасибо!
Albert вне форума
Старый 07.01.2007, 15:38   #2
Hellen
Подтвердите свой е-майл
 
Регистрация: 06.01.2007
Сообщений: 19
По умолчанию

У тебя ячейки в документе кончились?)))
Hellen вне форума
Старый 07.01.2007, 15:45   #3
Albert
 
Регистрация: 06.01.2007
Сообщений: 4
По умолчанию

Нет, не закончились. Я в самом начале. Мне нужен именно такой алгоритм работы и я не знаю, как его осуществить.
Albert вне форума
Старый 07.01.2007, 15:57   #4
infinitiv
Пользователь
 
Регистрация: 05.12.2006
Сообщений: 23
По умолчанию

Почему именно такой алгоритм?
Дело в том, что его осуществление представляется довольно затруднительным.
Может возможно решение задачи с помощью другого алгоритма?
infinitiv вне форума
Старый 07.01.2007, 15:58   #5
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Кликните левой кнопкой мышки на ярлычке нужного рабочего листа и в появившемся контекстном меню выберите команду Исходный текст. Затем скопируйте нижеопубликованный код в модуль листа и сохраните изменения и выйдите из редактора VBA.

Код:
Private vData
 
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Not Intersect(Target, [A1]) Is Nothing Then
       If IsNumeric([A1]) Then vData = [A1]
    End If
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, [A1]) Is Nothing Then
       Application.EnableEvents = False
       If IsNumeric([A1]) Then [A1] = [A1] + vData
       Application.EnableEvents = True
    End If
End Sub

Последний раз редактировалось pashulka; 07.01.2007 в 16:38.
pashulka вне форума
Старый 07.01.2007, 18:58   #6
Hellen
Подтвердите свой е-майл
 
Регистрация: 06.01.2007
Сообщений: 19
По умолчанию

Маааатерь божья!!! Работает!!!
Pashulka! ты гений!)))
Hellen вне форума
Старый 07.01.2007, 19:47   #7
Albert
 
Регистрация: 06.01.2007
Сообщений: 4
По умолчанию

Спасибо, Pashulka, все работает!
Это для одной ячейки A1. А как код будет выглядеть для диапазона A1:A100. Т.е. при вводе числа в любую ячейку данного диапазона, оно (число) суммировалось бы с предыдущим значением данной ячейки. И так, для любой ячейки.

Последний раз редактировалось Albert; 07.01.2007 в 19:55.
Albert вне форума
Старый 07.01.2007, 21:55   #8
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Например, так. Только обратите внимание на то, что данный пример :
- ориентирован на заполнение ячеек исключительно числовыми значениями
- "запрещает" одновременное изменение данных в диапазоне ячеек

Код:
Private vData
 
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A1:A100]) Is Nothing Then
       If IsNumeric(Target) Then vData = Target
    End If
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, [A1:A100]) Is Nothing Then
       Application.EnableEvents = False
       If Target.Count = 1 And IsNumeric(Target(1)) Then
          Target = Target + vData
       Else
          Application.Undo
       End If
       Application.EnableEvents = True
    End If
End Sub
pashulka вне форума
Старый 07.01.2007, 23:47   #9
Albert
 
Регистрация: 06.01.2007
Сообщений: 4
По умолчанию

Класс!!!
Это то, что мне нужно!
Еще раз большое спасибо!
Albert вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать по одной ячейке из нескольких файлов в один Nimo Microsoft Office Excel 2 09.08.2008 09:25
В одной ячейке текст и число Shavminator Microsoft Office Excel 11 27.12.2007 14:32
два числа в одной ячейке zetrix Microsoft Office Excel 1 23.12.2007 23:24
Нужно разбить те числа которые в одной ячейке по разным ячейчам в столбец Alexander_Gr Microsoft Office Excel 8 20.11.2007 08:02
в одной ячейке надписи были в 2-х или 3-х рядках и текст отображался целиком а не прятался за границами KSP Общие вопросы Delphi 7 20.09.2007 20:33