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

Есть текст в ячейках, необходимо выполнять те или иные действия, если в этом тексте есть определённые слова. К примеру, пишу
Код
 if range("d:d"). Find(what:="нарезка резьбы") 
- и выполнить действие, если эти слова найдены.

Как это возможно реализовать?
 
Код
If Range("D:D").Find(what:="нарезка резьбы") Is Nothing Then
        MsgBox "Рыба не нарезана", vbInformation
    Else
        MsgBox "Нашёл нарезанную рыбу", vbInformation
    End If
 
Так пробовал, беда в том, что условий может быть много. Каждому прописывать Nothing сложно, и запутаться на раз. Хотелось бы именно выполнение по условию, если найдено.
 
Цитата
Robot JORDAN написал:
беда в том
что нет вашего файла-примера.
 
К тому же, хочется сделать условие, если в тексте два значения встречаются одновременно.
 
беда в том, что то, что вы написали не является описанием задачи и исключает всякую возможность помочь вам ее решить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Robot JORDAN написал:
Хотелось бы именно выполнение по условию, если найдено.
Так?

Код
If Not Range("D:D").Find(what:="нарезка резьбы") Is Nothing Then
        MsgBox "Нашёл нарезанную рыбу", vbInformation
Else
        MsgBox "Рыба не нарезана", vbInformation
End If 

Что за условия?

Есть их список?

Если из 1000 строк в столбце условие выполнено для одной ячейки выполнять "те или иные действия"?
Изменено: Polkilo - 27.12.2019 12:30:34
 
Попробую и я угадать :)
Код
Sub Poisk_()
    Dim sUslovie
    Dim i As Long
For i = 1 To Cells(Rows.Count, 3).End(xlUp).Row
    sUslovie = Cells(i, 3).Value
On Error GoTo Dalee
 If Range("A:A").Find(What:=sUslovie).Row Then
    MsgBox "Есть такое слово:  " & Chr(10) & sUslovie
 End If
Dalee:
Next i
End Sub 
Robot JORDAN, с Вас чистый файл, у меня уже кончаются, может до Нового года не хватить :)
Изменено: _Igor_61 - 27.12.2019 14:19:06
 
Цитата
_Igor_61 написал:
с Вас чистый файл, у меня уже кончаются, может до Нового года не хватить
Сорьки, на работе с Интернетом беда! Файл прикладываю.

В файле два листа, один - подробная запись, второй - короткая запись, из подробной записи нужно делать короткую. Причем вручную писать это - ошибки одна за одной, нужно все это формализовать.

Цитата
Polkilo написал:
Есть их список? Если из 1000 строк в столбце условие выполнено для одной ячейки выполнять "те или иные действия"?
Пока что довольно короткий. Список условий необходимо будет пополнять в процессе работы с таблицей... Потому я и решил сделать макрос именно таким образом, чтобы уже во время использования на месте можно было пополнить список условий, сверившись с результатом.


P.S. - Сорри, если вдруг файл немного непонятным окажется, программист из меня так себе.
 
Вот теперь вообще непонятно стало, что нужно сделать
 
Robot JORDAN, При текущей структуре листа "Время-деталь" это гарантированный геморрой без гарантии результата:

"Зачистка заусенцев" присутствует при всех процедурах в слесарке.
Вам необходимо итоговое время обработки в цеху, а не сумма операций (Вы не указали в списке операций закрепление заготовки)
 
Столбец D на листе время_деталь содержит полное описание операции.. Необходимо его сократить до короткого описания, как на листе краткая_запись, и я как раз думаю это сделать поиском и цикла и по условию. Встретилась группа переходов (. Установка и крепление Рубка листа Установка и крепление Рубка листа Установка и крепление Рубка листа Установка и крепление Рубка листа Снятие заусенцев с контура детали вручную Установка и крепление Ручная гибка Установка и крепление Ручная гибка - это и есть переходы в операции ) определённая в столбце D на листе время_деталь, то тогда макрос создаёт на листе краткая_запись короткую строчку с коротким описанием.
 
Polkilo, итоговое время я и так получаю. Это как раз просто. Структура на листе время_деталь как раз есть результат расчёта времени в соответствии с отраслевыми нормами на каждую операцию, теперь нужно автоматизировать то, что будет записано в технологии, то есть простую запись сделать, которая будет понятна в цеху.
Изменено: Robot JORDAN - 30.12.2019 13:01:48
 
Robot JORDAN, как определить, что является кратким описанием процесса обработки?
"Рубка листа" - первое слово;
"Ручная гибка" - второе слово;
"Снятие заусенцев с контура детали вручную" - два первых слова.

Можно брать наименование всей процедуры и выводить через разделитель проверяя на дубликаты, или предложите вариант определения процесса в описании операции.

Цеху, обычно, предоставляется чертёж, а не "Фрезеровать пазы 64,5 минуты".
Или мы не понимаем друг друга.
Изменено: Polkilo - 30.12.2019 13:46:48
 
Polkilo, не только чертежи, необходимо ещё несколько бумажек. Нужно описать, что делать с четрежом, для каждого рабочего, и сколько на это потрачено времени, и ещё много разного... Материал, инструмент, оснастка - этого много. Есть специальные приложения, которые это выполняют, но они реально кривые, как турецкая сабля, и приходится обходится средствами и макросами Excel.


Краткое описание, это не перечисление, а скорее так - встретились несколько действий, им соответствует фраза. Например "установить деталь", "рубка листа", "зачистка заусенцев" - все вместе "отрубить лист в размер" и время на это как сумма времени всех действий. Вот так сейчас пытаюсь сделать.
Изменено: Robot JORDAN - 31.12.2019 11:42:44
 
_Igor_61, вашим вариантом воспользовался, благодарю! Вроде что-то получаться начало.
Страницы: 1
Наверх