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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод диалога при вводе в ячейку ДА/НЕТ - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод диалога при вводе в ячейку ДА/НЕТ (Макросы/Sub)
Вывод диалога при вводе в ячейку ДА/НЕТ
Zavik21 Дата: Пятница, 15.04.2016, 12:14 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Подскажите пожалуйста, в прикрепленном файле аккумулирующий ввод в ячейку А1.
То есть, если в ячейке значение 5, в ту же ячейку если ввести 10, появляется 15.

Никак не могу сделать так, чтобы при вводе значения выводился диалог да/нет, при нажатии да - значения суммировались, при нажатии нет значение осталось тем же, что и было до этого
спасибо.

[moder]Код нужно в специальные теги класть. В Правилах форума подробнее об этом. Поправил Вам.
К сообщению приложен файл: 2285754.xlsm(15Kb)
 
Ответить
СообщениеДобрый день!
Подскажите пожалуйста, в прикрепленном файле аккумулирующий ввод в ячейку А1.
То есть, если в ячейке значение 5, в ту же ячейку если ввести 10, появляется 15.

Никак не могу сделать так, чтобы при вводе значения выводился диалог да/нет, при нажатии да - значения суммировались, при нажатии нет значение осталось тем же, что и было до этого
спасибо.

[moder]Код нужно в специальные теги класть. В Правилах форума подробнее об этом. Поправил Вам.

Автор - Zavik21
Дата добавления - 15.04.2016 в 12:14
SLAVICK Дата: Пятница, 15.04.2016, 12:23 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1841
Репутация: 614 ±
Замечаний: 0% ±

