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

Вход

Регистрация

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

 

= Мир MS Excel/Переход курсора в ячейку по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Переход курсора в ячейку по условию
Alex_Neo Дата: Четверг, 09.10.2014, 18:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Есть файл (вложение)
Есть макрос (знаю, что не правильный)

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
a = ActiveCell.Row
b = 5
c = 11
d = 14

If Cells(a, b).Value = "Нет" Then Cells(a, b + 6).Select
If Cells(a, c).Value = "Нет" Then Cells(a, c + 3).Select
If Cells(a, d).Value = "Нет" Then Cells(a, d + 5).Select

End Sub
[/vba]

Суть дела следующая:
Если в определенном столбце (выделены желтым) появляется текст "Нет" то курсор нужно переместить в след. желтый столбец (показано стрелками в примере)
но если там будет другой текст, например "Да" то перемещать курсор как обычно!!
Но курсор зацикливается на одной ячейке, как я понял потому, что он в данной строке проверяет условие для "Нет" и видит его как True
Помогите написать так, чтобы он проверял "Нет" только в текущей редактируемой ячейке а не во всей строке!!
Чтобы не зацикливался!!
Ато получается если в строке есть хоть одно значение "Нет" то он ровняется на него а нам это уже не нужно!!
Фух... попытался объяснить понятно!

Буду благодарен за любую помощь ;)
К сообщению приложен файл: 4767799.xlsm (15.2 Kb)


Сообщение отредактировал Serge_007 - Четверг, 09.10.2014, 20:13
 
Ответить
СообщениеЕсть файл (вложение)
Есть макрос (знаю, что не правильный)

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
a = ActiveCell.Row
b = 5
c = 11
d = 14

If Cells(a, b).Value = "Нет" Then Cells(a, b + 6).Select
If Cells(a, c).Value = "Нет" Then Cells(a, c + 3).Select
If Cells(a, d).Value = "Нет" Then Cells(a, d + 5).Select

End Sub
[/vba]

Суть дела следующая:
Если в определенном столбце (выделены желтым) появляется текст "Нет" то курсор нужно переместить в след. желтый столбец (показано стрелками в примере)
но если там будет другой текст, например "Да" то перемещать курсор как обычно!!
Но курсор зацикливается на одной ячейке, как я понял потому, что он в данной строке проверяет условие для "Нет" и видит его как True
Помогите написать так, чтобы он проверял "Нет" только в текущей редактируемой ячейке а не во всей строке!!
Чтобы не зацикливался!!
Ато получается если в строке есть хоть одно значение "Нет" то он ровняется на него а нам это уже не нужно!!
Фух... попытался объяснить понятно!

Буду благодарен за любую помощь ;)

Автор - Alex_Neo
Дата добавления - 09.10.2014 в 18:47
_Boroda_ Дата: Четверг, 09.10.2014, 19:32 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16709
Репутация: 6501 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
a = ActiveCell.Row
b = 5
c = 11
d = 14

If Cells(a, b).Value = "Нет" Then: Cells(a, b + 6).Select: Else: Cells(a, b + 1).Select: Exit Sub
If Cells(a, c).Value = "Нет" Then: Cells(a, c + 3).Select: Else: Cells(a, c + 1).Select: Exit Sub
If Cells(a, d).Value = "Нет" Then: Cells(a, d + 5).Select: Else: Cells(a, d + 1).Select: Exit Sub
End Sub
[/vba]
К сообщению приложен файл: 4767799_1.xlsm (14.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
a = ActiveCell.Row
b = 5
c = 11
d = 14

If Cells(a, b).Value = "Нет" Then: Cells(a, b + 6).Select: Else: Cells(a, b + 1).Select: Exit Sub
If Cells(a, c).Value = "Нет" Then: Cells(a, c + 3).Select: Else: Cells(a, c + 1).Select: Exit Sub
If Cells(a, d).Value = "Нет" Then: Cells(a, d + 5).Select: Else: Cells(a, d + 1).Select: Exit Sub
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 09.10.2014 в 19:32
gling Дата: Четверг, 09.10.2014, 20:11 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2558
Репутация: 696 ±
Замечаний: 0% ±

2010
А может так?[vba]
Код
    Private Sub Worksheet_Change(ByVal Target As Range)
             If Not Intersect(Target, Range("E1:E100")) Is Nothing Then
                  If Target = "Нет" Then Target(1, 7).Select
             End If
             If Not Intersect(Target, Range("K1:K100")) Is Nothing Then
                  If Target = "Нет" Then Target(1, 4).Select
             End If
             If Not Intersect(Target, Range("N1:N100")) Is Nothing Then
                  If Target = "Нет" Then Target(1, 6).Select
             End If
     End Sub
[/vba]
Цитата
Фух... попытался объяснить понятно!
Похоже не получилось.


ЯД-41001506838083

Сообщение отредактировал gling - Четверг, 09.10.2014, 20:12
 
Ответить
СообщениеА может так?[vba]
Код
    Private Sub Worksheet_Change(ByVal Target As Range)
             If Not Intersect(Target, Range("E1:E100")) Is Nothing Then
                  If Target = "Нет" Then Target(1, 7).Select
             End If
             If Not Intersect(Target, Range("K1:K100")) Is Nothing Then
                  If Target = "Нет" Then Target(1, 4).Select
             End If
             If Not Intersect(Target, Range("N1:N100")) Is Nothing Then
                  If Target = "Нет" Then Target(1, 6).Select
             End If
     End Sub
[/vba]
Цитата
Фух... попытался объяснить понятно!
Похоже не получилось.

Автор - gling
Дата добавления - 09.10.2014 в 20:11
Alex_Neo Дата: Пятница, 10.10.2014, 09:28 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Цитата gling

А может так?



Зачет!! Работает!! Спасибо!
 
Ответить
Сообщение
Цитата gling

А может так?



Зачет!! Работает!! Спасибо!

Автор - Alex_Neo
Дата добавления - 10.10.2014 в 09:28
  • Страница 1 из 1
  • 1
Поиск:

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