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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Использование if then в VBA
light26 Дата: Вторник, 05.03.2013, 18:39 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
И снова здрасьте.
Как известно, проверку данных для одной ячейки можно применить только однажды, Поэтому прибегаю к помощи макроса.
Но такую задачу макрорекордером не решить, поэтому обращаюсь к гуру smile
Задача: запретить ввод значений в ячейку А2 и С2 больших, чем в ячейках А1 и С1 соответственно.
Мое воспаленное воображение придумало это:
[vba]
Код
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]
Разумеется ЭТО не работает smile
Если я правильно мыслю, то код должен начинаться с Dim, но что должно следовать дальше, я не знаю.
Помогите с кодом, а. Пожалуйста.


Я не волшебник. Я только учусь
 
Ответить
СообщениеИ снова здрасьте.
Как известно, проверку данных для одной ячейки можно применить только однажды, Поэтому прибегаю к помощи макроса.
Но такую задачу макрорекордером не решить, поэтому обращаюсь к гуру smile
Задача: запретить ввод значений в ячейку А2 и С2 больших, чем в ячейках А1 и С1 соответственно.
Мое воспаленное воображение придумало это:
[vba]
Код
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub
[/vba]
Разумеется ЭТО не работает smile
Если я правильно мыслю, то код должен начинаться с Dim, но что должно следовать дальше, я не знаю.
Помогите с кодом, а. Пожалуйста.

Автор - light26
Дата добавления - 05.03.2013 в 18:39
Serge_007 Дата: Вторник, 05.03.2013, 18:47 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
А чё не проверкой данных?
Код
=A1>A2


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеА чё не проверкой данных?
Код
=A1>A2

Автор - Serge_007
Дата добавления - 05.03.2013 в 18:47
light26 Дата: Вторник, 05.03.2013, 18:57 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Serge_007)
А чё не проверкой данных?

Цитата (light26)
проверку данных для одной ячейки можно применить только однажды,

На эти ячейки уже есть проверка данных


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Serge_007)
А чё не проверкой данных?

Цитата (light26)
проверку данных для одной ячейки можно применить только однажды,

На эти ячейки уже есть проверка данных

Автор - light26
Дата добавления - 05.03.2013 в 18:57
Serge_007 Дата: Вторник, 05.03.2013, 18:58 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (light26)
На эти ячейки уже есть проверка данных

Какая?
Несколько проверок можно либо установить так же как и в Excel, либо никак


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (light26)
На эти ячейки уже есть проверка данных

Какая?
Несколько проверок можно либо установить так же как и в Excel, либо никак

Автор - Serge_007
Дата добавления - 05.03.2013 в 18:58
light26 Дата: Вторник, 05.03.2013, 19:03 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Serge_007)
Несколько проверок можно либо установить

И как это сделать?


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Serge_007)
Несколько проверок можно либо установить

И как это сделать?

Автор - light26
Дата добавления - 05.03.2013 в 19:03
light26 Дата: Вторник, 05.03.2013, 19:04 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (light26)
Какая?

Проверка на вводимые значения. Это должно быть действилельное число не больше единицы
Грубо говоря, значение в А1, А2, С1, С2 должно быть не больше 1


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

Сообщение отредактировал light26 - Вторник, 05.03.2013, 19:06
 
Ответить
Сообщение
Цитата (light26)
Какая?

Проверка на вводимые значения. Это должно быть действилельное число не больше единицы
Грубо говоря, значение в А1, А2, С1, С2 должно быть не больше 1

Автор - light26
Дата добавления - 05.03.2013 в 19:04
Serge_007 Дата: Вторник, 05.03.2013, 19:13 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (light26)
как это сделать?
Формулой

Цитата (light26)
значение в А1, А2, С1, С2 должно быть не больше 1

В чём проблема?

