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

Вход

Регистрация

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

 

= Мир MS Excel/Использование if then в VBA - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Использование if then в VBA (Проверка данных макросом)
Использование if then в VBA
RAN Дата: Вторник, 05.03.2013, 20:33 | Сообщение № 21
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вадим, комментарии к посту №16

1. По п.2 вчера писали, писали... Не впрок?

2. По п.1
2.1. Не cell, а cells.
2.2. Сравнивать А1 с А1 немного странно.
2.3. См п.1

PS исправлять два дня подряд одни и те-же ошибки одного и того-же человека немного скучно. Нет?


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Вторник, 05.03.2013, 20:38
 
Ответить
СообщениеВадим, комментарии к посту №16

1. По п.2 вчера писали, писали... Не впрок?

2. По п.1
2.1. Не cell, а cells.
2.2. Сравнивать А1 с А1 немного странно.
2.3. См п.1

PS исправлять два дня подряд одни и те-же ошибки одного и того-же человека немного скучно. Нет?

Автор - RAN
Дата добавления - 05.03.2013 в 20:33
AlexM Дата: Вторник, 05.03.2013, 20:51 | Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
еще вариант
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2,C2")) Is Nothing Then Exit Sub
If Target.Offset(-1, 0) < Target.Value Then MsgBox "Смотри че пишешь"
End Sub
[/vba]
К сообщению приложен файл: Smotri_chto_vvo.xls (18.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Вторник, 05.03.2013, 22:02
 
Ответить
Сообщениееще вариант
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2,C2")) Is Nothing Then Exit Sub
If Target.Offset(-1, 0) < Target.Value Then MsgBox "Смотри че пишешь"
End Sub
[/vba]

Автор - AlexM
Дата добавления - 05.03.2013 в 20:51
Hugo Дата: Вторник, 05.03.2013, 21:22 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Вадим, а почему не проверкой?
К сообщению приложен файл: 5850384.png (21.5 Kb)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВадим, а почему не проверкой?

Автор - Hugo
Дата добавления - 05.03.2013 в 21:22
Alex_ST Дата: Вторник, 05.03.2013, 21:53 | Сообщение № 24
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Цитата (light26)
[vba]
Код
Sub Проверка()
If cells(1,1) < cells(1,1) Then MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]
Ребята и девчата, что-то я не въеду: тут разве не лишний End If ? (а проверять лень, т.к. ежу понятно, что условие cells(1,1) < cells(1,1) не выполнится никогда)

Может быть всё-таки не в логике, а в синтаксисе проблема?
Ведь Вадим не пояснил, что значит
Цитата (light26)
не работают



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 05.03.2013, 21:56
 
Ответить
Сообщение
Цитата (light26)
[vba]
Код
Sub Проверка()
If cells(1,1) < cells(1,1) Then MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]
Ребята и девчата, что-то я не въеду: тут разве не лишний End If ? (а проверять лень, т.к. ежу понятно, что условие cells(1,1) < cells(1,1) не выполнится никогда)

Может быть всё-таки не в логике, а в синтаксисе проблема?
Ведь Вадим не пояснил, что значит
Цитата (light26)
не работают

Автор - Alex_ST
Дата добавления - 05.03.2013 в 21:53
AlexM Дата: Вторник, 05.03.2013, 21:59 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Цитата (Alex_ST)
Ребята и девчата, что-то я не въеду

См Первое сообщение



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (Alex_ST)
Ребята и девчата, что-то я не въеду

См Первое сообщение

Автор - AlexM
Дата добавления - 05.03.2013 в 21:59
RAN Дата: Вторник, 05.03.2013, 21:59 | Сообщение № 26
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Alex_ST)
ежу понятно

Ежу - да. biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (Alex_ST)
ежу понятно

Ежу - да. biggrin

Автор - RAN
Дата добавления - 05.03.2013 в 21:59
Alex_ST Дата: Вторник, 05.03.2013, 22:04 | Сообщение № 27
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Цитата (AlexM)
См Первое сообщение

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



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 05.03.2013, 22:04
 
Ответить
Сообщение
Цитата (AlexM)
См Первое сообщение

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

Автор - Alex_ST
Дата добавления - 05.03.2013 в 22:04
AlexM Дата: Вторник, 05.03.2013, 22:13 | Сообщение № 28
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Цитата (light26)
Задача: запретить ввод значений в ячейку А2 и С2 больших, чем в ячейках А1 и С1 соответственно.

