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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическое суммирование вводимых чисел - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Автоматическое суммирование вводимых чисел
12345tn Дата: Среда, 25.02.2015, 11:09 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

2007
Здравствуйте.Подскажите пожалуйста как сделать что бы в ячейке A1 автоматически суммировались вводимые поочерёдно любые числа.Заранее спасибо
К сообщению приложен файл: 123.xlsx (4.9 Kb)


Сообщение отредактировал 12345tn - Среда, 25.02.2015, 11:28
 
Ответить
СообщениеЗдравствуйте.Подскажите пожалуйста как сделать что бы в ячейке A1 автоматически суммировались вводимые поочерёдно любые числа.Заранее спасибо

Автор - 12345tn
Дата добавления - 25.02.2015 в 11:09
VEKTORVSFREEMAN Дата: Среда, 25.02.2015, 11:17 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 772
Репутация: 130 ±
Замечаний: 0% ±

MS Office Excel 2010
12345tn, здравствуйте!
Прочтите тут в пункте №3


"Опыт - это то, что получаешь, не получив того, что хотел"
 
Ответить
Сообщение12345tn, здравствуйте!
Прочтите тут в пункте №3

Автор - VEKTORVSFREEMAN
Дата добавления - 25.02.2015 в 11:17
_Boroda_ Дата: Среда, 25.02.2015, 12:09 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16888
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Макросы должны быть включены.
Сразу скажу, что без макросов только с итеративными вычислениями, а это та еще засада.
[vba]
Код
Dim n_
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address(0, 0) = "A1" Then
         Application.EnableEvents = 0
         On Error Resume Next
         Target = WorksheetFunction.Sum(n_, Target)
         If Err.Number <> 0 Then Target = n_
         On Error GoTo 0
         n_ = Target
         Target.Select
         Application.EnableEvents = 1
     End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Address(0, 0) = "A1" Then n_ = Target
End Sub
[/vba]
К сообщению приложен файл: 4444498_1.xlsm (15.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Макросы должны быть включены.
Сразу скажу, что без макросов только с итеративными вычислениями, а это та еще засада.
[vba]
Код
Dim n_
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address(0, 0) = "A1" Then
         Application.EnableEvents = 0
         On Error Resume Next
         Target = WorksheetFunction.Sum(n_, Target)
         If Err.Number <> 0 Then Target = n_
         On Error GoTo 0
         n_ = Target
         Target.Select
         Application.EnableEvents = 1
     End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Address(0, 0) = "A1" Then n_ = Target
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 25.02.2015 в 12:09
DJ_Marker_MC Дата: Среда, 25.02.2015, 12:14 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
Не уверен что это самый оптимальный путь, но рабочий
Это помещаем в модуль листа
[vba]
Код
Dim i
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        With Target
           If .Address(False, False) = "A1" Then
              If IsNumeric(.Value) Then
                 Application.EnableEvents = False
                  i = Selection.Value
                 Application.EnableEvents = True
              End If
           End If
        End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
           If .Address(False, False) = "A1" Then
              If IsNumeric(.Value) Then
                 Application.EnableEvents = False
                 s = Range("A1").Value
                 Range("A1").Value = Range("A1").Value + i
                 [a1].Select
                 i = Selection.Value
                 Application.EnableEvents = True
              End If
           End If
        End With
End Sub
[/vba]

up: упс, _Boroda_ опередил. Путь тот же, но код короче)))
К сообщению приложен файл: marker.xlsm (13.7 Kb)
 
Ответить
СообщениеНе уверен что это самый оптимальный путь, но рабочий
Это помещаем в модуль листа
[vba]
Код
Dim i
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        With Target
           If .Address(False, False) = "A1" Then
              If IsNumeric(.Value) Then
                 Application.EnableEvents = False
                  i = Selection.Value
                 Application.EnableEvents = True
              End If
           End If
        End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
           If .Address(False, False) = "A1" Then
              If IsNumeric(.Value) Then
                 Application.EnableEvents = False
                 s = Range("A1").Value
                 Range("A1").Value = Range("A1").Value + i
                 [a1].Select
                 i = Selection.Value
                 Application.EnableEvents = True
              End If
           End If
        End With
End Sub
[/vba]

up: упс, _Boroda_ опередил. Путь тот же, но код короче)))

Автор - DJ_Marker_MC
Дата добавления - 25.02.2015 в 12:14
  • Страница 1 из 1
  • 1
Поиск:

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