Страницы: 1
RSS
Как создать кнопки [-] и [+] в Excel?, для изменения числового значения в ячейках
 
Здравствуйте!
Как создать кнопки [-] и [+] в Excel для изменения числового значения в ячейках?

Требуется наиболее гибкий вариант, чтобы кнопки можно было вставить в существующую ячейку. с которой предстоит работать, чтобы не вставлять дополнительные столбцы. Просто в ячейке слева кнопка "минус", в центре значение ячейки, справа кнопка "плюс".
И таких ячеек пара сотен. Требуется компактное решение. Подскажите пожалуйста, какие могут быть варианты.

Кнопку поиск пробовал, но вопрос остался.
Изменено: harushima - 11.01.2015 14:01:33
 
Вариантов может быть много.
Нарисуйте файл, как ВАМ это видится, а там уже можно будет думать и об вариантах решения.
 
При таком подходе универсальности будет минимум. Куда практичнее при выделении нужных ячеек показывать форму, на которой будет SpinButton со значением из ячейки и при его изменении значение ячейки будет изменяться.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Или такой вариант: левый клик - минус, правый - плюс к значению в ячейке. Или наоборот )
 
Привязка к кнопкам мыши отпадает, нужны экранные кнопки, чтобы все было максимально ясно и понятно.
А то случайный клик и будет незапланированный инкремент или декремент.
Городить лишнюю форму, всплывающую или статичную, которая будет посредником тоже не годится! Это повысит сложность следить ещё за выделением..
Мне нужно максимально упростить и ускорить ввод информации.

Представьте себе в таблице пару сотен позиций товара и правее каждой количество. Вот в ячейке с ним нужно разместить кнопки плюс и минус, чтобы менять значение в один клик, ибо на кассе очередь...
Годятся любые способы, но чем проще тем лучше.
Какие есть варианты? Действительно лучше, если бы кнопка работала с той ячейкой, где находится сама, тогда не пришлось бы дополнительно каждой кнопке указывать её ячейку - ведь это куча работы, ещё ошибусь, или потом вставлю строки, и весь массив переписывать...
 
harushima, Вам уже дали дельный совет, на который Вы не отреагировали должным образом.
Цитата
Михаил С. пишет: Нарисуйте файл, как ВАМ это видится, а там уже можно будет думать и об вариантах решения
Изменено: JayBhagavan - 11.01.2015 18:08:02

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Код
Sub плюс()
    Set cl = ActiveSheet.Shapes(Application.Caller).TopLeftCell
    cl.Value = cl.Value + 1
End Sub
 
Цитата
какие могут быть варианты.
Например такой. Массив значений обозначите сами, в макросе.
Изменено: gling - 11.01.2015 18:55:05
 
Файл удалился, не выдержав самокритики ).
Изменено: Маугли - 12.01.2015 05:16:55
 
Маугли, автор просит с кнопочками))
Предлагаю и свой вариант.
 
Юрий М, прикольно, но правая кнопка зафиксирована по ширине ячейки, и если изменить ширину столбца, то становится ясна моя "претензия". А так очень понравилось.    ;)
Если автоматизировать бардак, то получится автоматизированный бардак.
 
Вы, наверное, скачали старую версию - сейчас там исправленный вариант. Но можно было и самому исправить в свойствах кнопки. А вот по поводу "претензии" не понял - Вы что - автор темы?
 