и показал код с кучей ошибок
[vba]
Код
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]
Если честно, то я про запрет забыл и сделал только сообщение. Сейчас добавлю в код запрет
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2,C2")) Is Nothing Then Exit Sub
If Target.Offset(-1, 0) < Target.Value Then Target.Value = "": MsgBox "Смотри че пишешь"
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (light26)
Задача: запретить ввод значений в ячейку А2 и С2 больших, чем в ячейках А1 и С1 соответственно.

и показал код с кучей ошибок
[vba]
Код
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]
Если честно, то я про запрет забыл и сделал только сообщение. Сейчас добавлю в код запрет
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2,C2")) Is Nothing Then Exit Sub
If Target.Offset(-1, 0) < Target.Value Then Target.Value = "": MsgBox "Смотри че пишешь"
End Sub
[/vba]

Автор - AlexM
Дата добавления - 05.03.2013 в 22:13
RAN Дата: Вторник, 05.03.2013, 22:31 | Сообщение № 29
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Алексеи Батьковичи!
вчера


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеАлексеи Батьковичи!
вчера

Автор - RAN
Дата добавления - 05.03.2013 в 22:31
Alex_ST Дата: Вторник, 05.03.2013, 22:37 | Сообщение № 30
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
И чо?
Вадим из того топика мужественно слинял biggrin . Наверное, всё понял, раз вопросов больше не задавал.
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.
Одни и те же ошибки повторяются из поста в пост несмотря на поправки тех, кто их видит...
Может он не читатель, а писатель? tongue



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеИ чо?
Вадим из того топика мужественно слинял biggrin . Наверное, всё понял, раз вопросов больше не задавал.
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.
Одни и те же ошибки повторяются из поста в пост несмотря на поправки тех, кто их видит...
Может он не читатель, а писатель? tongue

Автор - Alex_ST
Дата добавления - 05.03.2013 в 22:37
light26 Дата: Среда, 06.03.2013, 00:11 | Сообщение № 31
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (RAN)
По п.2 вчера писали, писали... Не впрок?

Ну, прости. Значит не усвоил. До меня обычно туго доходит, зато, если дошло, то это навсегда :)
Цитата (RAN)
2.2. Сравнивать А1 с А1 немного странно.

Тут очепятка. Разумеется
[vba]
Код
If cells(1,1) < cells(1,2) Then MsgBox "Смотри че пишешь"
[/vba]


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (RAN)
По п.2 вчера писали, писали... Не впрок?

Ну, прости. Значит не усвоил. До меня обычно туго доходит, зато, если дошло, то это навсегда :)
Цитата (RAN)
2.2. Сравнивать А1 с А1 немного странно.

Тут очепятка. Разумеется
[vba]
Код
If cells(1,1) < cells(1,2) Then MsgBox "Смотри че пишешь"
[/vba]

Автор - light26
Дата добавления - 06.03.2013 в 00:11
light26 Дата: Среда, 06.03.2013, 00:20 | Сообщение № 32
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Hugo)
Вадим, а почему не проверкой?

Да дурень потому что smile Не посмотрел на возможность решение проблемы с этой стороны. Вот уперся, что должны быть две проверки на одну ячейку и все тут :).
Но Елена мне уже открыла глаза на эту возможность.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Hugo)
Вадим, а почему не проверкой?

Да дурень потому что smile Не посмотрел на возможность решение проблемы с этой стороны. Вот уперся, что должны быть две проверки на одну ячейку и все тут :).
Но Елена мне уже открыла глаза на эту возможность.

Автор - light26
Дата добавления - 06.03.2013 в 00:20
light26 Дата: Среда, 06.03.2013, 00:23 | Сообщение № 33
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Alex_ST)
Ведь Вадим не пояснил, что значит
Цитата (light26 писал(а)):
не работают

Цитата (light26)
Задача: запретить ввод значений в ячейку А2 и С2 больших, чем в ячейках А1 и С1 соответственно.
Мое воспаленное воображение придумало это:
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub

Разумеется ЭТО не работает


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Alex_ST)
Ведь Вадим не пояснил, что значит
Цитата (light26 писал(а)):
не работают

Цитата (light26)
Задача: запретить ввод значений в ячейку А2 и С2 больших, чем в ячейках А1 и С1 соответственно.
Мое воспаленное воображение придумало это:
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub

