Страницы: 1 2 След.
RSS
Привязать кнопки сложения и вычитания к активной ячейке заданного столбца.
 
Всем привет!

Как автоматом в макросе кнопки менять ссылку на следующую ячейку?
Пример:
- В колонке "B" перечислены значения.
- В строке 3 для ячейки "B3" создана кнопка с макросом, который прибавляет единицу (здесь, значение из ячейки А1).
Текст макроса на кнопке: Range("B3") = Range("B3") + Range("A1")
- Передвигаем кнопку со строки 3 ниже на следующую строку 4.
Необходимо, чтобы кнопка снова работала, но уже для следующей строки.
- Как сделать так, чтобы в макросе кнопки изменилось ссылка на новую строку?
Т.е. вместо текста макроса: Range("B3") = Range("B3") + Range("A1")  был макрос Range("B4") = Range("B4") + Range("A1")

Видимо, можно сделать как-то через дополнительную переменную, которую надо менять руками каждый раз (прибавлять 1), к которой будет обращаться макрос? Можно ли реализовать, чтобы не было ручного изменения переменной, тк значения часто обновляются? (как вариант отдельная кнопка на каждую строку или др вариант решения)

Скриншот и файл excel прилагаю. Заранее благодарю за помощь в решении данной проблемы.
 
oleg9911,и так вниз пока не закончатся все строки?  
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
и так вниз пока не закончатся все строки?  
Да.
 
oleg9911, что-то не очень понятные мероприятия...чет уверен что вы делаете совсем другое

ну если в А1 используете числа то ставите туда 3 (первая заполненная ячейке с данными к которым прибавь 1)
Код
Sub Скругленныйпрямоугольник1_Щелчок()
Range("B" & Cells(1, 1)) = Range("B" & Cells(1, 1)) + 1
Range("A1") = Range("A1") + 1
End Sub
Изменено: Mershik - 21.06.2020 18:50:55
Не бойтесь совершенства. Вам его не достичь.
 
oleg9911, не нужно писать через 1-2-3 столки. Вернитесь в стартовое сообщение и приведите его в порядок.
По вопросу: может быть нужен цикл перебора ячеек?
 
Цитата
Mershik написал:
чет уверен что вы делаете совсем другое
Да, немного не то.

В ячейке "A1" просто указана цифра, которую мы прибавляем (здесь единица "1"). Её, впринципе, можно прописать и в самом макросе.

А прибавление этой цифры (1) из "A1" идет в ячейку "B3" (складываем "1" со значением, которое там прописано, в данном случае к значению "100").
Допустим мы нажали 5 раз, т.е. добавили к 100 - 5 единиц. В ячейке "B3" будет значение "105".

Далее необходимо, чтобы кнопка также работала (плюсовала +1) но уже к следующей ячейке "B4" (и тд вниз), к тому значению, которое там прописано.  Собственно, в этом задача, чтобы не делать кучу кнопок под каждую строку - можно ли это реализовать 1 кнопкой, передвигая ее на каждую следующую строку. Видимо, как вариант, это обращение к какому-то значению, которое надо руками прибавлять - тогда в макросе будет меняться ссылка на ячейку B, но номер для этой ячейки браться из значения, которое мы будем увеличивать руками. Может есть другие варианты?
Изменено: oleg9911 - 21.06.2020 19:04:54
 
Цитата
Mershik написал: в макросе кнопки
Макрос кнопки, чтобы кнопка плюсовала - да ни при чем кнопка!. Она - только один из возможных вариантов запуска макроса, который выполняет всю работу.
Чтобы ключ зажигания провез меня в соседний город - так это звучит. Безграмотно.

Предложите название темы, отражающее проблему. Заменят модераторы
 
oleg9911, очень много тексте и ничего не ясно (мне).
выделяете нужную вам ячейку к которой нужно прибавить один (или что там вам нужно будет) и запускаете макрос
Код
удалил пока не отреагируете на замечание модератора
Изменено: Mershik - 21.06.2020 19:11:07
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Юрий М написал:
По вопросу: может быть нужен цикл перебора ячеек?
Немного не понял вопрос. Задача в том, чтобы сделать мульти кнопку, которая прибавляет +1 к значению ячейки B3. Допустим, мы закончили ручное прибавление, теперь необходимо перейти к прибавлению +1, но уже к следующей ячейке B4, как это реализовать без постоянного изменения макроса в кнопке?
Может рядом пустить строку с номером, который меняем руками - данный номер будет n-номером строки для ячейки B
 
oleg9911, Вы выборочно читаете текст моего сообщения? Я с чего начал? И отреагируйте на пост Виктора.
Потом продолжим.
 
