Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Копирование суммы ячеек
 
Добрый день!
Часто приходится сталкиваться с такой проблемой: с одного листа нужно скопировать данные на другой в виде итога, т.е. выделяем несколько ячеек на одном листе, видим в строке состояния итог по сумме, запоминаем в уме, переходим на другой лист и записываем по памяти. Можно ли как-то автоматизировать этот процесс? Т.е. выделил несколько ячеек, нажал определенную комбинацию, перешел на другой лист, выбрал нужную ячейку, вставка, в нужной ячейке появилась сумма. Пользуюсь excel 2007/
Заранее спасибо.
 
Цитата
DRONAN написал: запоминаем в уме,
можно еще на листок записать
Цитата
DRONAN написал: выбрал нужную ячейку
а нужная ячейка как выбирается может по какому то признаку дак может формулу прописать которая будет считать сумму в нужной ячейке по нужному признаку
Лень двигатель прогресса, доказано!!!
 
Цитата
Сергей написал: а нужная ячейка как выбирается может по какому то признаку
Нет, выбирается произвольно
 
почитайте  ТУТ что пишут знающие люди и по ссылке в теме перейдите
Лень двигатель прогресса, доказано!!!
 
Выделить Запустить SelectionSumToClipBoard  
Вставить обычным образом.

Ну а как запускать SelectionSumToClipBoard - это вопрос удобства. горячую кнопку  или собственное меню по правой кнопке, или .....
Код
Sub SelectionSumToClipBoard()
    For Each cell In Selection
        Sum = Sum + IIf(IsNumeric(cell.Value), cell.Value, 0)
    Next
    CopyToClipboard (Sum)
End Sub
Function CopyToClipboard(sClipText As String) As Boolean
    ' Source: www.Spreadsheet1.com
    ' Late binding, no Forms Library reference required
    Dim MSForms_DataObject As Object
    On Error GoTo ErrorHandler_
    Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    MSForms_DataObject.SetText sClipText
    MSForms_DataObject.PutInClipboard
    CopyToClipboard = True
Exit Function
ErrorHandler_:
    CopyToClipboard = False
End Function
 
Спасибо. Не знал, что тема такая древняя
 
Комментарий к #5: любопытная ситуация из практики. Запишите 1 в ячейки A1 и A2. Не отпуская Ctrl, несколько раз выделите A1:A2. Excel внизу экрана правильно отобразит сумму ячеек, а макрос? :)  
Изменено: sokol92 - 27 Мар 2018 10:56:13
Владимир
 
sokol92, Ну это тоже все обработать можно. Вопрос скорее нужно ли и как правильно с точки зрения пользователя? :-) .  Собирать словарь адресов и проверять обработан ли - не сложно .
Код
Sub SelectionSumToClipBoard()
    Dim cell As Range
    Dim Sum As Double
    Set d = CreateObject("Scripting.Dictionary")
    For Each cell In Intersect(Selection, ActiveSheet.UsedRange)
        With cell
            If Not d.Exists(.Address) Then
                d.Add .Address, ""
                Sum = Sum + IIf(IsNumeric(.Value), .Value, 0)
            End If
        End With
    Next
    CopyToClipboard (Sum)
    Set d = Nothing
End Sub
Куда я лезу? не макрушник я , не макрушник. :-)

Подумал и на случай выделения всего столбца или строки, лучше ограничить .
Изменено: БМВ - 27 Мар 2018 13:39:37
 
БМВ,зачтено. :)  
Владимир
 
Спасибо огромное всем откликнувшимся!
Страницы: 1
Читают тему (гостей: 1)