Разумеется ЭТО не работает

Автор - light26
Дата добавления - 06.03.2013 в 00:23
nerv Дата: Среда, 06.03.2013, 00:24 | Сообщение № 34
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Цитата (light26)
Ни
Sub Проверка()
If cells(1,1) < cells(1,1) Then MsgBox "Смотри че пишешь"
End If
End Sub

ни
Sub Проверка()
If range("A1") < range("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub
не работают

все правильно ты писал smile Только с новой строки надо было начинать

[vba]
Код
Sub Проверка()
If range("A1") < range("A2") Then
     MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Цитата (light26)
Ни
Sub Проверка()
If cells(1,1) < cells(1,1) Then MsgBox "Смотри че пишешь"
End If
End Sub

ни
Sub Проверка()
If range("A1") < range("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub
не работают

все правильно ты писал smile Только с новой строки надо было начинать

[vba]
Код
Sub Проверка()
If range("A1") < range("A2") Then
     MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]

Автор - nerv
Дата добавления - 06.03.2013 в 00:24
light26 Дата: Среда, 06.03.2013, 00:29 | Сообщение № 35
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (RAN)
Ежу - да.

Хватит подкалывать smile
Мне тоже понятно что не работает, но не понятно как заставить работать.
Кстати, те варианты, которые любезно предложили форумчане для решения данной задачи идут вразрез с моим мышлением. Поэтому пока я не прогнал код через метод "научного тыка", я не разобрался в его работе. Хотя, если честно, то до конца я и сейчас не разобрался.


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Среда, 06.03.2013, 00:29
 
Ответить
Сообщение
Цитата (RAN)
Ежу - да.

Хватит подкалывать smile
Мне тоже понятно что не работает, но не понятно как заставить работать.
Кстати, те варианты, которые любезно предложили форумчане для решения данной задачи идут вразрез с моим мышлением. Поэтому пока я не прогнал код через метод "научного тыка", я не разобрался в его работе. Хотя, если честно, то до конца я и сейчас не разобрался.

Автор - light26
Дата добавления - 06.03.2013 в 00:29
light26 Дата: Среда, 06.03.2013, 00:33 | Сообщение № 36
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (AlexM)
Если честно, то я про запрет забыл и сделал только сообщение. Сейчас добавлю в код запрет

А я добавил просто очистку ячеек


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (AlexM)
Если честно, то я про запрет забыл и сделал только сообщение. Сейчас добавлю в код запрет

А я добавил просто очистку ячеек

Автор - light26
Дата добавления - 06.03.2013 в 00:33
light26 Дата: Среда, 06.03.2013, 00:38 | Сообщение № 37
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Alex_ST)
Наверное, всё понял, раз вопросов больше не задавал.

Про msgBox понял
Цитата (Alex_ST)
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.

Нет желания помочь? Надоело? Так и не надо.Только, желательно без комментариев. Спасибо.


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Среда, 06.03.2013, 01:03
 
Ответить
Сообщение
Цитата (Alex_ST)
Наверное, всё понял, раз вопросов больше не задавал.

Про msgBox понял
Цитата (Alex_ST)
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.

Нет желания помочь? Надоело? Так и не надо.Только, желательно без комментариев. Спасибо.

Автор - light26
Дата добавления - 06.03.2013 в 00:38
light26 Дата: Среда, 06.03.2013, 00:44 | Сообщение № 38
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (nerv)
Только с новой строки надо было начинать

Грешно смеяться над убогими


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (nerv)
Только с новой строки надо было начинать

Грешно смеяться над убогими

Автор - light26
Дата добавления - 06.03.2013 в 00:44
nerv Дата: Среда, 06.03.2013, 01:23 | Сообщение № 39
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Цитата (light26)
Грешно смеяться над убогими

я не смеялся вообще то smile


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Цитата (light26)
Грешно смеяться над убогими

я не смеялся вообще то smile

Автор - nerv
Дата добавления - 06.03.2013 в 01:23
light26 Дата: Среда, 06.03.2013, 01:25 | Сообщение № 40
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (nerv)
я не смеялся вообще то

Я так подумал, потому что макрос в этом виде все-равно не работает sad


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (nerv)
я не смеялся вообще то

Я так подумал, потому что макрос в этом виде все-равно не работает sad

Автор - light26
Дата добавления - 06.03.2013 в 01:25
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Использование if then в VBA (Проверка данных макросом)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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