Цитата
Юрий М написал:
Вы выборочно читаете текст моего сообщения?
Исправил текст 1го сообщения.
 
Цитата
vikttur написал:
Предложите название темы, отражающее проблему. Заменят модераторы
Возможно, так: "Как для выделенной ячейки запустить макрос?". Прошу помочь.
 
oleg9911, ячейку выделять необязательно - плохое название.
По вопросу: макрос должен каким-либо образом понять, КАКУЮ ячейку следует обработать при очередном вызове (нажатии на кнопку). Нужно где-ьо хранить номер строки. Самый простой вариант - это или в скрытом столбце на этом же листе или вообще на другом листе (его тоже можно скрыть). Есть ещё варианты с именами, свойствами книги... Но они будут более сложными для Вас.
 
Юрий М, а может прибавление 1 к активной ячейке?
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, а зачем вообще обращать внимание на активную ячейку? Активной может быть любая. Мне кажется, что не нужно к этому привязываться - избежим ошибок.
 
Юрий М, ну смотря в чем задача) я понял что человеку выборочно нужно будет прибавлять к одной из многих ячеек 1 (или другое число)  и она не всегда по порядку идет
Изменено: Mershik - 21.06.2020 19:40:27
Не бойтесь совершенства. Вам его не достичь.
 
Тягайте на здоровье.  :D
Код
Sub qq()
    On Error Resume Next
    With ActiveSheet.Shapes(Application.Caller).TopLeftCell.Previous
        .Value = .Value + 1
    End With
End Sub


PS по названию темы
Не знаю, что было , но на момент ответа название совершенно адекватное.
Изменено: RAN - 21.06.2020 19:45:01
 
Цитата
RAN написал:
Тягайте на здоровье.  
Я в шоке. Вы гений. Огромное Вам спасибо!
 
Я так понял, что подряд )) Узнаем у автора.
А таскать кнопку пол листу - не дело: можно  самую малость промазать и получим совсем другой результат.)
Если не по порядку, то двойной или правый клик по нужной ячейке можно использовать. И кнопка будет не нужна.
oleg9911,  предложите уже адекватное название и уточните насчёт очерёдности строк. А том придёт Виктор и всех выгонит из темы.
 
Я тоже в шоке... До их пор нет нормального названия темы
 
Цитата
vikttur написал:
До их пор нет нормального названия темы
vikttur, а это что?
Быстрая замена ссылки в макросе кнопки
 
Цитата
Юрий М написал:
Я так понял, что подряд )) Узнаем у автора.
Да, по умолчанию, подряд, т.е. заполняется каждая следующая ячейка, но нужна возможность и возвращения к др ячейке по выбору.
RAN решил данную задачу великолепно, ему огромное спасибо!

Название темы "Прибавление 1 к активной ячейке", предложенное Mershik - хорошее, можете исправить, если это необходимо.

Большое спасибо всем за помощь.
 
Цитата
oleg9911 написал:
"Прибавление 1 к активной ячейке", предложенное  Mershik  - хорошее,
Одна беда - с вопросом рядом если и лежало, то через три матраса.
 
oleg9911,  Я бы ушел от кнопки наверное как
Цитата
Юрий М написал:
то двойной или правый клик по нужной ячейке можно использовать
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("b3:b10000")) Is Nothing Then
    Target = Target + 1
    Target.Offset(1, 0).Select
    End If
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
Я бы ушел от кнопки наверное ка
Спасибо за данный вариант, но необходима была именно кнопка, так как задача как пример, была описано урезано. В действительности, там несколько кнопок, которые как складывают, так и вычитают значения + значения для сложения и вычитания могут быть различные. Сгруппированные кнопки, мне кажется, оптимальнее всего.
 
Цитата
RAN написал: Быстрая замена ссылки в макросе кнопки
макрос кнопки - это бред. Если брать аналогию из сообщения №7 - заправка автомобиля ключа зажигания
 
Цитата
vikttur написал:
чтобы кнопка плюсовала
Это таки да, ключ зажигания.
Но это
Цитата
vikttur написал:
макрос кнопки
уже автомобиль для этого ключа.  :D
 
Цитата
oleg9911 написал:
В действительности, там несколько кнопок, которые как складывают, так и вычитают значения
В свете новых требований сейчас набросаю Вам другой макрос ))
 
Цитата
oleg9911 написал:
Сгруппированные кнопки, мне кажется, оптимальнее всего.
Как сейчас помню, Юрий М, уже рисовал такое. Токмо кнопки по листу не таскались.
 
По-моему с активной ячейкой гораздо лучше, чем тупо тягать кнопку по всему листу )))))  :D  
Страницы: 1 2 След.
Наверх