Ввод текста в ячейку Exel по условию.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Ввод текста в ячейку Exel по условию.

Ввод текста в ячейку Exel по условию.

Ответ
Поиск в этой теме
Непрочитано 05.03.2011, 08:11 #1
Ввод текста в ячейку Exel по условию.
Капитан
 
Регистрация: 16.03.2010
Сообщений: 115

Опишу суть проблемы: допустим у меня есть две ячейки, в одну из которых я ввожу даные, скажем от 2 до 4. В другой ячейке я хочу проверять следующие условие: если значение в 1-й ячейке меньше 4, то выводить автоматически какой-либо текст( например n<4), а если значение равно 4 то вводить туда любое значение вручную.
Возмжно ли это сделать не прибегая к написанию макросов? Если да то подскажите как это сделать.
p.s. Незнал в какую ветку написать, так что прошу прощения если не туда.
Просмотров: 9839
 
Непрочитано 05.03.2011, 10:12
#2
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Эт как? Нуж написать формулу штатными средствами чтобы она не затиралась при вводе в её ячейку значения вручную?
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Непрочитано 05.03.2011, 10:28
#3
bahil


 
Сообщений: n/a


Как-то так
Function myecli(ucl as boolean;text as string) as string
if ucl then
myecli=text
else
myecli=inputbox('tytle')
end if
end funcntion
 
 
Автор темы   Непрочитано 05.03.2011, 10:31
#4
Капитан


 
Регистрация: 16.03.2010
Сообщений: 115


2 bahil
Скажите пожалуйста как применить то, что вы написали...дело в том, что до сего дня в эксель использовал так сказать не на 100 проц)
Капитан вне форума  
 
Непрочитано 05.03.2011, 10:43
#5
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Капитан, это макрос, нужно зайти в редактор макросов, создать модуль и вписать туда код, правда из №3 не заработает, там ошибки, после исправления:
Цитата:
Function myecli(ucl As Boolean, text As String) As String
If ucl Then
myecli = text
Else
myecli = InputBox("tytle")
End If
End Function
Но растягивать эту функцию по ячейкам не рекомендую, заколебаешься значения вводить.
Может ты хотел просто =ЕСЛИ(B14<4;"n<4";"")
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Автор темы   Непрочитано 05.03.2011, 10:49
#6
Капитан


 
Регистрация: 16.03.2010
Сообщений: 115


Может ты хотел просто =ЕСЛИ(B14<4;"n<4";"")[/quote]
Так я делал. Дело в том, что такая функция не работае в обратную сторону. Т.е. я забил значение 4 в одну ячейку значит в другую я ввожу данные, если я забил в первую ячейку скажем 3 то во второй ячейке появлялась надпись N<4, если же я опять забиваю в первой 4, то снова могу вводить данные.
Про макросы: а как мне назначить макрос определенной ячейке? Макрос выполняется по нажатию на кнопку?
Капитан вне форума  
 
Непрочитано 05.03.2011, 10:58
#7
bahil


 
Сообщений: n/a


Цитата:
Сообщение от KronSerg Посмотреть сообщение
Капитан, это макрос, нужно зайти в редактор макросов, создать модуль и вписать туда код, правда из №3 не заработает, там ошибки, после исправления:
Нет под рукой екселя, поэтому проверить не могу.
После того, как функция написана, она появится в разделе "Определенные пользователем" и вставляется в ячейку как обычная функция.
Порядок тавкой сервис-макрос-редактор VBA.
в редакторе: Insert-modul. Вбиваем текст, закрываем редактор. Полученная функция работает как и любая стандартная. При копировании ссылки автоматически изменяются.
Можно попробовать вставить inputbox в Если.

Последний раз редактировалось bahil, 05.03.2011 в 11:14.
 
 
Автор темы   Непрочитано 05.03.2011, 11:05
#8
Капитан


 
Регистрация: 16.03.2010
Сообщений: 115


Если нетрудно, можете мне последовательно написать как сделать подобную функцию?
Я делаю так: СЕРВИС - МАКРОС - РЕДАКТОР ВИЗУАл БЕЙСК. Там открывается окно, в окно копирую то, что вы мне написали. Далее сохряняю. Выделяю ячейку и вставляю туда эту функцию. Дальше каковы мои действия?
Капитан вне форума  
 
Непрочитано 05.03.2011, 11:44
#9
РастОК

Конструктор-Проектировщик
 
Регистрация: 24.12.2008
Сообщений: 2,589


Да зачем вы мучаетесь. Выкрутитесь обычными методами. Если функция не удовлетворяет функции (меньше 4-х) то не вводите текст прям в данную ячейку, а назначьте в этом случае значение присваивающее этой ячейки равным значению другой ячейки в которой и пишите нужный текст.
РастОК вне форума  
 
Непрочитано 06.03.2011, 10:51
#10
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Капитан Посмотреть сообщение
Опишу суть проблемы: допустим у меня есть две ячейки, в одну из которых я ввожу даные, скажем от 2 до 4. В другой ячейке я хочу проверять следующие условие: если значение в 1-й ячейке меньше 4, то выводить автоматически какой-либо текст( например n<4), а если значение равно 4 то вводить туда любое значение вручную.
Возмжно ли это сделать не прибегая к написанию макросов? Если да то подскажите как это сделать.
p.s. Незнал в какую ветку написать, так что прошу прощения если не туда.
Не надо нимкаких функций, чего вы тут замутили
Открой книгу, если запуск макросов отключен включи в параметрах
кнопку "Включить это содержимое"
Alt+F11 откроется редактор
Двойной клик в Project Explorer на иконке нужного листа и вставь
в открывшийся модуль этого листа код:
Код:
[Выделить все]
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 1 Then
        Select Case Target.Value
        Case Is < 4
          Range("B1").Value = "<4"

        Case Is >= 4

            Range("B1").Value = InputBox(vbCrLf & "Enter value:", "Worksheet_Change Event", "Blah-blah")
        End Select
    End If

End Sub
Будет автоматом обрабатываться событие изменениия
данной ячейки, для простоты примера А1
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 06.03.2011, 11:32
#11
Капитан


 
Регистрация: 16.03.2010
Сообщений: 115


Спасибо, в ближайшее время попробую сделать так как вы говорите.
Капитан вне форума  
 
Непрочитано 06.03.2011, 11:43
#12
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Капитан Посмотреть сообщение
Спасибо, в ближайшее время попробую сделать так как вы говорите.
При последующих открываниях книги не забудь включать макросы как описано выше иначе не будет работать
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 11.03.2011, 14:56
#13
Капитан


 
Регистрация: 16.03.2010
Сообщений: 115


Все получилось, но возник вопрос...возможно ли делать все это без всплывающего окна? т.е. вводить значение непосредственно в ячейку если значение равно 4.
Капитан вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Ввод текста в ячейку Exel по условию.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
ввод текста под размерной линией Der конструктор AutoCAD 11 15.07.2014 11:34
LISP. Выравнивание текста по двум точкам. Krieger Готовые программы 10 24.12.2011 16:02
как редактировать contents в свойствах текста? как привязать размер текста атрибута к размеру блока? p-sm AutoCAD 3 13.08.2009 18:08
Курсор в конец редактируемого текста? zlobandr AutoCAD 15 13.05.2008 16:41