2007,2010,2013,2016
Поменяйте строку
[vba]
Код
Target = Target + iValue
[/vba]
на
[vba]
Код
If MsgBox("Суммировать?", vbYesNo) = vbYes Then Target = Target + iValue
[/vba]
К сообщению приложен файл: 5585264.xlsm(16Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеПоменяйте строку
[vba]
Код
Target = Target + iValue
[/vba]
на
[vba]
Код
If MsgBox("Суммировать?", vbYesNo) = vbYes Then Target = Target + iValue
[/vba]

Автор - SLAVICK
Дата добавления - 15.04.2016 в 12:23
_Boroda_ Дата: Пятница, 15.04.2016, 12:25 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Я бы еще добавил мелочей всяких
[vba]
Код
Dim iValue
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        n_ = MsgBox("Добавить " & Target & " к " & iValue & "?", vbYesNo) = 6
        Target = iValue - Target * n_
        Target.Select
        iValue = Target
    End If
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        iValue = Target
    End If
End Sub
[/vba]
К сообщению приложен файл: 2285754_1.xlsm(16Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЯ бы еще добавил мелочей всяких
[vba]
Код
Dim iValue
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        n_ = MsgBox("Добавить " & Target & " к " & iValue & "?", vbYesNo) = 6
        Target = iValue - Target * n_
        Target.Select
        iValue = Target
    End If
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        iValue = Target
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 15.04.2016 в 12:25
Zavik21 Дата: Пятница, 15.04.2016, 13:49 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо! то что надо!

А еще как бы сделать чтобы при вводе нечисловых или нецелых значений ошибку выводило?
 
Ответить
СообщениеСпасибо! то что надо!

А еще как бы сделать чтобы при вводе нечисловых или нецелых значений ошибку выводило?

Автор - Zavik21
Дата добавления - 15.04.2016 в 13:49
Zavik21 Дата: Пятница, 15.04.2016, 13:53 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я бы еще добавил мелочей всяких

Спасибо! Но только одна проблема - при сохранении и закрытии документа, если после этого открыть книгу еще раз, то почему-то не определяется значение которое было в ячейке, как будто она пустая
 
Ответить
Сообщение
Я бы еще добавил мелочей всяких

Спасибо! Но только одна проблема - при сохранении и закрытии документа, если после этого открыть книгу еще раз, то почему-то не определяется значение которое было в ячейке, как будто она пустая

Автор - Zavik21
Дата добавления - 15.04.2016 в 13:53
Zavik21 Дата: Пятница, 15.04.2016, 14:13 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Поменяйте строку
Target = Target + iValue

на
If MsgBox("Суммировать?", vbYesNo) = vbYes Then Target = Target + iValue


При нажатии на нет, в ячейке появляется значение, которое было введено перед нажатием нет(
 
Ответить
Сообщение
Поменяйте строку
Target = Target + iValue

на
If MsgBox("Суммировать?", vbYesNo) = vbYes Then Target = Target + iValue


При нажатии на нет, в ячейке появляется значение, которое было введено перед нажатием нет(

Автор - Zavik21
Дата добавления - 15.04.2016 в 14:13
_Boroda_ Дата: Пятница, 15.04.2016, 14:26 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
только одна проблема -

Ну да, не учел. Посмотрите так.
Текст становится нулем, дробные округляются
К сообщению приложен файл: 2285754_2.xlsm(18Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
только одна проблема -

Ну да, не учел. Посмотрите так.
Текст становится нулем, дробные округляются

Автор - _Boroda_
Дата добавления - 15.04.2016 в 14:26
Zavik21 Дата: Пятница, 15.04.2016, 14:58 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010

Ну да, не учел. Посмотрите так.
Текст становится нулем, дробные округляются


Спасибо.

В примере была одна ячейка, а мне нужно на диапазон, соответственно часть текста "Target, Range("A1")" меняю на "Target, [J1:J5000]"

И перестает определяться число в ячейке, пишет "прибавить 100500 к __"

Я что-то не так делаю?

[moder]Да.
1. Тратите наше время, постоянно изменяя условия задачи. Я переделывать больше не буду, мне надоело.
2. Не читаете Правила форума. Исправляйте нарушение Правил в этом посте.[/moder]

Прошу прощения! В след. раз буду сразу конкретно писать. Файл прикрепил.

Нужно, чтобы данное правило суммирования в ячейке действовало на столбец "А", начиная с 4 ячейки до конца столбца.
Пробую прописать диапазон еще так: "Target, Range("A4:A5000")", но не всегда правило суммирования срабатывает корректно, бывает очень часто что не отлавливается предыдущее число в ячейке.

Помогите, пожалуйста! Впредь буду внимательнее.

(теперь правила соблюдены?)
К сообщению приложен файл: 7975007.xlsm(17Kb)


Сообщение отредактировал Zavik21 - Пятница, 15.04.2016, 17:00
 
Ответить
Сообщение

Ну да, не учел. Посмотрите так.
Текст становится нулем, дробные округляются


Спасибо.

В примере была одна ячейка, а мне нужно на диапазон, соответственно часть текста "Target, Range("A1")" меняю на "Target, [J1:J5000]"

И перестает определяться число в ячейке, пишет "прибавить 100500 к __"

Я что-то не так делаю?

[moder]Да.
1. Тратите наше время, постоянно изменяя условия задачи. Я переделывать больше не буду, мне надоело.
2. Не читаете Правила форума. Исправляйте нарушение Правил в этом посте.[/moder]

Прошу прощения! В след. раз буду сразу конкретно писать. Файл прикрепил.

Нужно, чтобы данное правило суммирования в ячейке действовало на столбец "А", начиная с 4 ячейки до конца столбца.
Пробую прописать диапазон еще так: "Target, Range("A4:A5000")", но не всегда правило суммирования срабатывает корректно, бывает очень часто что не отлавливается предыдущее число в ячейке.

Помогите, пожалуйста! Впредь буду внимательнее.

(теперь правила соблюдены?)

Автор - Zavik21
Дата добавления - 15.04.2016 в 14:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод диалога при вводе в ячейку ДА/НЕТ (Макросы/Sub)
Страница 1 из 11
Поиск:

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