Страницы: 1
RSS
Последовательный поиск на листе 3-х значений и запуск одного из трех макросов
 
Добрый день!

Помогите с условием.
Если найдена ячейка с текстом "Текст" то её нужно активировать и выполнить мой макрос
Если НЕ найдена то перейти к поиску следующей ячейки с текстом "Текст2" и выполнить опять мой 2 макрос.
Иначе если не найдена и эта ячейка, то переходим к поиску и активации 3-й ячейки с текстом "Текст3" и соответственно выполнить 3-й макрос.

СПАСИБО
 
О файле-примере уже должны знать... Прикрепите к первому сообщению

Поиск значения и наличие столбца - это одно и то же? Предложите название, отражающее задачу. Заменят модераторы
 
Новое название - Как правильно составить несколько условий на наличие нужных ячеек с выполнением макроса.
Файла примера пока нет.
Там простая таблица будет, где нужно найти ячейку и выполнить макрос, если ячейка не найдена то перейти у след. условию...
 
Дополню поиск идет по всему активному листу...
Я именно не могу условие составить на поиск нужной ячейки с текстом и активацию ячейки этой

Код
If Условие1 Then
    Действия в случае, если выполняется Условие1
 ElseIf Условие2 Then
    Действия в случае, если выполняется Условие2
 Else
    Действия в случае, если не выполнено ни одно из Условий
 End If
Изменено: mazersw - 30.11.2020 13:37:05
 
mazersw, ну так и пишите вместо
Цитата
mazersw написал:
Условие1
ваше условие настоящее
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
ваше условие настоящее
Вроде все правильно, но как добавить в первое условие:
Если найдена ячейка с нужным текстом то её активировать....
Иначе перейти к след. поиску нужной ячейки и активации...
Изменено: mazersw - 30.11.2020 13:41:01
 
Цитата
mazersw написал:
Я именно не могу условие составить на поиск
Для этого нужно не условие составлять, а применять методы, которые могут что либо найти. Например Find, или цикл.
 
mazersw,
select или а activate...уже несколько раз вам написали о примере)
вот для Вашего примера
Код
Sub d()
Dim cel As Range, rng As Range
Set rng = Selection
For Each cel In rng
    If cel = "Условие1" Then
    cel.Select
    'macros1
    GoTo nextt
    End If
    
    If cel = "Условие2" Then
    cel.Select
    ' macros2
    GoTo nextt
    End If
    
    If cel = "Условие3" Then
    cel.Select
    'macros3
    GoTo nextt
    End If
nextt:
Next cel
End Sub


Изменено: Mershik - 30.11.2020 13:44:29
Не бойтесь совершенства. Вам его не достичь.
 
название темы:
последовательно поискать на листе 3 значений. при нахождении выполнить соответствующий макрос
Код
Dim rg as range
set rg = cells.find("Текст", loolat:=xlWhole)
if not rg is nothing then 
  Macro1
else
  set rg = cells.find("Текст2")
  if not rg is nothing then 
    Macro2
  else
    set rg = cells.find("Текст3")
    if not rg is nothing then  Macro3
  end if
end if
Изменено: Ігор Гончаренко - 30.11.2020 13:51:25
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
название темы:последовательно поискать на листе 3 значений. при нахождении выполнить соответствующий макрос
ок по названия да можно и так.
По последнему коду ошибка: https://c2n.me/4a1Frwg

Цитата
Mershik написал:
select или а activate...уже несколько раз вам написали о примере)вот для Вашего примера
Пробую, но логика тут вроде не та что нужно, в не зависимо найден или нет скрипт пройдется и выполнит все макросы, а нужно именно в определенном порядке
 
mazersw, не верно читаете макрос - он пройдет по каждой ячейки выделенного диапазона и проверит каждую ячейку на заданные вами условия 1  2 и 3 и если 1 нет проверит 2 и если его нет то 3 и если и ни одно из условий не подойдет - перейдет к другой ячейке, но если первое условие выполнено он запустит нужный макрос и перейдет к другой ячейке (так как я не знаю что нужно делать если выполнено условие)
Не бойтесь совершенства. Вам его не достичь.
 
ок спасибо, разобрался
Страницы: 1
Наверх