Цитата
Юрий М пишет: Вы что - автор темы?
Нет, я не автор, я свою хотелку высказал.
Спасибо, выравнивание сделал по ширине и стало как хотелось.
А еще вопрос, сами вот эти кнопки, которые
Код
Set Shp1 = ActiveSheet.Shapes("Button 1"
и Баттон 2 - они откуда берутся или где лежат?
Если автоматизировать бардак, то получится автоматизированный бардак.
 
wowick, как я понял, Юрий их заранее на листе разместил, я потом с помощью кода в модуле листа делает их видимыми/скрытыми
 
Да то, что это кнопки на листе, я уже нашел. Тока не пойму почему они Баттон1 и баттон2 называются... Как ни тыркал на эти кнопки, не вижу их связи с макросами сложения и вычитания...
з.ы. как назначить новой кнопке написанный макрос я уже понял. А вот где и как посмотреть какой макрос назначен какой кнопке и как эта кнопка называется??? А переопределить имя я как-нибудь могу?
Изменено: wowick - 12.01.2015 14:20:48
Если автоматизировать бардак, то получится автоматизированный бардак.
 
Цитата
wowick пишет: где и как посмотреть какой макрос назначен какой кнопке
Правый клик по кнопке - Назначить макрос - в верхнем поле видим, какой макрос УЖЕ назначен.
Цитата
пойму почему они Баттон1 и баттон2 называются
Так Excel их обзывает )) Запишите рекордером выделение кнопки и увидите.
Цитата
А переопределить имя я как-нибудь могу?
В поле над ячейкой А1.
===
А вот это уже я не понял:
Цитата
выравнивание сделал по ширине
Выравнивание чего?
 
Выравнивание по горизонтале в ячейке, по ПКМ на ячейке...
Если автоматизировать бардак, то получится автоматизированный бардак.
 
Опять не понял о чём это Вы)) В файле и так выравнивание по центру сделано  :)
 
Большое спасибо всем за участие!
Я по рабочим обстоятельствам вынужден временно заморозить свой вопрос.
Прошу извинить!
 
День добрый всем!!!
кто нибудь может помочь и пересохранить файл в 10 сообщении от 11 Янв 2015 19:44:43 в формате XLS
а то у меня ексель 2003)) или макрос выложить?
Изменено: toto80 - 11.11.2015 12:08:15
 
Вот скопировал для вас макросы из сообщения 10. В модуль листа 1:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Shp1 As Shape, Shp2 As Shape
    Set Shp1 = ActiveSheet.Shapes("Button 1")
    Set Shp2 = ActiveSheet.Shapes("Button 2")
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:B200")) Is Nothing Then
        With Shp1
            .Visible = True
            .Top = ActiveCell.Top
            .Left = ActiveCell.Left
        End With
        With Shp2
            .Visible = True
            .Top = ActiveCell.Top
            .Left = ActiveCell.Left + ActiveCell.Width - .Width
        End With
    Else
        Shp1.Visible = False
        Shp2.Visible = False
    End If
End Sub
В модуль отдельный:
Код
Sub MacroPlus()
    With ActiveCell
        .Value = .Value + 1
    End With
End Sub

Sub MacroMinus()
    With ActiveCell
        .Value = .Value - 1
    End With
End Sub
Изменено: AlexTM - 11.11.2015 12:23:34
 
Цитата
AlexTM написал: В модуль отдельный:
прошу не кидать тапками, я только второй день пытаюсь вникнуть в программирование, а что вы имели в виду под " модуль отдельный"?
 
toto80, почитайте.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,может я что то не так делаю, выдает ошибку "компонент с указанным именем не найден" и показывает на строку Set Shp1 = ActiveSheet.Shapes("Button 1")
ЗЫ делаю с нового файла

Файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
Изменено: toto80 - 11.11.2015 16:42:00
 
toto80, так а кнопка с этим именем есть на активном листе? Вам об этом в ошибке и говорится, что нет этой кнопки, к которой пытаетесь обратиться.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Юрий М написал: Предлагаю и свой вариант.
прикольно
 
Цитата
JayBhagavan написал: так а кнопка с этим именем есть на активном листе?
кнопки нет, как уже писал делаю из нового файла....видать в этом беда
 
toto80,пересохраненный файл из поста 10
 
Цитата
toto80 написал: кнопки нет
Так создайте её или скопируйте из того файла, из которого макрос взяли.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Читают тему (гостей: 1)
Наверх