К сообщению приложен файл: 5305950.gif (11.6 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (light26)
как это сделать?
Формулой

Цитата (light26)
значение в А1, А2, С1, С2 должно быть не больше 1

В чём проблема?


Автор - Serge_007
Дата добавления - 05.03.2013 в 19:13
Michael_S Дата: Вторник, 05.03.2013, 19:18 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Цитата (light26)
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub


Либо Range("A1"), либо Cells(1, 1)


Сообщение отредактировал Michael_S - Вторник, 05.03.2013, 19:19
 
Ответить
Сообщение
Цитата (light26)
Sub Проверка()
If cell("A1") < cell("A2") Then MsgBox "Смотри че пишешь"
End If
End Sub


Либо Range("A1"), либо Cells(1, 1)

Автор - Michael_S
Дата добавления - 05.03.2013 в 19:18
light26 Дата: Вторник, 05.03.2013, 19:28 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Serge_007,
Ниче не понял
Не, первое-то условие я уже задал (запрет ввода значений больше 1), а второе условие как?


Я не волшебник. Я только учусь
 
Ответить
СообщениеSerge_007,
Ниче не понял
Не, первое-то условие я уже задал (запрет ввода значений больше 1), а второе условие как?

Автор - light26
Дата добавления - 05.03.2013 в 19:28
Serge_007 Дата: Вторник, 05.03.2013, 19:31 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Тип данных: Действительное
Максимум: 1


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеТип данных: Действительное
Максимум: 1

Автор - Serge_007
Дата добавления - 05.03.2013 в 19:31
Pelena Дата: Вторник, 05.03.2013, 19:32 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4554 ±
Замечаний: ±

Excel 365 & Mac Excel
Если для А1 стоит ограничение <=1, то для А2 достаточно поставить ограничение в виде <=A1, само собой А2 будет не больше 1


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли для А1 стоит ограничение <=1, то для А2 достаточно поставить ограничение в виде <=A1, само собой А2 будет не больше 1

Автор - Pelena
Дата добавления - 05.03.2013 в 19:32
Serge_007 Дата: Вторник, 05.03.2013, 19:35 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Лен, надо ещё ДЕЙСТВИТЕЛЬНОЕ


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЛен, надо ещё ДЕЙСТВИТЕЛЬНОЕ

Автор - Serge_007
Дата добавления - 05.03.2013 в 19:35
Pelena Дата: Вторник, 05.03.2013, 19:39 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4554 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата (Serge_007)
надо ещё ДЕЙСТВИТЕЛЬНОЕ

Ну да
К сообщению приложен файл: 1493012.jpg (32.1 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата (Serge_007)
надо ещё ДЕЙСТВИТЕЛЬНОЕ

Ну да

Автор - Pelena
Дата добавления - 05.03.2013 в 19:39
light26 Дата: Вторник, 05.03.2013, 19:46 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Michael_S)
Либо Range("A1"), либо Cells(1, 1)

Спасибо, добрый человек smile
А можно, для особо одаренных, пояснить про cell и range.
Ну, cell - это ячейка. А range?
И как диапазоны указывать?


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Michael_S)
Либо Range("A1"), либо Cells(1, 1)

Спасибо, добрый человек smile
А можно, для особо одаренных, пояснить про cell и range.
Ну, cell - это ячейка. А range?
И как диапазоны указывать?

Автор - light26
Дата добавления - 05.03.2013 в 19:46
light26 Дата: Вторник, 05.03.2013, 19:58 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Pelena, Serge_007
Стоп, стоп, стоп!
Вы меня совсем запутали.
См. файл
К сообщению приложен файл: 6558859.xlsx (10.4 Kb)


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

Сообщение отредактировал light26 - Вторник, 05.03.2013, 19:58
 
Ответить
СообщениеPelena, Serge_007
Стоп, стоп, стоп!
Вы меня совсем запутали.
См. файл

Автор - light26
Дата добавления - 05.03.2013 в 19:58
light26 Дата: Вторник, 05.03.2013, 20:08 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Michael_S)
Либо Range("A1"), либо Cells(1, 1)

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


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Michael_S)
Либо Range("A1"), либо Cells(1, 1)

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

Автор - light26
Дата добавления - 05.03.2013 в 20:08
ABC Дата: Вторник, 05.03.2013, 20:10 | Сообщение № 17
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
может так?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Range("C" & Target.Row).Value > Range("C" & Target.Row - 1).Value Then
MsgBox "Смотри че пишешь"
Target.Value = "": Target.Activate
End If
End Sub
[/vba]
К сообщению приложен файл: 6558859.xls (37.5 Kb)


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет


Сообщение отредактировал ABC - Вторник, 05.03.2013, 20:15
 
Ответить
Сообщениеможет так?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Range("C" & Target.Row).Value > Range("C" & Target.Row - 1).Value Then
MsgBox "Смотри че пишешь"
Target.Value = "": Target.Activate
End If
End Sub
[/vba]

Автор - ABC
Дата добавления - 05.03.2013 в 20:10
Pelena Дата: Вторник, 05.03.2013, 20:21 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4554 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата (light26)
Вы меня совсем запутали

Единственное неудобство, что проверка разная для С2, С4 и для С3, С5
К сообщению приложен файл: 4734446.xlsx (11.0 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата (light26)
Вы меня совсем запутали

Единственное неудобство, что проверка разная для С2, С4 и для С3, С5

Автор - Pelena
Дата добавления - 05.03.2013 в 20:21
light26 Дата: Вторник, 05.03.2013, 20:22 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
ABC, ой, это очень тяжело smile
Что значит If Target.Column <> 3 Then Exit Sub ? Завершить выполнение кода, если ... что-то с третьим столбцом связано, да?
Следующая строка кода мине вообще не понятна sad


Я не волшебник. Я только учусь
 
Ответить
СообщениеABC, ой, это очень тяжело smile
Что значит If Target.Column <> 3 Then Exit Sub ? Завершить выполнение кода, если ... что-то с третьим столбцом связано, да?
Следующая строка кода мине вообще не понятна sad

Автор - light26
Дата добавления - 05.03.2013 в 20:22
light26 Дата: Вторник, 05.03.2013, 20:27 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Pelena)
Единственное неудобство,

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

Пойду домой. Подумаю над своим поведением по дороге smile


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

Сообщение отредактировал light26 - Вторник, 05.03.2013, 20:28
 
Ответить
Сообщение
Цитата (Pelena)
Единственное неудобство,

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

Пойду домой. Подумаю над своим поведением по дороге smile

Автор - light26
Дата добавления - 05.03.2013 в 20:27
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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